【问题标题】:Specify port when calling WMI in powershell?在PowerShell中调用WMI时指定端口?
【发布时间】:2013-03-01 21:55:48
【问题描述】:

WMI 查询在端口 135 上运行(来自 google 告诉我的内容)。尝试执行 WMI 查询时可以指定不同的端口吗?

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

\\computername:port\root\cimv2\

如果这两个问题的答案都是“否”,那么您能否以不同的方式连接并在连接后运行 wmi 查询?

这个问题的原因:

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

【问题讨论】:

标签: powershell wmi


【解决方案1】:

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

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

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

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

  1. 在命令提示符下,键入 winmgmt -standalonehost
  2. 通过键入命令 net stop "Windows Management Instrumentation" 停止 WMI 服务
  3. 在新的服务主机中重新启动 WMI 服务 通过键入 net start "Windows Management Instrumentation"
  4. 通过键入 netsh firewall add 为 WMI 服务建立一个新的端口号 portopening TCP 24158 WMIFixedPort

可以在此处找到步骤和更多信息(正如 Jeff 所提供的): Setting Up a Fixed Port for WMI

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

我希望你觉得这很有用。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-27
    • 2019-04-05
    • 2014-05-30
    相关资源
    最近更新 更多