获取文件系统驱动器名称的 Powershell 命令 - 成员访问枚举

Powershell command to get filesystem drive names - member-access enumeration

我正在尝试免费获取磁盘 space 并在 windows 2008 R2 企业版中使用了 space。但是,该命令无法获取值。此命令在 windows 2012 版本中运行良好。

Get-PSDrive -PSProvider FileSystem 将获取以下详细信息..

已用名称 (GB) 免费 (GB) 提供商 ---- ---------- ---------- ------ C 71.99 166.23 文件系统 H 71.99 166.23 文件系统

(Get-PSDrive -PSProvider FileSystem).Name - 获取驱动器名称,以便我获取其他详细信息。

然而,同样的命令对windows 2008 R2 企业版不起作用。有什么解决办法吗?

(Get-PSDrive -PSProvider FileSystem).Name 依赖于 member-access enumeration,这是在 PSv3 中引入的功能,而 Windows Server 2008 R2附带 PSv2.

成员访问枚举意味着您可以访问属性,例如集合上的.Name (数组)并在该集合的 每个元素 上隐式访问 属性,结果收集在 array.

在 PSv2- 中,您必须使用 ForEach-Object cmdlet(或其别名 %)来代替:

Get-PSDrive -PSProvider FileSystem | % { $_.Name } # return drive names as array