在 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-ObjectSelect-Object还具有内置别名?select, respectively. (Where-Object is also usable aswhere` - 这只是一个偏好问题。)System.IO.DriveInfo 类也可以缩短为 IO.DriveInfo。因此,如果您愿意,可以按如下方式运行最后一个命令:

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

当然,您还可以使用Get-PSDrives、 和可通过 PowerShell 访问的 .NET 类以及许多其他可用的 PowerShell 快捷方式来做很多事情。我建议您阅读更多有关 TechNet 和类似网站的信息,并使用Get-HelpGet-Commandcmdlet 来更好地熟悉环境。

答案2

使用以下命令powershell列出电脑上的所有驱动器

gdr -PSProvider 'FileSystem'

或者

Get-PSDrive -PSProvider 'FileSystem'

相关内容