Поделиться через


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

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

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

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

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 команды. Чтобы получить синтаксис команды New-PSDrive , введите 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 добавляет новый диск только в текущий сеанс PowerShell. Если закрыть окно PowerShell, новый диск будет потерян. Чтобы сохранить диск в PowerShell, используйте командлет Export-Console для экспорта текущего сеанса PowerShell, затем примените параметр powershell.exePSConsoleFile для его импорта. Кроме того, добавьте новый диск в профиль 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 Script Host (WSH)