管理 PowerShell 驱动器
该示例仅适用于Windows平台。
PowerShell 驱动器是一个数据存储位置,您可以像 PowerShell 中的文件系统驱动器一样访问它。 PowerShell 提供程序会为您创建一些驱动器,例如文件系统驱动器(包括 C: 和 D:)、注册表驱动器(HKCU:) > 和 HKLM:),以及证书驱动器 (Cert:),您可以创建自己的 PowerShell 驱动器。这些驱动器很有用,但它们只能在 PowerShell 中使用。您无法使用其他 Windows 工具(例如文件资源管理器或 Cmd.exe)访问它们。
PowerShell 使用名词 PSDrive 来表示与 PowerShell 驱动器配合使用的命令。有关 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 驱动器的子集。您可以通过“提供程序”列中的“文件系统”条目来识别文件系统驱动器。 PowerShell 文件系统提供程序支持 PowerShell 中的文件系统驱动器。
要查看 Get-PSDrive cmdlet 的语法,请键入带有 Syntax 参数的 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 文件系统提供程序支持的 PowerShell 驱动器,请键入带有 PSProvider 参数和 FileSystemGet-PSDrive 命令。强>值:
Get-PSDrive -PSProvider FileSystem
Name Provider Root CurrentLocation
---- -------- ---- ---------------
A FileSystem A:\
C FileSystem C:\ ...nd Settings\PowerUser
D FileSystem D:\
要查看代表注册表配置单元的 PowerShell 驱动器,请使用 PSProvider 参数仅显示 PowerShell 注册表提供程序支持的 PowerShell 驱动器:
Get-PSDrive -PSProvider Registry
Name Provider Root CurrentLocation
---- -------- ---- ---------------
HKCU Registry HKEY_CURRENT_USER
HKLM Registry HKEY_LOCAL_MACHINE
您还可以将标准位置 cmdlet 与 PowerShell 驱动器结合使用:
Set-Location HKLM:\SOFTWARE
Push-Location .\Microsoft
Get-Location
Path
----
HKLM:\SOFTWARE\Microsoft
添加新的 PowerShell 驱动器
您可以使用 New-PSDrive 命令添加自己的 PowerShell 驱动器。要获取 New-PSDrive 命令的语法,请输入带有 Syntax 参数的 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作为注册表位置 - root,即新驱动器根目录的路径
例如,您可以创建一个名为 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.exe PSConsoleFile 参数导入它。或者,将新驱动器添加到您的 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) 脚本删除的驱动器