0
我在使用組策略的客戶端上運行各種VBS腳本。在大多數客戶端這工作正常。但是在我的計算機上(我創建腳本的那臺計算機上),啓動計算機後始終運行多個MSE7實例 - 每個通過組策略部署的VBS腳本都有一個實例。啓動我的電腦時打開MSE7的多個實例
任何人都可以幫助我理解爲什麼會發生這種情況和/或如何阻止它!
謝謝。
安德魯
我在使用組策略的客戶端上運行各種VBS腳本。在大多數客戶端這工作正常。但是在我的計算機上(我創建腳本的那臺計算機上),啓動計算機後始終運行多個MSE7實例 - 每個通過組策略部署的VBS腳本都有一個實例。啓動我的電腦時打開MSE7的多個實例
任何人都可以幫助我理解爲什麼會發生這種情況和/或如何阻止它!
謝謝。
安德魯
有了這個腳本,你可以找到它的命令行的任何處理,並選擇要殺死他們。試試吧!
Option Explicit
Dim Titre,Copyright,fso,ws,NomFichierLog,temp,PathNomFichierLog,OutPut,Count
If AppPrevInstance() Then
MsgBox "There is an existing proceeding !" & VbCrLF & CommandLineLike(WScript.ScriptName),VbExclamation,"There is an existing proceeding !"
WScript.Quit
Else
Copyright = "[© Hackoo © 2015 ]"
Set fso = CreateObject("Scripting.FileSystemObject")
Set ws = CreateObject("Wscript.Shell")
NomFichierLog="Killed_Process.txt"
temp = ws.ExpandEnvironmentStrings("%temp%")
PathNomFichierLog = temp & "\" & NomFichierLog
Set OutPut = fso.CreateTextFile(temp & "\" & NomFichierLog,1)
Call Find("wscript.exe")
Call Explorer(PathNomFichierLog)
End If
'***************************************************************************************************
Function Explorer(File)
Dim ws
Set ws = CreateObject("wscript.shell")
ws.run "Explorer "& File & "\",1,True
end Function
'***************************************************************************************************
Sub Find(MyProcess)
Dim colItems,objItem,Processus,Question
Titre = " Process "& DblQuote(MyProcess) &" running "
Set colItems = GetObject("winmgmts:").ExecQuery("Select * from Win32_Process " _
& "Where Name like '%"& MyProcess &"%' AND NOT commandline like " & CommandLineLike(WScript.ScriptFullName) & "",,48)
Count = 0
For Each objItem in colItems
Count= Count + 1
Processus = objItem.CommandLine
Question = MsgBox ("Would do you like to kill this script : " & DblQuote(Processus) & " ?" ,VBYesNO+VbQuestion,Titre+Copyright)
If Question = VbYes then
objItem.Terminate(0)'To kill the process
OutPut.WriteLine Processus
else
Count= Count - 1 'decrementing the count of -1
End if
Next
OutPut.WriteLine String(100,"*")
OutPut.WriteLine count & Titre & "were killed"
OutPut.WriteLine String(100,"*") & VbCrLF
End Sub
'**************************************************************************
Function DblQuote(Str)
DblQuote = Chr(34) & Str & Chr(34)
End Function
'**************************************************************************
Function AppPrevInstance()
With GetObject("winmgmts:" & "{impersonationLevel=impersonate}!\\.\root\cimv2")
With .ExecQuery("SELECT * FROM Win32_Process WHERE CommandLine LIKE " & CommandLineLike(WScript.ScriptFullName) & _
" AND CommandLine LIKE '%WScript%' OR CommandLine LIKE '%cscript%'")
AppPrevInstance = (.Count > 1)
End With
End With
End Function
'**************************************************************************
Function CommandLineLike(ProcessPath)
ProcessPath = Replace(ProcessPath, "\", "\\")
CommandLineLike = "'%" & ProcessPath & "%'"
End Function
'**************************************************************************
感謝您的建議。但它並沒有真正回答我的問題,這些問題是(i)爲什麼我只在一臺計算機上遇到相同腳本在所有客戶端上運行時的問題,以及(ii)是否有某種方式可以將腳本修改爲停止發生問題。 – Andrew 2015-02-25 21:05:30