PowerShellの開発でお困りのことはありませんか?
そんな悩みは
当サイトで解決!!
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 {}
|