当我从远程 Windows 7 PC 查询已安装的服务时,速度非常慢。使用远程 Windows XP PC 总是很快的。
例如,在我的 Windows 7 PC 中,命令
sc \\pc1 query type= service
使用 Windows 7 远程 PC 需要 21 秒。使用 Windows XP 远程 PC 可以立即完成。我可以用我们的任何 PC 重现这种行为。其他工具也会出现这种情况(例如 Hyena) 有人知道是什么让请求如此缓慢,或者如何让它像 Windows XP 一样即时?
经典防火墙问题。
Microsoft RPC 高端口默认为 tcp/49152 - Windows 7/2008 上的 tcp/65535。除非您指定了自定义 RPC 端口范围。
所讨论的特定 RPC 端点是服务控制管理器远程协议 (SCMR)。如果在运行 sc 命令时运行数据包捕获,您将看到正在使用的端口。首先它将连接到 tcp/135 以获取 SCMR 的 RPC 端点,然后尝试连接到 SCMR 通告的端口。
如果您想配置较小的端口范围,以下文章可能会有所帮助:
如何配置 RPC 动态端口分配以使用防火墙
https://support.microsoft.com/kb/154596
键:HKLM\Software\Microsoft\Rpc\Internet\
值:端口
值类型:REG_MULTI_SZ
Windows Vista/7/2008 中 TCP/IP 的默认动态端口范围已更改
https://support.microsoft.com/kb/929851
正如 Greg Askew 所提到的,服务控制器使用动态 RPC 端口,该端口在与端口 135 上的 RPC 端点映射器通信后被识别。Windows 防火墙可以配置为允许 RPC 动态端口通过,而无需任何注册表编辑或 RPC 重新配置:
打开具有高级安全性的 Windows 防火墙。使用自定义类型创建新的入站规则。将其应用于所有程序。在协议和端口页面上,选择TCP作为协议,选择RPC 动态端口作为本地端口。将规则应用于任何源地址或本地接口,并允许连接(如果您使用 IPsec ,则允许连接,如果它是安全的)。无需重新启动。
sc
现在正在从远程机器上快速运行。你尝试过其他工具吗?即
wmic /node:NAME service
或powershell -command get-service -computername NAME
您是否尝试过在本地隔离是本地机器的问题还是网络上的问题?
沙查夫。