Введение по работе с дисками и провайдерами в 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 по базовым принципам работы с дисками и провайдерами консоли.

Фольксваген поло седан, холодный пуск, возможности авто. .

Комментарии закрыты.