HIRO's.NET

VB.NET, C#, PowerShell Tipsサイト

 VB.NET, C#, PowerShellを使用しているエンジニアのためのサイト。

 基本的な使用方法から開発で役立つTipsまで幅広く取り扱っています。

HIRO's.NET RSSHIRO's.NET RSS


PowerShellの開発でお困りのことはありませんか?
そんな悩みは当サイトで解決!!

HOME > PowerShell Tips > 基礎 Tips メニュー

16.PowerShellにおけるドライブ

 
UPDATE:2007/11/16    
 


 通常、「ドライブ」というとCドライブ、Dドライブなどファイルシステムにおけるドライブを想像されるのではないでしょうか?

 Windows PowerShellにおけるドライブとは、Windows Powershell から、ファイル システムのドライブと同じようにアクセスすることのできるデータの保管場所です。

 これには、従来通りのファイルシステム、エイリアス、レジストリ、関数などがあります。

Windows PowerShellがPowerShellドライブとして認識しているリストを取得するには、Get-PSDriveコマンドレットを使用します。

sample1は私のテスト環境で実行した例ですが、実行結果を見ると従来通りのファイルシステムのほかに、Aliasドライブ、certドライブ(証明書ストア)、HKCU(HKEY_CURRENT_USERレジストリ)、HKLM(HKEY_LOCAL_MACHINEレジストリ)などがあることを確認できます。

sample1

PS C:\Work2> Get-PSDrive

Name Provider Root CurrentLocation
---- -------- ---- ---------------
A FileSystem A:\
Alias Alias
C FileSystem C:\ Work2
cert Certificate \
D FileSystem D:\
E FileSystem E:\
Env Environment
Function Function
HKCU Registry HKEY_CURRENT_USER
HKLM Registry HKEY_LOCAL_MACHINE
T FileSystem T:\
U FileSystem U:\
V FileSystem V:\
Variable Variable
W FileSystem W:\
X FileSystem X:\
Y FileSystem Y:\
Z FileSystem Z:\

ではエイリアスやレジストリ等がドライブとして認識されると、どんなメリットがあるでしょうか?

たとえば、Get-ChildItemコマンドレットは、ファイルシステムで使用するとカレントディレクトリにあるファイルの一覧を取得することができます。
これをドライブがレジストリの場合にGet-ChildItemコマンドレットを使用すると、ファイルシステムの時と同様に現在のレジストリ項目の位置にある一覧を取得することができるようになります。

ファイルシステムであろうとレジストリであろうと、同様に操作することが可能となります。

sample2

PS HKCU:\> Get-ChildItem


Hive: Microsoft.PowerShell.Core\Registry::HKEY_CURRENT_USER

SKC VC Name Property
--- -- ---- --------
2 0 AppEvents {}
0 36 Console {ColorTable00, ColorTable01, ColorTable02, ColorTable03...}
12 0 Control Panel {}
0 3 Environment {TEMP, TMP, DXROOT}
4 0 EUDC {}