![PowerShell でアクセス可能なすべてのドライブを表示する](https://rvso.com/image/1416714/PowerShell%20%E3%81%A7%E3%82%A2%E3%82%AF%E3%82%BB%E3%82%B9%E5%8F%AF%E8%83%BD%E3%81%AA%E3%81%99%E3%81%B9%E3%81%A6%E3%81%AE%E3%83%89%E3%83%A9%E3%82%A4%E3%83%96%E3%82%92%E8%A1%A8%E7%A4%BA%E3%81%99%E3%82%8B.png)
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-Help
Get-Command
答え2
次のコマンドを使用して、powershell
PC上のすべてのドライブを一覧表示します。
gdr -PSProvider 'FileSystem'
または
Get-PSDrive -PSProvider 'FileSystem'