代码之家  ›  专栏  ›  技术社区  ›  Pradeep Shanbhag

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

  •  0
  • Pradeep Shanbhag  · 技术社区  · 6 年前

    我正在尝试在windows 2008 R2 enterprise edition中获取磁盘可用空间和已用空间。但是,该命令无法获取值。此命令在windows 2012版本中运行良好。

    获取PSDrive-PSProvider文件系统将获取以下详细信息。。

    名称使用(GB)免费(GB)提供程序 ---- --------- --------- -------- C 71.99 166.23文件系统 H 71.99 166.23文件系统

    (获取PSDrive-PSProvider文件系统)。Name-给我驱动器名,这样我就可以获取其他详细信息。

    但是,相同的命令不适用于windows 2008 R2 enterprise edition。有什么解决办法吗?

    1 回复  |  直到 2 年前
        1
  •  2
  •   mklement0    2 年前

    (Get-PSDrive -PSProvider FileSystem).Name 依赖于 member-access enumeration ,这是PSv3中引入的功能 鉴于 Windows Server 2008 R2随PSv2提供 .

    成员访问枚举 意味着您可以访问以下属性: .Name 在上 收集 (数组),并在上隐式访问该属性 每个元素 大堆 .

    在PSv2中,必须使用 ForEach-Object cmdlet (或其别名, % )而是:

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