2017-06-13 109 views
2

我有一個小的VBScript,它通過Win32_Process查找特定的應用程序。這一切都沒有任何延遲,但自2017年1GB + Windows 7更新以來,這個過程現在需要幾秒鐘才能返回幾行。Win32_Process自Windows 7(2017)更新後運行緩慢

我已經將代碼隔離到腳本,該腳本運行查詢,並且我在Win32_Process調用的任一側都包含了一個MsgBox,這肯定是問題所在。

測試腳本位於共享位置,我從Windows 10和Windows 8.1環境運行它,並且在我確認第一個MsgBox後立即返回而沒有任何延遲。

下面的代碼I'me運行:

strProcessSQLQuery = "SELECT * FROM Win32_Process WHERE " & _ 
    "Name = 'WScript.exe' OR Name = 'CScript.exe'" & _ 
    " OR " & _ 
    "Name = 'mshta.exe'" & _ 
    " OR " & _ 
    "Name = 'mstsc.exe'" & _ 
    " OR " & _ 
    "Name = 'prowin32.exe' OR Name = 'prowc.exe'" 

Set objWMIService = GetObject("winmgmts:\\.\root\cimv2") 

Msgbox "Query Starting" 

Set objProcessElements = objWMIService.ExecQuery (strProcessSQLQuery) 

Msgbox "Query Completed: " & objProcessElements.Count 
+0

這是隻在一個特定的系統,或者這是發生在多個系統明顯與系統更新時一致嗎? –

+0

我已經在另一臺電腦上測試過了,它也在運行Windows 7,並且由於更新也開始遇到這種延遲。最初我以爲這可能是我的AD登錄的安全問題,但我已經在Windows 8.1和Windows 10 PC上以自己和其他用戶的身份登錄,並且都按預期工作,沒有滯後。此過程也在Server 2012環境中運行,並且使用上述腳本不會遇到任何延遲。 – DuaneRRR

+0

我找到了一臺尚未用最新補丁更新並運行相同腳本的Windows 7 PC。響應瞬時無延遲。我非常確信自從這次最新更新以來發生了一些變化,這正在影響Win32_Process處理查詢的方式,但由於我不知道如何對代碼進行編碼或找到替代方法而停下來。 – DuaneRRR

回答

0

嘛最新的Windows 7更新,發佈我的問題已經解決了這個問題。無論哪些補丁已經解決了Win32_process響應時間。