PowerShell远程获取磁盘空间及get-WmiObject命令remotecomputer参数问询
使用PowerShell从远程计算机检索磁盘空间及相关参数解析
一、用PowerShell检索远程计算机磁盘空间的两种常用方法
1. 传统WMI方式(Get-WmiObject)
这是比较经典的命令,适合兼容旧版PowerShell环境。你需要确保执行命令的账号拥有目标远程计算机的管理员权限,且远程主机开启了WMI服务(默认是启用的)。
示例命令:
# 查询单台远程计算机的磁盘信息,格式化输出易读的磁盘数据 Get-WmiObject win32_logicaldisk -Computername remotecomputer | Select-Object DeviceID, VolumeName, @{Name="TotalSize(GB)";Expression={[math]::Round($_.Size/1GB,2)}}, @{Name="FreeSpace(GB)";Expression={[math]::Round($_.FreeSpace/1GB,2)}}, @{Name="FreePercent";Expression={[math]::Round(($_.FreeSpace/$_.Size)*100,2)}} # 批量查询多台计算机,直接传入多个名称/IP即可 Get-WmiObject win32_logicaldisk -Computername PC01, PC02, 192.168.1.50 | Select-Object PSComputerName, DeviceID, FreePercent
上面的命令会把原始字节单位的磁盘数据转换成更直观的GB格式,同时计算可用空间百分比,方便快速查看磁盘使用率。
2. 推荐的CIM方式(Get-CimInstance)
微软现在更推荐使用CIM相关cmdlet,它比WMI cmdlet更高效,支持更多现代特性(比如复用CIM会话减少连接开销),语法也更统一。
示例命令:
# 单台远程计算机查询 Get-CimInstance Win32_LogicalDisk -ComputerName remotecomputer | Select-Object DeviceID, VolumeName, @{Name="TotalSize(GB)";Expression={[math]::Round($_.Size/1GB,2)}}, @{Name="FreeSpace(GB)";Expression={[math]::Round($_.FreeSpace/1GB,2)}}, @{Name="FreePercent";Expression={[math]::Round(($_.FreeSpace/$_.Size)*100,2)}} # 批量查询时用CIM会话提升效率 $session = New-CimSession -ComputerName PC01, PC02 Get-CimInstance Win32_LogicalDisk -CimSession $session | Select-Object PSComputerName, DeviceID, FreePercent Remove-CimSession $session
二、-Computername remotecomputer参数详解
参数核心含义
-Computername是Get-WmiObject(以及Get-CimInstance)的核心参数之一,用来指定你要查询的目标远程计算机。它支持多种输入形式:- 单个计算机名称(比如
DESKTOP-XYZ789) - 单个IP地址(比如
10.0.0.20) - 多个计算机名称/IP的数组(比如
PC01, 10.0.0.21) - 本地文本文件的路径(比如
C:\computers.txt)
- 单个计算机名称(比如
文本文件的内容要求
当你把参数值设为文本文件路径时,文件里需要每行存储一个远程计算机的标识,支持的格式包括:- 计算机NetBIOS名称(比如
Server01) - 计算机的IP地址(比如
192.168.0.10) - 完全限定域名(比如
server01.yourdomain.com)
- 计算机NetBIOS名称(比如
举个文件内容的示例:
Server01 192.168.0.10 DESKTOP-ABC123 server02.yourdomain.com
注意:每行只能有一个条目,不要添加多余的空格、逗号或注释,否则命令可能解析失败。
额外注意事项
- 执行命令的用户必须拥有目标远程计算机的管理员权限,否则会返回权限不足的错误。
- 远程计算机需要开启
Windows Management Instrumentation (Winmgmt)服务,且防火墙允许WMI通信(默认规则允许域内主机访问,工作组环境可能需要手动配置)。
内容的提问来源于stack exchange,提问作者viduranga kasun




