在 PowerShell 中列出驱动器

Marion Paul Kenneth Mendoza 2023年1月30日
  1. PowerShell 中的 Get-PSDrive 命令简介
  2. 在 PowerShell 的当前会话中获取驱动器
  3. 在 PowerShell 中获取计算机上的驱动器
  4. 获取 PowerShell 文件系统提供程序支持的所有驱动器
  5. 检查驱动器是否用作 PowerShell 驱动器名称
在 PowerShell 中列出驱动器

作为 Windows 管理员,在某些情况下,我们需要获取有关我们日常管理的系统的特定信息。此信息之一是系统驱动器。

我们可以使用 PowerShell 快速查询这些信息。本文将讨论 Get-PSDrive 命令的好处以及我们可以在实际场景中应用所述命令的几种情况。

PowerShell 中的 Get-PSDrive 命令简介

Get-PSDrive 命令检索当前机器或会话中的驱动器信息。我们可以获取特定的系统驱动器或计算机中的所有驱动器。

此 cmdlet 从以下类型的驱动器中检索信息。

  1. 计算机上的 Windows 逻辑驱动器映射到网络共享,包括驱动器。
  2. PowerShell 提供程序公开的驱动器(例如 Function:Certificate:Alias: 驱动器)以及 Windows PowerShell 注册表提供程序公开的 HKLM:HKCU: 驱动器。
  3. 我们使用 New-PSDrive cmdlet 创建的持久映射网络驱动器或会话指定的临时驱动器。从 Windows PowerShell 3.0 版开始,New-PSDrive 命令的 -Persist 参数可以创建保存在本地计算机上并在其他会话中可用的映射网络驱动器。

我们将在本文的下一部分解决这个问题。

从 Windows PowerShell 3.0 版开始,当外部驱动器(闪存驱动器、外部硬盘等)连接到计算机时,Windows PowerShell 会自动将 PSDrive 添加到代表新驱动器的文件系统中。

因此,你不需要重新启动 Windows PowerShell。

同样,当外部驱动器与计算机断开连接时,Windows PowerShell 会自动删除表示已删除驱动器的 PSDrive

要检查你当前的 PowerShell 版本,你可以运行以下代码片段。

$PSVersionTable

以下是我们在使用 Get-PSDrive 命令创建脚本时可以使用的一些示例。

在 PowerShell 的当前会话中获取驱动器

下面的命令获取当前会话中的所有驱动器。我们还可以指出,cmdlet 的基本语法不需要任何额外的参数来执行。

Get-PSDrive

在 PowerShell 中获取计算机上的驱动器

此命令获取计算机上的特定驱动器。值得注意的是,冒号不应跟在命令中的驱动器号后面。

例如,我们在下面的示例代码中查询了系统驱动器 C:。此外,我们可以替换片段中的字母 C 参数来查询另一个驱动器。

示例代码:

Get-PSDrive C

输出:

Name           Used (GB)     Free (GB) Provider      Root
----           ---------     --------- --------      ----
C                 471.64        459.13 FileSystem    C:\

获取 PowerShell 文件系统提供程序支持的所有驱动器

此命令检索 Windows PowerShell 文件系统提供程序支持的所有驱动器。此方法包括使用 New-PSDrive cmdlet 创建的固定驱动器、逻辑分区、映射网络驱动器和临时驱动器。

示例代码:

Get-PSDrive -PSProvider FileSystem

检查驱动器是否用作 PowerShell 驱动器名称

此命令检查特定驱动器是否已用作 Windows PowerShell 驱动器名称。如果没有,该命令使用 New-PSDrive cmdlet 创建一个映射到 HKLM:\SOFTWARE 注册表项的临时驱动器。

if (Get-PSDrive Q -ErrorAction SilentlyContinue) {
    Write-Host 'The Q: drive is already in use.'
} else {
     New-PSDrive -Name Q -PSProvider Registry -Root HKLM:\SOFTWARE
}
Marion Paul Kenneth Mendoza avatar Marion Paul Kenneth Mendoza avatar

Marion specializes in anything Microsoft-related and always tries to work and apply code in an IT infrastructure.

LinkedIn