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.exePSConsoleFile パラメーターを使ってそれをインポートします。 または、新しいドライブを 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) スクリプトから削除されたドライブ