PowerShell でアクセス可能なすべてのドライブを表示する

PowerShell でアクセス可能なすべてのドライブを表示する

cd \ がドライブのルートに移動することに気づきました。

しかし、私のコンピューターにはアクセスできる他のドライブもあります。

PowerShell には、接続できるすべてのドライブを一覧表示するコマンドがありますか?

答え1

これは、何を「ドライブ」と呼んでいるかによって多少異なります。PowerShell には、通常のローカル ボリュームまたはネットワーク マップされたボリュームを表すドライブのほか、エイリアス、環境変数、関数、PowerShell 変数、レジストリ ハイブなどの他のオブジェクトを保持するドライブがあります。

PowerShell ですべての「ドライブ」のリストを表示するには、次のコマンドを使用します。

Get-PSDrive

または、組み込みのエイリアスを使用することもできます。

gdr

(Get-PSDrive以下に記載されている箇所はどこでも代用できますgdr。)

ローカルまたはネットワークにマップされたボリュームやメディア ベイなどの FileSystem ドライブのみを取得するには、次のコマンドを使用します。

Get-PSDrive -PSProvider FileSystem

取得するためただローカルドライブ、またはただハードドライブでは、フィルターに適切なプロパティやメソッドが見つかりませんでしたGet-PSDrive。少しグーグルで検索したところ、TechNet の Microsoft の Get-PSDrive ドキュメント. ここでは、 の使用方法の詳細とともにGet-PSDrive、PowerShell でアクセス可能なドライブ列挙方法もいくつかリストされています。私が便利だと思った方法の 1 つは、.NET Framework の System.IO.DriveInfo クラスを使用する方法です。

PowerShell 経由で実行可能な以下のコマンドは、ローカル ハード ドライブのみを一覧表示します。

[System.IO.DriveInfo]::getdrives() | Where-Object {$_.DriveType -eq 'Fixed'}

ハードドライブだけでなく、任意のローカルドライブを含める場合は、以下を使用します。

[System.IO.DriveInfo]::getdrives() | Where-Object {$_.DriveType -ne 'Network'}

Select-Objectドライブ文字のみを表示する場合は、次のように出力を にパイプします。

[System.IO.DriveInfo]::getdrives() | Where-Object {$_.DriveType -ne 'Network'} | Select-Object -Property Name

および にはWhere-Object、およびWhere-Object whereSelect-Objectという組み込みのエイリアスもあります(これは単に好みの問題です)。System.IO.DriveInfo クラスは、IO.DriveInfo に短縮することもできます。したがって、最後のコマンドは、必要に応じて次のように実行できます。?select, respectively. (is also usable as

[IO.DriveInfo]::getdrives() | ? {$_.DriveType -ne 'Network} | select -Property Name

もちろん、 や PowerShell 経由でアクセスできる .NET クラス、および利用可能な他の多くの PowerShell ショートカットを使用して実行できることは他にもたくさんあります。TechNet や同様のサイトでさらに詳しく読み、およびコマンドレットを使用して環境をよりよく理解することをGet-PSDrivesお勧めします。Get-HelpGet-Command

答え2

次のコマンドを使用して、powershellPC上のすべてのドライブを一覧表示します。

gdr -PSProvider 'FileSystem'

または

Get-PSDrive -PSProvider 'FileSystem'

関連情報