Windows PowerShell ドライブとは、Windows Powershell から、ファイル システムのドライブと同じようにアクセスすることのできるデータの保管場所です。ファイル システムのドライブ (C: や D:)、レジストリのドライブ (HKCU: や HKLM:)、証明書ドライブ (Cert:) など、いくつかのドライブについては、Windows PowerShell プロバイダーによって自動的に作成されます。また、Windows PowerShell ドライブを独自に作成することもできます。これらのドライブは実用性に優れていますが、Windows PowerShell 内でしか利用できません。Windows エクスプローラーや Cmd.exe など、他の Windows ツールでは、Windows PowerShell ドライブにアクセスできません。

Windows PowerShell ドライブに対して使用できるコマンドには、PSDrive という名詞が使用されています。セッションに存在する 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 ドライブのサブセットです。ファイル システムのドライブは、Provider 列の 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 FileSystem プロバイダーによりサポートされた Windows PowerShell ドライブだけを表示するには、PSProvider パラメーターの値に FileSystem を指定して、Get-PSDrive コマンドを実行します。

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 Registry プロバイダーによりサポートされた Windows PowerShell ドライブだけを表示します。

PS> Get-PSDrive -PSProvider Registry

Name Provider Root CurrentLocation

---- -------- ---- ---------------

HKCU Registry HKEY_CURRENT_USER

HKLM Registry HKEY_LOCAL_MACHINE

標準的な Location コマンドレットと Windows PowerShell ドライブを組み合わせて使用することもできます。

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 ドライブを作成するには、3 つのパラメーターを指定する必要があります。

  • ドライブ名 (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 ドライブを作成し、CurrentVersion レジストリ キーの項目を表示したり変更したりできます。

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 コマンドレットを使用して現在の Windows PowerShell セッションをエクスポートした後、PowerShell.exe の PSConsoleFile パラメーターを使用してインポートします。または、新しいドライブを Windows PowerShell プロファイルに追加する方法もあります。

Windows PowerShell ドライブの削除 (Remove-PSDrive)

Windows PowerShell からドライブを削除するには、Remove-PSDrive コマンドレットを使用します。Remove-PSDrive は実用性に優れたコマンドレットです。Windows PowerShell ドライブの名前を指定するだけで、特定の Windows PowerShell ドライブを削除できます。

たとえば、New-PSDrive のトピックでは、Office: という Windows PowerShell ドライブを追加しました。このドライブを削除するには、次のように入力します。

PS> Remove-PSDrive -Name Office

New-PSDrive トピックで使用した cvkey: という Windows PowerShell ドライブを削除するには、次のコマンドを使用します。

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 コマンドを使って削除されたドライブ、Windows Script Host (WSH) スクリプトから WScript.NetworkMapNetworkDrive メソッドと RemoveNetworkDrive メソッドを使って削除されたドライブなどが自動的に検出されます。




目次