我尝试从另一台服务器B检索远程服务器A的磁盘空间详细信息,并使用下面的PowerShell命令:
Get-WmiObject -Class Win32_LogicalDisk -ComputerName aa.bb.cc.dd -filter "DriveType=3" | Select DeviceID,@{Name="Size(GB)";Expression={"{0:N1}" -f($_.size/1gb)}},@{Name="FreeSpace(GB)";Expression={"{0:N3}" -f($_.freespace/1gb)}}
输出如下:
DeviceID Size(GB) FreeSpace(GB)
-------- -------- -------------
C: 59.9 17.080
D: 20.0 0.875
F: 100.0 81.865
在服务器A中,驱动器D无法访问。我无法在“我的电脑”中看到驱动器空间详细信息。我检查了服务器A的磁盘管理中的驱动器空间详细信息,发现上述值是正确的。
我再次访问服务器A并在其自己的PowerShell窗口中运行以下命令:
Get-WmiObject -Class Win32_LogicalDisk -filter "DriveType=3" | Select DeviceID,@{Name="Size(GB)";Expression={"{0:N1}" -f($_.size/1gb)}},@{Name="FreeSpace(GB)";Expression={"{0:N3}" -f($_.freespace/1gb)}} | out-file ./local.txt
现在我得到了以下输出:
DeviceID Size(GB) FreeSpace(GB)
-------- -------- -------------
C: 59.9 17.080
D: 0.0 0.000
F: 100.0 81.864
实际上命令几乎相似。唯一的区别是,如果我们尝试获取远程计算机的空间详细信息,那么我们需要添加参数-ComputerName和远程计算机名称。
我的问题是,当我远程和本地运行命令时,为什么PowerShell会显示两种不同的结果。
它显示的值实际上是正确的。 我有一个其他服务器的列表,并在脚本中使用此命令来查找它们的磁盘空间详细信息。明天,如果其中一个服务器中的其他驱动器无法访问,则此命令不会帮助我找到它,因为它也会检索其详细信息。