次の方法で共有


Get-PSDrive

現在のセッションのドライブを取得します。

構文

Get-PSDrive
   [[-Name] <String[]>]
   [-Scope <String>]
   [-PSProvider <String[]>]
   [<CommonParameters>]
Get-PSDrive
   [-LiteralName] <String[]>
   [-Scope <String>]
   [-PSProvider <String[]>]
   [<CommonParameters>]

説明

Get-PSDrive コマンドレットは、現在のセッションのドライブを取得します。 セッション内の特定のドライブを取得することも、すべてのドライブを取得することもできます。

このコマンドレットは、次の種類のドライブを取得します。

  • コンピューター上の Windows 論理ドライブ (ネットワーク共有にマップされたドライブを含む)。
  • PowerShell プロバイダーによって公開されるドライブ (証明書、関数:、エイリアス: ドライブなど) と、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           Used (GB)     Free (GB) Provider      Root
----           ---------     --------- --------      ----
Alias                                  Alias
C                 202.06      23718.91 FileSystem    C:\
Cert                                   Certificate   \
D                1211.06     123642.32 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:\foo> Get-PSDrive D

Name           Used (GB)     Free (GB) Provider      Root
----           ---------     --------- --------      ----
D                1211.06     123642.32 FileSystem    D:\

このコマンドは、コンピューターの D: ドライブを取得します。 コマンドではドライブ文字の後にコロンを指定していないことに注意してください。

例 3: Windows PowerShell ファイル システム プロバイダーでサポートされているすべてのドライブを取得する

PS C:\> Get-PSDrive -PSProvider FileSystem
Name           Used (GB)     Free (GB) Provider      Root
----           ---------     --------- --------      ----
A                                                    A:\
C                 202.06      23718.91 FileSystem    C:\
D                1211.06     123642.32 FileSystem    D:\
G                 202.06        710.91 FileSystem    \\Music\GratefulDead

このコマンドは、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           Used (GB)     Free (GB) Provider      Root
----           ---------     --------- --------      ----
A                                                    A:\
C                 202.06      23718.91 FileSystem    C:\
D                1211.06     123642.32 FileSystem    D:\
G                 202.06        710.91 FileSystem    \\Music\GratefulDead
X                                      Registry      HKLM:\Network

PS C:\> net use
New connections will be remembered.
Status       Local     Remote                    Network
-------------------------------------------------------------------------------
OK           G:        \\Server01\Public         Microsoft Windows Network

PS C:\> [System.IO.DriveInfo]::GetDrives() | Format-Table
Name DriveType DriveFormat IsReady AvailableFreeSpace TotalFreeSpace TotalSize     RootDirectory VolumeLabel
---- --------- ----------- ------- ------------------ -------------- ---------     ------------- -----------
A:\    Network               False                                                 A:\
C:\      Fixed NTFS          True  771920580608       771920580608   988877418496  C:\           Windows
D:\      Fixed NTFS          True  689684144128       689684144128   1990045179904 D:\           Big Drive
E:\      CDRom               False                                                 E:\
G:\    Network NTFS          True      69120000           69120000       104853504 G:\           GratefulDead

PS N:\> Get-CimInstance -Class Win32_LogicalDisk

DeviceID DriveType ProviderName   VolumeName         Size          FreeSpace
-------- --------- ------------   ----------         ----          ---------
A:       4
C:       3                        Windows            988877418496  771926069248
D:       3                        Big!              1990045179904  689684144128
E:       5
G:       4         \\Music\GratefulDead              988877418496  771926069248


PS C:\> Get-CimInstance -Class Win32_NetworkConnection
LocalName RemoteName            ConnectionState Status
--------- ----------            --------------- ------
G:        \\Music\GratefulDead  Connected       OK

次の使用例は、 Get-PSDrive によって表示されるファイル システム ドライブの種類を、他のメソッドを使用して表示されるドライブと比較します。 この例では、Windows PowerShell でドライブを表示するさまざまな方法を示し、New-PSDrive コマンドレットを使用して作成されたセッション固有のドライブには Windows PowerShell でのみアクセス可能であることを示しています。

最初のコマンドでは、 Get-PSDrive を使用して、セッション内のすべてのファイル システム ドライブを取得します。 これには、固定ドライブ (C: および D:)、New-PSDrivePersist パラメーターを使用して作成されたマップされたネットワーク ドライブ (G:)、Persist パラメーターを指定せずにNew-PSDriveを使用して作成された PowerShell ドライブ (T:) が含まれます。

net use コマンドは、Windows マップされたネットワーク ドライブを表示します。この場合、G ドライブのみが表示されます。 New-PSDriveによって作成された X: ドライブは表示されません。 G: ドライブも \\Music\GratefulDead にマップされていることを示しています。

3 番目のコマンドでは、Microsoft .NET Framework System.IO.DriveInfo クラスの GetDrives メソッドを使用します。 このコマンドは、ドライブ G: を含む Windows ファイル システム ドライブを取得しますが、 New-PSDriveによって作成されたドライブは取得されません。

4 番目のコマンドでは、 Get-CimInstance コマンドレットを使用して、 Win32_LogicalDisk クラスのインスタンスを取得します。 A:、C:、D:、E:、G: ドライブが返されますが、 New-PSDriveによって作成されたドライブは返されません。

最後のコマンドでは、 Get-CimInstance コマンドレットを使用して、 Win32_NetworkConnection クラスのインスタンスを表示します。 net use と同様に、New-PSDriveによって作成された永続的な G: ドライブのみが返されます。

パラメーター

-LiteralName

ドライブの名前を指定します。

LiteralName の値は、型指定されたとおりに使用されます。 ワイルドカードとして解釈される文字はありません。 名前にエスケープ文字が含まれている場合は、単一引用符で囲みます。 単一引用符で囲んだ文字はエスケープ シーケンスとして解釈されません。

型:String[]
配置:0
規定値:None
必須:True
パイプライン入力を受け取る:True
ワイルドカード文字を受け取る:False

-Name

文字列配列として、このコマンドレットが操作で取得するドライブの名前または名前を指定します。 ドライブ名または文字をコロン (:) なしで入力します。

型:String[]
配置:0
規定値:None
必須:False
パイプライン入力を受け取る:True
ワイルドカード文字を受け取る:False

-PSProvider

Windows PowerShell プロバイダーを文字列配列として指定します。 このコマンドレットは、このプロバイダーでサポートされているドライブのみを取得します。 FileSystem、Registry、Certificate など、プロバイダーの名前を入力します。

型:String[]
配置:Named
規定値:None
必須:False
パイプライン入力を受け取る:True
ワイルドカード文字を受け取る:False

-Scope

このコマンドレットがドライブを取得するスコープを指定します。

このパラメーターの有効値は、次のとおりです。

  • グローバル
  • ローカル
  • スクリプト
  • 現在のスコープに対する相対的な数値 (0 からスコープの数、0 が現在のスコープ、1 がその親)。 既定値は "Local" です。

詳細については、「 about_Scopes」を参照してください。

型:String
配置:Named
規定値:None
必須:False
パイプライン入力を受け取る:True
ワイルドカード文字を受け取る:False

入力

None

このコマンドレットにオブジェクトをパイプすることはできません。

出力

PSDriveInfo

このコマンドレットは、セッション内のドライブを表すオブジェクトを返します。

メモ

PowerShell には、 Get-PSDriveの次のエイリアスが含まれています。

  • すべてのプラットフォーム:

    • gdr
  • このコマンドレットは、任意のプロバイダーによって公開されるデータを操作するように設計されています。 セッションで使用可能なプロバイダーを一覧表示するには、 Get-PSProvider コマンドレットを使用します。 詳細については、「 about_Providers」を参照してください。

  • New-PSDrive コマンドレットの Persist パラメーターを使用して作成されたマップされたネットワーク ドライブは、ユーザー アカウントに固有です。 [管理者として実行] オプションまたは別のユーザーの資格情報を使用して開始されたセッションで作成したマップされたネットワーク ドライブは、明示的な資格情報なしで開始されたセッションや、現在のユーザーの資格情報では表示されません。