Get-PSDrive
現在のセッションのドライブを取得します。
構文
Get-PSDrive
[[-Name] <String[]>]
[-Scope <String>]
[-PSProvider <String[]>]
[-UseTransaction]
[<CommonParameters>]
Get-PSDrive
[-LiteralName] <String[]>
[-Scope <String>]
[-PSProvider <String[]>]
[-UseTransaction]
[<CommonParameters>]
説明
Get-PSDrive コマンドレットは、現在のセッションのドライブを取得します。 セッション内の特定のドライブまたはすべてのドライブを取得できます。
このコマンドレットは、次の種類のドライブを取得します。
- コンピューター上の Windows 論理ドライブ (ネットワーク共有にマップされたドライブを含む)。
- Windows PowerShell プロバイダーによって公開されるドライブ (Certificate:、Function:、Alias: ドライブなど) と、Windows PowerShell レジストリ プロバイダーによって公開される HKLM: ドライブと HKCU: ドライブ。
- New-PSDrive コマンドレットを使用して作成するセッション指定の一時ドライブと永続的なマップされたネットワーク ドライブ。
Windows PowerShell 3.0 以降では、New-PSDrive コマンドレットの Persist パラメーターを使用して、ローカル コンピューターに保存され、他のセッションで使用できるマップされたネットワーク ドライブを作成できます。 詳細については、「New-PSDrive」を参照してください。
また、Windows PowerShell 3.0 以降では、外部ドライブがコンピューターに接続されると、Windows PowerShell によって、新しいドライブを表す PSDrive がファイル システムに自動的に追加されます。 Windows PowerShell を再起動する必要はありません。 同様に、外部ドライブがコンピューターから切断されると、Windows PowerShell によって、削除されたドライブを表す PSDrive が自動的に削除されます。
例
例 1: 現在のセッションでドライブを取得する
PS C:\> Get-PSDrive
Name Provider Root
---- -------- ----
Alias Alias
C FileSystem C:\
Cert Certificate \
D FileSystem D:\
Env Environment
Function Function
HKCU Registry HKEY_CURRENT_USER
HKLM Registry HKEY_LOCAL_MACHINE
Variable Variable
このコマンドは、現在のセッションのドライブを取得します。
出力には、ハード ドライブ (C:)、CD-ROM ドライブ (D:)、Windows PowerShell プロバイダーによって公開されているドライブ (Alias:、Cert:、Env:、Function:、HKCU:、HKLM:、Variable:) が表示されます。
例 2: コンピューター上のドライブを取得する
PS C:\> Get-PSDrive D
Name Provider Root
---- -------- ----
D FileSystem D:\
このコマンドは、コンピューター上の D: ドライブを取得します。 コマンドのドライブ文字の後にコロンが続かないことに注意してください。
例 3: Windows PowerShell ファイル システム プロバイダーでサポートされているすべてのドライブを取得する
PS C:\> Get-PSDrive -PSProvider FileSystem
Name Provider Root
---- -------- ----
C FileSystem C:\
D FileSystem D:\
X FileSystem X:\
Y FileSystem \\Server01\Public
Z FileSystem C:\Windows\System32
このコマンドは、Windows PowerShell FileSystem プロバイダーでサポートされているすべてのドライブを取得します。
これには、固定ドライブ、論理パーティション、マップされたネットワーク ドライブ、および New-PSDrive
コマンドレットを使用して作成する一時ドライブが含まれます。
例 4: Windows PowerShell ドライブ名としてドライブが使用されているかどうかを確認する
if (Get-PSDrive X -ErrorAction SilentlyContinue) {
Write-Host 'The X: drive is already in use.'
} else {
New-PSDrive -Name X -PSProvider Registry -Root HKLM:\SOFTWARE
}
このコマンドは、X ドライブが Windows PowerShell ドライブ名として既に使用されているかどうかを確認します。
そうでない場合、コマンドは New-PSDrive
コマンドレットを使用して、HKLM:\SOFTWARE レジストリ キーにマップされる一時ドライブを作成します。
例 5: ファイル システム ドライブの種類を比較する
PS C:\> Get-PSDrive -PSProvider FileSystem
Name Provider Root
---- -------- ----
C FileSystem C:\
D FileSystem D:\
X FileSystem X:\
Y FileSystem \\Server01\Public
Z FileSystem C:\Windows\System32
PS C:\> net use
New connections will be remembered.
Status Local Remote Network
-------------------------------------------------------------------------------
X: \\Server01\Public Microsoft Windows Network
PS C:\> [System.IO.DriveInfo]::GetDrives()
Name : C:\
DriveType : Fixed
DriveFormat : NTFS
IsReady : True
AvailableFreeSpace : 39831498752
TotalFreeSpace : 39831498752
TotalSize : 79900368896
RootDirectory : C:\
VolumeLabel :
Name : D:\
DriveType : CDRom
DriveFormat :
IsReady : False
AvailableFreeSpace :
TotalFreeSpace :
TotalSize :
RootDirectory : D:\
VolumeLabel :
Name : X:\
DriveType : Network
DriveFormat : NTFS
IsReady : True
AvailableFreeSpace : 36340559872
TotalFreeSpace : 36340559872
TotalSize : 36413280256
RootDirectory : X:\
VolumeLabel : D_Drive
PS C:\> Get-WmiObject Win32_LogicalDisk
DeviceID : C:
DriveType : 3
ProviderName :
FreeSpace : 39831252992
Size : 79900368896
VolumeName :
DeviceID : D:
DriveType : 5
ProviderName :
FreeSpace :
Size :
VolumeName :
DeviceID : X:
DriveType : 4
ProviderName : \\server01\public
FreeSpace : 36340559872
Size : 36413280256
VolumeName : D_Drive
PS C:\> Get-WmiObject Win32_NetworkConnection
LocalName RemoteName
-------------- ------------
x: \\server01\public
この例では、 Get-PSDrive によって表示されるファイル システム ドライブの種類と、他の方法を使用して表示されるファイル システム ドライブの種類を比較します。 この例では、Windows PowerShell でドライブを表示するさまざまな方法を示し、New-PSDrive コマンドレットを使用して作成された一時的なセッション固有のドライブは Windows PowerShell でのみアクセスできることを示しています。
最初のコマンドは 、Get-PSDrive を使用して、セッション内のすべてのファイル システム ドライブを取得します。 これには、固定ドライブ (C: と D:)、New-PSDrive の Persist パラメーターを使用して作成されたマップされたネットワーク ドライブ (X:)、および Persist パラメーターを指定せずに New-PSDrive を使用して作成された 2 つの一時的な Windows PowerShell ドライブ (Y: と Z:) が含まれます。
net use コマンドは、Windows にマップされたネットワーク ドライブを表示しますが、X ドライブのみを表示します。 New-PSDriveによって作成されたY:ドライブとZ:ドライブは表示されません。 X: ドライブも \\Server01\Public にマップされていることを示しています。
3 番目のコマンドでは、Microsoft .NET Framework System.IO.DriveInfo クラスの GetDrives メソッドを使用します。 このコマンドは、ドライブ X: を含む Windows ファイル システム ドライブを取得しますが、 New-PSDrive によって作成された一時ドライブは取得しません。
4 番目のコマンドでは、Get-WmiObject コマンドレットを使用して 、Win32_LogicalDisk クラスのインスタンスを取得します。 C:、D:、および X: ドライブは返されますが、 New-PSDrive によって作成された一時ドライブは返されません。
最後のコマンドでは、Get-WmiObject コマンドレットを使用して 、Win32_NetworkConnection クラスのインスタンスを表示します。 net use と同様に、 New-PSDrive によって作成された永続的な X: ドライブのみを返します。
パラメーター
-LiteralName
ドライブの名前を指定します。
LiteralName の値は、型指定されたとおりに使用されます。 ワイルドカードとして解釈される文字はありません。 名前にエスケープ文字が含まれている場合は、単一引用符で囲みます。 単一引用符は、文字をエスケープ シーケンスとして解釈しないように Windows PowerShell に指示します。
型: | String[] |
配置: | 0 |
規定値: | None |
必須: | True |
パイプライン入力を受け取る: | True |
ワイルドカード文字を受け取る: | False |
-Name
文字列配列として、このコマンドレットが操作で取得するドライブの名前または名前を指定します。 ドライブ名または文字をコロン (:) なしで入力します。
型: | String[] |
配置: | 0 |
規定値: | None |
必須: | False |
パイプライン入力を受け取る: | True |
ワイルドカード文字を受け取る: | False |
-PSProvider
Windows PowerShell プロバイダーを文字列配列として指定します。 このコマンドレットは、このプロバイダーでサポートされているドライブのみを取得します。 FileSystem、レジストリ、証明書などのプロバイダーの名前を入力します。
型: | String[] |
配置: | Named |
規定値: | None |
必須: | False |
パイプライン入力を受け取る: | True |
ワイルドカード文字を受け取る: | False |
-Scope
このコマンドレットがドライブを取得するスコープを指定します。
このパラメーターに使用できる値は次のとおりです。
- グローバル
- ローカル
- スクリプト
- 現在のスコープに対する相対的な数値 (0 からスコープの数、0 が現在のスコープ、1 がその親)。 "Local" が既定値です。 詳細については、「about_Scopes (https://go.microsoft.com/fwlink/?LinkID=113260)」を参照してください。
型: | String |
配置: | Named |
規定値: | None |
必須: | False |
パイプライン入力を受け取る: | True |
ワイルドカード文字を受け取る: | False |
-UseTransaction
アクティブなトランザクションにコマンドを含みます。 このパラメーターは、トランザクションが進行中の場合にのみ有効です。 詳細については、「about_Transactions」を参照してください。
型: | SwitchParameter |
Aliases: | usetx |
配置: | Named |
規定値: | False |
必須: | False |
パイプライン入力を受け取る: | False |
ワイルドカード文字を受け取る: | False |
入力
None
このコマンドレットにオブジェクトをパイプすることはできません。
出力
このコマンドレットは、セッション内のドライブを表すオブジェクトを返します。
メモ
- このコマンドレットは、任意のプロバイダーによって公開されるデータを操作するように設計されています。 セッションで使用可能なプロバイダーを一覧表示するには、Get-PSProvider コマンドレットを使用します。 詳細については、about_Providersを参照してください。
- New-PSDrive コマンドレットの Persist パラメーターを使用して作成されたマップされたネットワーク ドライブは、ユーザー アカウントに固有です。 [管理者として実行] オプションまたは別のユーザーの資格情報を使用して開始されたセッションで作成したマップされたネットワーク ドライブは、明示的な資格情報なしで開始されたセッションや、現在のユーザーの資格情報では表示されません。