Диск 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).