在 PowerShell 中查看所有可存取的驅動器

在 PowerShell 中查看所有可存取的驅動器

我注意到 cd \ 導航到我的磁碟機的根目錄。

但我可以在電腦上存取其他驅動器。

PowerShell 中是否有命令列出我可以連接的所有磁碟機?

答案1

這在某種程度上取決於您所說的“驅動器”。在 PowerShell 中,有些磁碟機代表您常用的本機或網路對應卷,以及儲存其他物件(例如別名、環境變數、函數、PowerShell 變數、登錄機碼裝置等)的磁碟機。

若要在 PowerShell 中查看所有「磁碟機」的列表,請使用:

Get-PSDrive

或者您可以使用內建別名:

gdr

Get-PSDrive(您可以在下面看到的任何地方進行替換gdr。)

若要僅取得檔案系統驅動器,例如:本機或網路映射磁碟區或媒體托架,請使用:

Get-PSDrive -PSProvider FileSystem

要得到只是本機驅動器,或只是硬碟驅動器,我無法在物件輸出中找到合適的屬性或方法來Get-PSDrive進行過濾。後來谷歌搜尋了一下,我發現TechNet 上的 Microsoft Get-PSDrive 文檔。除瞭如何使用 的詳細資訊之外Get-PSDrive,還列出了一些其他 PowerShell 可存取的磁碟機枚舉方法。我發現有用的方法是透過 .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並且Select-Object還具有內建別名?select, respectively. (Where-Object is also usable aswhere` - 這實際上只是一個偏好問題。因此,如果您願意,最後一個命令可以這樣運行:

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

當然,您還可以使用 做很多其他事情Get-PSDrives,並且可以透過 PowerShell 存取 .NET 類,以及許多其他可用的 PowerShell 捷徑。我建議在 TechNet 和類似網站上閱讀更多內容,並使用Get-HelpGet-Commandcmdlet 來更好地熟悉環境。

答案2

使用以下命令powershell列出 PC 上的所有驅動器

gdr -PSProvider 'FileSystem'

或者

Get-PSDrive -PSProvider 'FileSystem'

相關內容