在PowerShell中调用WMI时指定端口?

时间:2013-03-01 21:55:49

标签: powershell wmi

WMI查询从端口135运行(谷歌告诉我)。尝试进行WMI查询时,是否可以指定其他端口?

或者,您可以使用system.managment.managementScope对象并在连接时指定端口吗?也许是这样的:

\\computername:port\root\cimv2\

如果这两个答案都是“否”,那么你可以用不同的方式连接,一旦连接,运行一个wmi查询吗?

此问题的原因:

我有一个混合环境,我需要查询防火墙后面的一些服务器。我无法为WMI查询指定超时值,因此我需要一种方法来连接这些框而无需新的防火墙规则。

1 个答案:

答案 0 :(得分:2)

WMI使用端口135进行协商,然后DCOM选择1024和65535之间的随机端口。使固定端口变得困难。对防火墙不太友好......

作为Jeff的评论,上面说过你必须告诉你要连接的机器,限制它使用的端口。

在Windows Server 2003中,您无法限制所选的端口,因此对于那些我在该服务器上运行我的脚本然后将结果推回到已知端口的人。我的脚本使用标准SQL端口,因为所有信息都存储在数据库中。

对于Windows Server 2008 R2,您可以限制它使用的端口,这可以通过在每台服务器上运行以下命令来完成;

  1. 在命令提示符下,键入 winmgmt -standalonehost
  2. 输入命令 net stop“Windows Management Instrumentation”
  3. 停止WMI服务
  4. 在新服务主机中再次重新启动WMI服务 输入 net start“Windows Management Instrumentation”
  5. 键入 netsh firewall add,为WMI服务建立新的端口号 portopening TCP 24158 WMIFixedPort
  6. 这里可以找到步骤和更多信息(正如杰夫所说): Setting Up a Fixed Port for WMI

    它不是最好的解决方案,但是我所知道的唯一解决方案,我已经为大型服务器环境构建脚本很长一段时间了。我一直处理的方法是在每个位置(DMZ等)都有一个脚本,然后将数据推回到已知的端口上。

    我希望你觉得这很有用。