Управление дисками PowerShell

Этот пример применяется только к платформам Windows.

Диск PowerShell — это расположение хранилища данных, к которому можно получить доступ, например к диску файловой системы в PowerShell. Поставщики PowerShell создают для вас некоторые диски, такие как диски файловой системы (включая C: и D:), диски реестра (HKCU: и HKLM:), а также диск сертификата (Cert:) и вы можете создать собственные диски PowerShell. Эти диски полезны, но они доступны только в PowerShell. Вы не можете получить доступ к ним с помощью других средств Windows, таких как проводник или Cmd.exe.

PowerShell использует существительное, PSDrive, для команд, работающих с дисками PowerShell. Чтобы получить список дисков PowerShell в сеансе Get-PSDrive PowerShell, используйте командлет.

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. Диски файловой системы можно определить с помощью записи FileSystem в столбце "Поставщик". Диски файловой системы в PowerShell поддерживаются поставщиком Файловой системы PowerShell.

Чтобы просмотреть синтаксис командлетаGet-PSDrive, введите 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, введите Get-PSDrive команду с параметром PSProvider и значением FileSystem :

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

Можно также использовать стандартные командлеты Location с дисками PowerShell:

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

Добавление новых дисков PowerShell

Вы можете добавить собственные диски PowerShell с помощью New-PSDrive команды. Чтобы получить синтаксис команды, введите Get-Command команду с параметром Синтаксиса:New-PSDrive

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, сопоставленным с папкой, содержащей Приложение 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 добавляет новый диск только в текущий сеанс PowerShell. Если закрыть окно PowerShell, новый диск будет потерян. Чтобы сохранить диск PowerShell, используйте Export-Console командлет для экспорта текущего сеанса PowerShell, а затем используйте PowerShell.exeпараметр PSConsoleFile для импорта. Также можно добавить новый диск в профиль Windows PowerShell.

Удаление дисков PowerShell

Вы можете удалить диски из PowerShell с помощью командлета Remove-PSDrive . Например, если вы добавили 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)