管理 PowerShell 驱动器

本示例仅适用于 Windows 平台。

PowerShell 驱动器是一个数据存储位置,你可以像访问 PowerShell 中的文件系统驱动器那样访问它。 PowerShell 提供程序将为你创建一些驱动器,例如文件系统驱动器(包括 C:D:)、注册表驱动器(HKCU:HKLM:)和证书驱动器 (Cert:),你也可以创建自己的 PowerShell 驱动器。 这些驱动器很有用,但它们仅在 PowerShell 内可用。 无法使用其他 Windows 工具(如文件资源管理器或 Cmd.exe)访问它们。

PowerShell 可针对适用于 PowerShell 驱动器的命令使用名词 PSDrive。 若要获取 PowerShell 会话中的 PowerShell 驱动器列表,请使用 Get-PSDrive cmdlet。

Get-PSDrive
Name       Provider      Root                                   CurrentLocation
----       --------      ----                                   ---------------
A          FileSystem    A:\
Alias      Alias
C          FileSystem    C:\                                 ...And Settings\me
cert       Certificate   \
D          FileSystem    D:\
Env        Environment
Function   Function
HKCU       Registry      HKEY_CURRENT_USER
HKLM       Registry      HKEY_LOCAL_MACHINE
Variable   Variable

虽然显示内容中的驱动器与系统上的驱动器有所不同,但你看到的内容外观应类似于 Get-PSDrive 命令的输出(如上所示)。

文件系统驱动器是 PowerShell 驱动器的子集。 你可以通过 Provider 列中的 FileSystem 条目标识文件系统驱动器。 PowerShell FileSystem 提供程序支持 PowerShell 中的文件系统驱动器。

若要查看 Get-PSDrive cmdlet 的语法,请使用 Get-Command 参数键入 Get-Command 命令:

Get-Command -Name Get-PSDrive -Syntax
Get-PSDrive [[-Name] <String[]>] [-Scope <String>] [-PSProvider <String[]>] [-V
erbose] [-Debug] [-ErrorAction <ActionPreference>] [-ErrorVariable <String>] [-
OutVariable <String>] [-OutBuffer <Int32>]

使用 PSProvider 参数,可以仅显示受特定提供程序支持的 PowerShell 驱动器。 例如,若要仅显示受 PowerShell FileSystem 提供程序支持的 PowerShell 驱动器,请键入带有 PSProvider 参数和 FileSystem 值的 Get-PSDrive 命令:

Get-PSDrive -PSProvider FileSystem
Name       Provider      Root                                   CurrentLocation
----       --------      ----                                   ---------------
A          FileSystem    A:\
C          FileSystem    C:\                           ...nd Settings\PowerUser
D          FileSystem    D:\

若要查看表示注册表配置单元的 PowerShell 驱动器,请使用 PSProvider 参数来仅显示 PowerShell Registry 提供程序支持的 PowerShell 驱动器:

Get-PSDrive -PSProvider Registry
Name       Provider      Root                                   CurrentLocation
----       --------      ----                                   ---------------
HKCU       Registry      HKEY_CURRENT_USER
HKLM       Registry      HKEY_LOCAL_MACHINE

此外,还可以将标准 Location cmdlet 与 PowerShell 驱动器结合使用:

Set-Location HKLM:\SOFTWARE
Push-Location .\Microsoft
Get-Location
Path
----
HKLM:\SOFTWARE\Microsoft

添加新的 PowerShell 驱动器

可以通过使用 New-PSDrive 命令添加自己的 PowerShell 驱动器。 若要获取 New-PSDrive 命令的语法,请使用 Get-Command 参数输入 Get-Command 命令:

Get-Command -Name New-PSDrive -Syntax
New-[-Description <String>] [-Scope <String>] [-Credential <PSCredential>] [-Verbose] [-Debug ]
[-ErrorAction <ActionPreference>] [-ErrorVariable <String>] [-OutVariable <St ring>]
[-OutBuffer <Int32>] [-WhatIf] [-Confirm]

若要创建一个新的 PowerShell 驱动器,必须提供三个参数:

  • 驱动器名称(可使用任何有效的 PowerShell 名称)
  • PSProvider - 将 FileSystem 用作文件系统位置,将 Registry 用作注册表位置
  • 根,即指向新驱动器的根目录的路径

例如,可以创建一个名为 Office 的驱动器,并将其映射到包含你的计算机上的 Microsoft Office 应用程序的文件夹,例如 C:\Program Files\MicrosoftOffice\OFFICE11。 若要创建该驱动器,请键入以下命令:

New-PSDrive -Name Office -PSProvider FileSystem -Root "C:\Program Files\Microsoft Office\OFFICE11"
Name       Provider      Root                                   CurrentLocation
----       --------      ----                                   ---------------
Office     FileSystem    C:\Program Files\Microsoft Offic...

备注

一般情况下,路径不区分大小写。

访问 PowerShell 驱动器时,使用该驱动器的名称,后跟一个冒号 (:)。

PowerShell 驱动器可以使许多任务变得更简单。 例如,Windows 注册表中的某些最重要的项的路径长度非常长,难以访问且难以记住这些路径。 关键配置信息位于 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion 下。 若要查看和更改 CurrentVersion 注册表项中的项,可以创建一个其根在该项中的 PowerShell 驱动器,方法是键入:

New-PSDrive -Name cvkey -PSProvider Registry -Root HKLM\Software\Microsoft\Windows\CurrentVersion
Name       Provider      Root                                   CurrentLocation
----       --------      ----                                   ---------------
cvkey      Registry      HKLM\Software\Microsoft\Windows\...

然后,你可以像对任何其他驱动器一样,将位置更改为 cvkey: 驱动器:

cd cvkey:

或:

Set-Location cvkey: -PassThru
Path
----
cvkey:\

New-PSDrive cmdlet 仅将新驱动器添加到当前的 PowerShell 会话中。 如果关闭 PowerShell 窗口,会丢失新的驱动器。 若要保存 PowerShell 驱动器,请使用 Export-Console cmdlet 导出当前的 PowerShell 会话,然后使用 PowerShell.exePSConsoleFile 参数将其导入。 或者,将新的驱动器添加到 Windows PowerShell 配置文件中。

删除 PowerShell 驱动器

可以使用 Remove-PSDrive cmdlet 从 PowerShell 中删除驱动器。 例如,如果已添加 Office: PowerShell 驱动器(如 New-PSDrive 主题中所示),可以通过键入以下内容将其删除:

Remove-PSDrive -Name Office

若要删除 cvkey: PowerShell 驱动器,请使用以下命令:

Remove-PSDrive -Name cvkey

但是,如果你位于该驱动器中,则无法删除它。 例如:

cd office:
Remove-PSDrive -Name office
Remove-PSDrive : Cannot remove drive 'Office' because it is in use.
At line:1 char:15
+ remove-psdrive  <<<< -name office

添加和删除 PowerShell 之外的驱动器

PowerShell 检测在 Windows 中添加或删除的文件系统驱动器,包括:

  • 映射的网络驱动器
  • 连接的 USB 驱动器
  • 使用 net use 命令或从 Windows 脚本宿主 (WSH) 脚本中删除的驱动器