【发布时间】:2018-06-12 19:06:45
【问题描述】:
在我的工作场所,我们管理着医院重症监护电脑(Windows 7 桌面客户端),这些电脑旨在近乎永久地开启和运行特定程序。为此,我们开发了一些 powershell 脚本,它们每 5 分钟运行一次,并在 PC 掉线或我们需要的进程/程序崩溃时提醒我们。
我们的程序监控脚本依赖于由管理员凭据帐户远程运行的 powershell cmdlet“get-process”。该脚本适用于我们除一台以外的所有 PC,但我们无法确定导致故障的原因。
最基本的命令看起来像
get-process -computername [hostname]
当指向我们的问题电脑时,我们得到错误
Get-Process : Couldn't connect to remote machine
我们的研究表明,这可能是由权限、防火墙或远程注册表服务问题引起的。我们已经在这台 PC 上进行了三重检查 监控帐户具有管理员权限,没有防火墙处于活动状态,并且远程注册表服务已打开并设置为自动启动。该代码在本地计算机上运行时有效,但在远程运行时无效。
类似的 powershell cmdlet 可以远程运行,例如“get-service”,可以正常运行。如上所述,“get-process”在我们的其他 PC 上成功运行。对此奇怪问题的任何见解将不胜感激。
需要注意的一点是,为回答其他类似问题而提供的 Invoke-Command 解决方法不适用于这台 PC 或我们的任何其他 PC。
【问题讨论】:
-
我会重新映像机器。如果不是,则可能是 WMI DB 损坏。
-
重新映像机器在您的环境中不应该是一个激烈的步骤。所有机器的启动都是一样的,基本上永远只运行一个程序。磁盘映像应该“装在罐子里”,随时可以交付。
-
当您使用
get-process -computername [IPAddress]或使用计算机的完全限定域名时会发生什么? -
@Theo 结果相同,不幸的是。
-
@lit 这可能是我要去的地方,PC 在由供应商提供的推车中(对于任何旧问题,他更喜欢完全翻录和替换),但我相信我可以跟踪图像。
标签: powershell windows-7