PowerShell ドライブの管理
このサンプルは Windows プラットフォームにのみ適用されます。
"PowerShell ドライブ" は、PowerShell でファイルシステム ドライブのようにアクセスできるデータ ストアの場所です。 PowerShell プロバイダーは、ファイル システムのドライブ (C:
、D:
など)、レジストリ ドライブ (HKCU:
と HKLM:
)、および証明書ドライブ (Cert:
) など、いくつかのドライブを作成して、独自の PowerShell ドライブを作成できます。 これらのドライブは便利ですが、PowerShell 内でのみ使用できます。 エクスプローラーや Cmd.exe
など、他の Windows ツールを使ってアクセスすることはできません。
PowerShell から PowerShell ドライブに対して使用できるコマンドには、PSDrive という名詞が使われています。 PowerShell セッションでの PowerShell ドライブの一覧については、Get-PSDrive
コマンドレットを使います。
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
コマンドの出力に類似したものになるはずです。
ファイルシステム ドライブは、PowerShell ドライブのサブセットです。 [プロバイダー] 列の FileSystem のエントリによって、ファイルシステムのドライブを識別できます。 PowerShell のファイルシステム ドライブは、PowerShell FileSystem プロバイダーによってサポートされています。
Get-PSDrive
コマンドレットの構文を表示するには、Get-Command
コマンドに Syntax パラメーターを指定して入力します。
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 パラメーターでは、特定のプロバイダーによってサポートされている PowerShell ドライブのみを表示できます。 たとえば、PowerShell FileSystem プロバイダーによってサポートされる PowerShell ドライブのみを表示するには、Get-PSDrive
コマンドに PSProvider パラメーターと FileSystem の値を指定して入力します。
Get-PSDrive -PSProvider FileSystem
Name Provider Root CurrentLocation
---- -------- ---- ---------------
A FileSystem A:\
C FileSystem C:\ ...nd Settings\PowerUser
D FileSystem D:\
レジストリ ハイブを表す PowerShell ドライブを表示するには、PSProvider パラメーターを使用して、PowerShell Registry プロバイダーによってサポートされる PowerShell ドライブのみを表示します。
Get-PSDrive -PSProvider Registry
Name Provider Root CurrentLocation
---- -------- ---- ---------------
HKCU Registry HKEY_CURRENT_USER
HKLM Registry HKEY_LOCAL_MACHINE
また、PowerShell ドライブに標準的な Location コマンドレットを使用することもできます。
Set-Location HKLM:\SOFTWARE
Push-Location .\Microsoft
Get-Location
Path
----
HKLM:\SOFTWARE\Microsoft
新しい PowerShell ドライブの追加
New-PSDrive
コマンドを使用して、独自の PowerShell ドライブを追加できます。 New-PSDrive
コマンドの構文を取得するには、Get-Command
コマンドに Syntax パラメーターを指定して入力します。
Get-Command -Name New-PSDrive -Syntax
New-[-Description <String>] [-Scope <String>] [-Credential <PSCredential>] [-Verbose] [-Debug ]
[-ErrorAction <ActionPreference>] [-ErrorVariable <String>] [-OutVariable <St ring>]
[-OutBuffer <Int32>] [-WhatIf] [-Confirm]
新しい PowerShell ドライブを作成するには、3 つのパラメーターを指定する必要があります。
- ドライブの名前 (有効な PowerShell の名前を使用できます)
- PSProvider - ファイルシステムの場所には
FileSystem
、レジストリの場所にはRegistry
を使います - ルート、つまり、新しいドライブのルートのパス
たとえば、C:\Program Files\MicrosoftOffice\OFFICE11
のような、Microsoft Office アプリケーションが格納されているコンピューター上のフォルダーにマップされる、Office
という名前のドライブを作成できます。
ドライブを作成するには、次のコマンドを入力します。
New-PSDrive -Name Office -PSProvider FileSystem -Root "C:\Program Files\Microsoft Office\OFFICE11"
Name Provider Root CurrentLocation
---- -------- ---- ---------------
Office FileSystem C:\Program Files\Microsoft Offic...
注意
一般的に、パスは大文字と小文字が区別されません。
PowerShell ドライブにアクセスするには、その名前の後にコロン (:
) を付けます。
PowerShell ドライブにより、多数のタスクが簡単になります。 たとえば、Windows レジストリ内の最も重要なキーのいくつかが、極端に長いパスを持っていて、アクセスが煩雑で覚えにくいものがあります。 重要な構成情報は HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion
にあります。 CurrentVersion レジストリ キーの項目を表示して変更するために、次のように入力して、そのキーのルートになる PowerShell ドライブを作成できます。
New-PSDrive -Name cvkey -PSProvider Registry -Root HKLM\Software\Microsoft\Windows\CurrentVersion
Name Provider Root CurrentLocation
---- -------- ---- ---------------
cvkey Registry HKLM\Software\Microsoft\Windows\...
他のドライブと同様に、cvkey: ドライブに場所を変更できます。
cd cvkey:
または
Set-Location cvkey: -PassThru
Path
----
cvkey:\
New-PSDrive
コマンドレットを使って、新しいドライブを現在の PowerShell セッションにのみ追加します。 PowerShell ウィンドウを閉じると、新しいドライブは失われます。 PowerShell ドライブを保存するには、Export-Console
コマンドレットを使って現在の PowerShell セッションをエクスポートし、次に PowerShell.exe
PSConsoleFile パラメーターを使ってそれをインポートします。 または、新しいドライブを Windows PowerShell プロファイルに追加します。
PowerShell ドライブの削除
PowerShell からドライブを削除するには、Remove-PSDrive
コマンドレットを使います。 たとえば、Office:
PowerShell ドライブを New-PSDrive
のトピックに示すように追加した場合、次のように入力して削除できます。
Remove-PSDrive -Name Office
cvkey:
PowerShell ドライブを削除するには、次のコマンドを使います。
Remove-PSDrive -Name cvkey
ただし、現在の場所がそのドライブ内の場合は削除できません。 たとえば、次のように入力します。
cd 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
PowerShell の外部のドライブの追加と削除
PowerShell を使うと、次のように、Windows で追加および削除されたファイルシステム ドライブを検出できます。
- マップされているネットワーク ドライブ
- アタッチされている USB ドライブ
net use
コマンドを使って、または Windows スクリプト ホスト (WSH) スクリプトから削除されたドライブ
PowerShell