New-PSDrive

在当前会话中创建 Windows PowerShell 驱动器。

语法

New-PSDrive [-Name] <string> [-PSProvider] <string> [-Root] <string> [-Credential <PSCredential>] [-Description <string>] [-Scope <string>] [-Confirm] [-WhatIf] [-UseTransaction] [<CommonParameters>]

说明

New-PSDrive cmdlet 创建“映射到”数据存储(如网络驱动器、本地计算机上的目录或注册表项)中的某一位置或与之关联的一个 Windows PowerShell 驱动器。

就像操作任何映射驱动器那样,可以使用创建的 Windows PowerShell 驱动器访问关联数据存储中的数据。可以更改驱动器中的位置(使用“set-location”、“cd”或“chdir”),并且可以访问驱动器的内容(使用“get-item”、“get-childitem”或“dir”)。

但是,Windows PowerShell 驱动器仅对 Windows PowerShell 是已知的。不能使用 Windows 资源管理器、Windows Management Instrumentation (WMI)、组件对象模型 (COM)、Microsoft .NET Framework 或使用类似 Net Use 的工具访问这些驱动器。

Windows PowerShell 驱动器仅存在于当前 Windows PowerShell 会话中。要使驱动器具有持久性,可以导出在其中添加了驱动器的会话,或者在 Windows PowerShell 配置文件中保存 New-PSDrive 命令。

要删除 New-PSDrive 所创建的驱动器,请使用 Remove-PSDrive cmdlet。

参数

-Credential <PSCredential>

指定有权执行此操作的用户帐户。默认值为当前用户。

键入用户名,例如“User01”或“Domain01\User01”。或者,输入 PSCredential 对象,例如由 Get-Credential cmdlet 生成的对象。如果键入用户名,则将提示您输入密码。

随同 Windows PowerShell 一起安装的任何提供程序都不支持此参数。

是否为必需?

false

位置?

named

默认值

是否接受管道输入?

true (ByPropertyName)

是否接受通配符?

false

-Description <string>

指定驱动器的简短文本说明。可键入任意字符串。

要查看系统上所有 Windows PowerShell 驱动器的说明,请键入“get-psdrive | format name, description”。要查看特定 Windows PowerShell 驱动器的说明,请键入“(get-psdrive <DriveName>).description”。

是否为必需?

false

位置?

named

默认值

是否接受管道输入?

true (ByPropertyName)

是否接受通配符?

false

-Name <string>

指定新驱动器的名称。可以对该名称使用任意有效字符串,而不仅限于驱动器号。Windows PowerShell 驱动器名称区分大小写。

是否为必需?

true

位置?

1

默认值

是否接受管道输入?

true (ByPropertyName)

是否接受通配符?

false

-PSProvider <string>

指定支持此类型的驱动器的 Windows PowerShell 提供程序。

例如,如果 Windows PowerShell 驱动器与网络共享或文件系统目录关联,则 Windows PowerShell 提供程序为“FileSystem”。如果 Windows PowerShell 驱动器与注册表项关联,则提供程序为“Registry”。

要查看 Windows PowerShell 会话中提供程序的列表,请键入“get-psprovider”。

是否为必需?

true

位置?

2

默认值

是否接受管道输入?

true (ByPropertyName)

是否接受通配符?

false

-Root <string>

指定 Windows PowerShell 驱动器映射到的数据存储位置。

例如,指定网络共享(如 \\Server01\Public)、本地目录(如 C:\Program Files)或注册表项(如 HKLM:\Software\Microsoft)。

是否为必需?

true

位置?

3

默认值

是否接受管道输入?

true (ByPropertyName)

是否接受通配符?

false

-Scope <string>

指定驱动器的作用域。有效值包括“Global”、“Local”、“Script”或者相对于当前作用域的数字(0 到作用域数,其中 0 是指当前作用域,1 是指其父作用域)。默认值为“Local”。有关详细信息,请参阅 about_Scopes。

是否为必需?

false

位置?

named

默认值

是否接受管道输入?

true (ByPropertyName)

是否接受通配符?

false

-Confirm

在执行命令之前提示您进行确认。

是否为必需?

false

位置?

named

默认值

是否接受管道输入?

false

是否接受通配符?

false

-WhatIf

描述如果执行该命令会发生什么情况(无需实际执行该命令)。

是否为必需?

false

位置?

named

默认值

是否接受管道输入?

false

是否接受通配符?

false

-UseTransaction

将命令包含在活动事务中。仅当正在执行事务时,此参数才有效。有关详细信息,请参阅 about_Transactions。

是否为必需?

false

位置?

named

默认值

是否接受管道输入?

false

是否接受通配符?

false

<CommonParameters>

此 cmdlet 支持通用参数:-Verbose、-Debug、-ErrorAction、-ErrorVariable、-OutBuffer 和 -OutVariable。有关详细信息,请参阅 about_Commonparameters.

输入和输出

输入类型是指可通过管道传递给 cmdlet 的对象的类型。返回类型是指 Cmdlet 所返回对象的类型。

输入

不能通过管道将输入传递给此 cmdlet。

输出

System.Management.Automation.PSDriveInfo

说明

New-PSDrive cmdlet 用于处理由任何提供程序公开的数据。要列出会话中可用的提供程序,请键入“get-psprovider”。有关详细信息,请参阅 about_Providers。

示例 1

C:\PS>new-psdrive -name P -psprovider FileSystem -root \\Server01\Public

Name       Provider      Root
----       --------      ----
P          FileSystem    \\Server01\Public

说明
-----------
此命令创建一个 Windows PowerShell 驱动器,其功能类似于 Windows 中的映射网络驱动器。该命令创建一个名为 P: 的 Windows PowerShell 驱动器,该驱动器映射到 \\Server01\Public 网络共享。

该命令使用 Name 参数指定该驱动器的名称,使用 PSProvider 参数指定 Windows PowerShell FileSystem 提供程序,使用 Root 参数指定网络共享。

该命令完成后,\\Server01\Public 共享的内容即会显示在 P: 驱动器中。要查看这些内容,请键入:“dir p:”。





示例 2

C:\PS>new-psdrive -name MyDocs -psprovider FileSystem -root "C:\Documents and Settings\User01\My Documents" -Description "Maps to my My Documents folder."

Name       Provider      Root
----       --------      ----
MyDocs     FileSystem    C:\Documents and Settings\User01\My Documents

说明
-----------
此命令创建一个 Windows PowerShell 驱动器,用于提供对本地目录的快速访问。该命令创建一个名为 MyDocs: 的驱动器,该驱动器映射到本地计算机上的
“C:\Documents and Settings\User01\My Documents”目录。

该命令使用 Name 参数指定该驱动器的名称,使用 PSProvider 参数指定 Windows PowerShell FileSystem 提供程序,使用 Root 参数指定 My Documents 文件夹的路径,使用 Description 参数创建该驱动器的说明。


该命令完成后,My Documents 文件夹的内容即会显示在 MyDocs: 驱动器中。要查看这些内容,请键入:“dir mydocs:”。





示例 3

C:\PS>new-psdrive -name MyCompany -psprovider Registry -root HKLM:\Software\MyCompany

Name       Provider      Root
----       --------      ----
MyCompany  Registry      HKEY_LOCAL_MACHINE\Software\MyCo...

说明
-----------
此命令创建一个 Windows PowerShell 驱动器,用于提供对经常查看的注册表项的快速访问。该命令创建一个名为 MyCompany 的驱动器,该驱动器映射到 HKLM\Software\MyCompany 注册表项。

该命令使用 Name 参数指定该驱动器的名称,使用 PSProvider 参数指定 Windows PowerShell Registry 提供程序,使用 Root 参数指定注册表项。


该命令完成后,MyCompany 项的内容即会显示在 MyCompany: 驱动器中。要查看这些内容,请键入:“dir MyCompany:”。





示例 4

C:\PS>new-psdrive -name PsDrive -psprovider FileSystem -root \\Server01\Public

C:\PS> $drive = new-object -com wscript.network
C:\PS> $drive.MapNetworkDrive("X:", "\\Server01\Public")


C PS:\> get-psdrive public, x

Name       Provider      Root
----       --------      ----
PsDrive    FileSystem    \\Server01\public
X          FileSystem    X:\


C:\PS>get-psdrive psdrive, x | get-member

   TypeName: System.Management.Automation.PSDriveInfo
Name                MemberType Definition
----                ---------- ----------
CompareTo           Method     System.Int32 CompareTo(PSDriveInfo drive), 
Equals              Method     System.Boolean Equals(Object obj), 
GetHashCode         Method     System.Int32 GetHashCode()
...



C:\PS> net use
Status       Local     Remote                    Network
---------------------------------------------------------------------------
             X:        \\server01\public         Microsoft Windows Network


C:\PS> get-wmiobject win32_logicaldisk | ft deviceid
deviceid
--------
C:
D:
X:

C:\PS> get-wmiobject win32_networkconnection
LocalName                     RemoteName                    ConnectionState               Status
---------                     ----------                    ---------------               ------
X:                            \\products\public             Disconnected                  Unavailable

说明
-----------
此示例说明映射到网络共享的 Windows 驱动器与映射到同一网络共享的 Windows PowerShell 驱动器之间的区别。

第一条命令使用 New-PSDrive cmdlet 创建一个名为 PSDrive: 的 Windows PowerShell 驱动器,该驱动器映射到 \\Server01\Public 网络共享。

第二组命令使用 New-Object cmdlet 创建一个 Wscript.Network COM 对象,然后使用其 MapNetworkDrive 方法将 \\Server01\Public 网络共享映射到本地计算机上的 X: 驱动器。

现在,可以检查这两个驱动器。执行 Get-PSDrive 驱动器命令后,这两个驱动器看起来似乎相同,但网络共享名称仅显示在 PSDrive: 驱动器的根目录中。

将这两个驱动器对象发送给 Get-Member 后,显示它们具有相同的对象类型 System.Management.Automation.PSDriveInfo。

但是,执行“net use”命令、对 Win32_LogicalDisk 类执行 Get-WmiObject 命令并对 Win32_NetworkConnection 类执行 Get-WmiObject 命令后,发现只有 X: 驱动器是使用 Wscript.Network 对象创建的。这是因为 Windows PowerShell 驱动器仅对 Windows PowerShell 是已知的。

如果关闭 Windows PowerShell 会话然后再打开一个新的会话,则 PSDrive: 驱动器将消失,而 X: 驱动器仍将保留。

因此,在决定使用哪一方法映射网络驱动器时,请考虑将如何使用驱动器,是否需要保留它,以及对 Windows 的其他功能而言,是否需要驱动器保持可见。





另请参阅

概念

about_providers
Get-PSDrive
Remove-PSDrive