Введение по работе с дисками и провайдерами в Windows PowerShell
Введение в Windows PowerShell по работе с дисками и провайдерами. При работе в операционной системе Windows пользователь привык к таким понятиям как диски, называющиеся латинскими буквами (C, D, E,…), стандартной структуре файловой системы (каталоги и файлы). Для рядового пользователя этого вполне достаточно, однако, система содержит в своем составе и другие источники для хранилища данных, например, реестр (хотя, сам реестр лишь извлекает информацию из тех же системных файлов). По своему принципу предоставления информации оболочка Windows PowerShell похожа на UNIX-системы, введенные в консольном окне командлеты позволяют перемещаться и просматривать различные источники для хранения данных так же как и стандартные каталоги и диски. Для таких целей командная оболочка PowerShell предоставляет в распоряжение так называемые специальные (виртуальные) диски. Сеанс предоставляет сообразную аналогию, так, разделу реестра HKEY_LOCAL_MACHINE соответствует диск HKLM, псевдонимам, доступным в текущем сеансе работы, соответствует диск Alias, а хранилищу сертификатов цифровых подписей – Cert. Продолжаем введение по работе с дисками в Windows PowerShell. Что бы просмотреть список всех доступных дисков доступных в текущем сеансе, надо использовать командлет Get-PSDrive:
PS C:\Documents and Settings\}{акер> get-psdrive Name Provider Root ---- -------- ---- Alias Alias C FileSystem C:\ cert Certificate \ D FileSystem D:\ E FileSystem E:\ Env Environment F FileSystem F:\ Function Function G FileSystem G:\ HKCU Registry HKEY_CURRENT_USER HKLM Registry HKEY_LOCAL_MACHINE I FileSystem I:\ Variable Variable
Как видно, на выходе мы получем три столбца, первый (Name) содержит имена дисков, второй(Provider) – имя провайдера, и третий (Root) – место расположения. Некоторые названия говорят сами за себя, так, Env – переменные окружения, HKCU и HKLM – соответственно разделы реестра, введение в оболочку PowerShell. Для навигации к нужному диску и просмотру его содержимого можно использовать команду cd и dir, например:
PS C:\Documents and Settings\}{акер> cd env: PS Env:\> dir Name Value ---- ----- Path C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDOWS\system32\WindowsPo... TEMP C:\DOCUME~1\}{BB23~1\LOCALS~1\Temp SESSIONNAME Console PATHEXT .COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.PSC1 USERDOMAIN ARES PROCESSOR_ARCHITECTURE x86 SystemDrive C: APPDATA C:\Documents and Settings\}{акер\Application Data windir C:\WINDOWS TMP C:\DOCUME~1\}{BB23~1\LOCALS~1\Temp USERPROFILE C:\Documents and Settings\}{акер ProgramFiles C:\Program Files FP_NO_HOST_CHECK NO HOMEPATH \Documents and Settings\}{акер COMPUTERNAME ARES USERNAME }{акер NUMBER_OF_PROCESSORS 2 PROCESSOR_IDENTIFIER x86 Family 6 Model 23 Stepping 10, GenuineIntel kixkart d:\scripts\KiX2010.460\ SystemRoot C:\WINDOWS ComSpec C:\WINDOWS\system32\cmd.exe LOGONSERVER \\ARES CommonProgramFiles C:\Program Files\Common Files PROCESSOR_LEVEL 6 PROCESSOR_REVISION 170a CLIENTNAME Console ALLUSERSPROFILE C:\Documents and Settings\All Users OS Windows_NT HOMEDRIVE C:
В данном примере мы перешли к виртуальному диску Env (переменные окружения) и просмотрели его содержимое, тут две колонки, Name – название и Value – значение переменной.
Теперь продолжим введение в работу с дисками PowerShell системы Windows. Рассмотрим такое понятие как провайдеры PowerShell (вторая колонка после ввода командлета get-psdrive). В простом варианте, провайдеры являются .NET-приложениями, которые предоставляют пользователю доступ к данным заданного информационного хранилища в согласованном формате, напоминающем формат обычных дисков файловой системы (командная строка cmd такой простоты не предоставляет). Для просмотра зарегистрированных в оболочке провайдеров используется командлет Get-PSProvider:
PS C:\Documents and Settings\}{акер> get-psprovider Name Capabilities Drives ---- ------------ ------ Alias ShouldProcess {Alias} Environment ShouldProcess {Env} FileSystem Filter, ShouldProcess {C, D, E, F...} Function ShouldProcess {Function} Registry ShouldProcess {HKLM, HKCU} Variable ShouldProcess {Variable} Certificate ShouldProcess {cert}
Первая колонка показывает название провайдера:
Alias – отвечает за псевдонимы PowerShell
Environment – отвечает за переменные окружения операционной системы Windows
FileSystem – собственно отвечает за диски, каталоги и файлы
Function – отвечает за вывод функций, предоставляемых оболочкой
Registry – собственно реестр системы
Variable – переменные оболочки
Certificate – Сертификаты Х509 для цифровых подписей
Это стандартные 7 провайдеров, при желании можно создавать собственные (введение в провайдеры Windows PowerShell) и устанавливать провайдеры, созданные другими разработчиками (например, для доступа к каталогам Active Directory или к почтовым ящикам Microsoft Exchange).
К виртуальным дискам применимы те же действия, что к стандартным дискам с каталогами файлами данных. Стоит обратить внимание на использование псевдонимов при навигации, так (введение) в PowerShell системы Windows есть командлет Set-Location для смены текущего каталога/диска, хотя можно использовать и его псевдонимы – cd, chdir или sl. А для определения пути к текущему каталогу служит команда Get-Location или псевдоним gl. За просмотр содержимого папки отвечает Get-childitem и его псевдонимы dir и ls.
Пользователю представляется возможность создавать собственные диски с помощью командлета New-PSDrive, который принимает три параметра: -Name (имя создаваемого диска в Windows PowerShell введение), -psprovider (название провайдера, например FileSystem для диска файловой системы или Registry для диска, соответствующего раздела реестра) и путь к корневому каталогу нового диска. Для примера по введению в работу с PowerShell в системе Windows создадим на диске C папку TEST, а в Power-шеловской оболочке сделаем для нее диск, для этого нам понадобится ввести в консоли:
new-psdrive -name test -psprovider filesystem -root d:\test
После ввода командлета мы сразу получили таблицу на экране консоли:
Name Provider Root ---- -------- ---- test FileSystem D:\test
Хорошо, теперь можно перейти к созданному диску:
cd test:Аналогично можно создавать собственный диск для разделов реестра, главной выбирать нужного провайдера. Данная статья была введением в Windows оболочку PowerShell по базовым принципам работы с дисками и провайдерами консоли.
Советую почитать:
Опубликовано в рубрике PowerShell