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

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

PS> 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, который показан выше.

Диски файловой системы являются подмножеством дисков Windows PowerShell. Диски файловой системы можно распознать по тексту "FileSystem" в столбце "Поставщик". (Диски файловой системы в Windows PowerShell поддерживаются поставщиком Windows PowerShell FileSystem.)

Чтобы узнать о синтаксисе командлета Get-PSDrive, введите команду Get-Command с параметром Syntax:

PS> 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 позволяет отобразить только диски Windows PowerShell, поддерживаемые определенным поставщиком. Например, чтобы показать только диски Windows PowerShell, которые поддерживаются поставщиком Windows PowerShell FileSystem, введите команду Get-PSDrive с параметром PSProvider, который имеет значение FileSystem:

PS> Get-PSDrive -PSProvider FileSystem

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

Чтобы просмотреть диски Windows PowerShell, которые представляют кусты реестра, воспользуйтесь параметром PSProvider для вывода только дисков Windows PowerShell, которые поддерживаются поставщиком Windows PowerShell Registry:

PS> Get-PSDrive -PSProvider Registry

Name Provider Root CurrentLocation

---- -------- ---- ---------------

HKCU Registry HKEY_CURRENT_USER

HKLM Registry HKEY_LOCAL_MACHINE

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

PS> Set-Location HKLM:\SOFTWARE

PS> Push-Location .\Microsoft

PS> Get-Location

Path

----

HKLM:\SOFTWARE\Microsoft

Добавление новых дисков Windows PowerShell (командлет New-PSDrive)

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

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

Чтобы создать новый диск Windows PowerShell, необходимо указать три параметра:

  • имя диска (можно использовать любое допустимое в Windows PowerShell имя);

  • поставщик PSProvider (используйте "FileSystem" для местоположений в файловой системе и "Registry" для местоположений в реестре);

  • корень, то есть путь к домашнему каталогу нового диска.

Например, можно создать диск с именем Office, соответствующий папке, в которой расположены приложения Microsoft Office, например C:\Program Files\Microsoft Office\OFFICE11. Чтобы создать такой диск, введите следующую команду:

PS> New-PSDrive -Name Office -PSProvider FileSystem -Root "C:\Program Files\Micr
osoft Office\OFFICE11"

Name       Provider      Root                                   CurrentLocation
----       --------      ----                                   ---------------
Office     FileSystem    C:\Program Files\Microsoft Offic...
Примечание.

Чаще всего пути вводятся без учета регистра.

Обращаться к новому диску Windows PowerShell можно точно так же, как и к остальным дискам Windows PowerShell — по имени, за которым следует двоеточие (:).

Диск Windows PowerShell может упростить выполнение многих задач. Например, некоторые из самых важных разделов в реестре Windows имеют крайне длинные пути, которые тяжело запоминаются, что затрудняет доступ к ним. Важная информация конфигурации находится в разделе HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion. Чтобы просмотреть и отредактировать элементы раздела реестра CurrentVersion, можно создать диск Windows PowerShell, домашним каталогом которого будет этот раздел, при помощи команды:

PS> New-PSDrive -Name cvkey -PSProvider Registry -Root HKLM\Software\Microsoft\W

indows\CurrentVersion

Name Provider Root CurrentLocation

---- -------- ---- ---------------

cvkey Registry HKLM\Software\Microsoft\Windows\...

После этого можно перейти на диск cvkey:, как и на любой другой диск:

PS> cd cvkey:

или

PS> Set-Location cvkey: -PassThru

Path

----

cvkey:\

Командлет New-PsDrive добавляет новый диск только в текущий сеанс Windows PowerShell. Если закрыть окно Windows PowerShell, новый диск будет потерян. Чтобы сохранить диск Windows PowerShell, воспользуйтесь командлетом Export-Console для экспорта текущего сеанса, а затем для его импорта — параметром PowerShell.exe PSConsoleFile. Можно также добавить новый диск в собственный профиль Windows PowerShell.

Удаление дисков Windows PowerShell (Remove-PSDrive)

С помощью командлета Remove-PSDrive можно удалять диски Windows PowerShell. Командлет Remove-PSDrive прост в использовании: для удаления диска Windows PowerShell укажите его имя.

Например, при добавлении диска Office: в Windows PowerShell, как показано в разделе New-PSDrive, его можно удалить с помощью следующей команды:

PS> Remove-PSDrive -Name Office

Для удаления диска cvkey: в Windows PowerShell, также показанного в разделе New-PSDrive, воспользуйтесь следующей командой:

PS> Remove-PSDrive -Name cvkey

Удалить диск Windows PowerShell несложно, но его невозможно удалить, пока он является текущим. Пример.

PS> cd office:
PS 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

Добавление и удаление дисков извне Windows PowerShell

Windows PowerShell обнаруживает диски файловой системы, добавленные или удаленные в сеансе Windows, в том числе отображаемые сетевые диски, вставленные накопители USB, а также диски, удаленные с помощью либо команды net use, либо методов объекта WScript.Network MapNetworkDrive и RemoveNetworkDrive из сценария сервера сценариев Windows (WSH).




Содержание