远程计算机RAM、CPU、磁盘空间监控:防火墙拦截及规则调整咨询
远程WMI监控PowerShell脚本的防火墙拦截问题
问题描述
我用WMI(Windows Management Instrumentation)编写了一段PowerShell脚本,用于监控远程计算机的内存(RAM)、CPU及CPU使用率,脚本示例如下:
$CompObject = Get-WmiObject -Class WIN32_OperatingSystem -ComputerName $remotePcName $Memory = ((($CompObject.TotalVisibleMemorySize - $CompObject.FreePhysicalMemory)*100)/ $CompObject.TotalVisibleMemorySize)
目标计算机与本地处于同一网络,且可能加入同一域。现咨询:防火墙是否会阻止该PowerShell脚本执行,导致无法获取远程计算机的资源数据?若会,需调整哪条防火墙规则?
答案
会的,远程WMI访问默认会被Windows防火墙拦截,需要在目标计算机上启用对应的防火墙规则:
- 域环境场景:启用
Windows Management Instrumentation (WMI-In)的域配置文件规则,这条规则允许域内的WMI请求穿透防火墙。 - 非域的同一私有网络场景:启用
Windows Management Instrumentation (WMI-In)的私有配置文件规则。
额外补充两点注意事项:
- 除防火墙规则外,执行脚本的账号必须在目标计算机上拥有WMI远程访问权限(默认域管理员组自带该权限,普通账号需手动配置权限)。
- 若后续要监控CPU使用率,需调用
Win32_Processor类,同样依赖WMI网络访问,上述防火墙规则也适用。
内容的提问来源于stack exchange,提问作者aSpagno
相关产品推荐
相关产品推荐

