SDI*_*SDI 6 powershell windows-server-2008-r2
我目前正在管理基于 Windows Server 2008R2 的 Citrix-farm 系统。过去,我使用 Powershell 脚本来检查正在运行的用户进程并在必要时重新启动它们。
我使用带有附加参数的工具“tasklist.exe”来检查已定义的进程是否在登录用户下运行。不幸的是,tasklist.exe 已经停止工作几天了。重新启动它会导致错误消息:
“错误:未找到”或“错误:无效的类”。
由于服务器在德国,我已将消息从德语翻译成英语。在德国服务器上,它被称为
“Fehler:Nicht gefunden”和“Fehler:Ungultige Klasse”。
所以,我不确定翻译成英文是否正确。事件日志中没有错误日志。
由于它是一个生产系统,因此没有更新等变化,也没有互联网连接。
是否可能缺少 dll 注册?我已经检查了“depends.exe”是否有任何错误,但我无法确定工作服务器和非工作服务器之间的任何区别。
我还检查了启动“dcomcnfg”时是否有任何错误,但一切正常。
来自工作服务器的 tasklist.exe 的新副本不起作用。问题与可执行文件本身无关。
此链接下提供的提示已使用非阳性结果进行检查。
regsvr32 %Windir%\system32\wbem\fastprox.dll
regsvr32 %Windir%\system32\wbem\wbemprox.dll
regsvr32 %Windir%\system32\wbem\wbemsvc.dll
病毒码是最新的 (McAfee VDS 8.8 + ASE 8.8)。
有人对如何让“tasklist.exe”再次运行有任何建议吗?或者,我想要一个带有 Powershell 命令的解决方案,可以帮助重建“tasklist.exe”的功能——这不是一件容易的事,因为我不是最好的脚本编写者。?
在此先感谢您的帮助、提示或建议!
编辑:
事实上,问题与 WMI 有关。Ryan Ries 提示检查 WMI
“wbemtest”
尝试连接时导致类似的错误。
在这种情况下,我收到了一个错误代码,我可以通过它在Microsoft TechNet上找到解决方案。
该页面中列出的脚本对我不起作用,但命令
“Winmgmt /salvagerepository”
做过。
因此,感谢 Ryan 的 WMI 提示,并感谢 r.tanner.f 的解决方法,以防万一其他一切都不起作用。
虽然可以使用除了tasklist.exe之外的其他东西来获取系统上正在运行的进程的列表,但令我担心的是tasklist.exe突然停止工作。这是系统上的一个基本过程,它停止工作的事实可能是数据损坏或其他一些只会变得更糟的问题的迹象。
即使您能够使用 Powershell 或 WMIC 或其他一些可执行文件来解决此问题,也不试图找出导致此问题的原因,就像用电工胶带遮盖汽车仪表板上的“检查油量”指示灯一样。这并不意味着根本问题不存在。
此外,tasklist.exe 似乎利用 WMI 来获取信息,因此,如果 tasklist.exe 无法正常工作,则可能表明您的计算机上的 WMI 存在系统性问题,因此使用依赖 WMI 的其他工具可能不会起作用工作或者...
以下是解决此问题的方法。从 Sysinternals 获取进程监视器。在工作机上捕获事件,在非工作机上捕获事件。运行时对其进行过滤。现在将两个跟踪文件并排放置,看看它们有何不同。工作机器上的哪些事件返回 SUCCESS,而非工作机器上的相同事件返回 NAME NOT FOUND 或其他一些非成功代码?
HKCR\CLSID\{GUID}\
由于您收到的错误消息提到了一个无效的类,我敢打赌注册表项等中发生的事件\HKLM\Software\Classes
将显示两个跟踪文件之间的一些明确差异。
编辑:此外,如果您想测试 WMI 本身,您可以使用的一种方法是运行wbemtest
. 单击Connect...
,并用作root\cimv2
命名空间。您应该能够将其他所有内容留空或默认。然后,单击显示 的按钮Query
,输入select * from win32_process
您的查询并单击Apply
。您应该返回一堆有效的进程句柄并且没有错误消息。
祝你好运...
归档时间: |
|
查看次数: |
3594 次 |
最近记录: |