Frage

Ich habe mehrere Benutzer attachemate auf einem Windows 2003 Server ausgeführt wird. Ich möchte attachemate.exe von user_1 begann zu töten, ohne von user_2 attachemate.exe begann zu töten.

Ich möchte VBScript verwenden.

War es hilfreich?

Lösung

Sie könnten dies nutzen, um herauszufinden, wer der Prozesseigner ist, dann, wenn Sie haben, dass Sie Win32_Process verwenden können, um den Prozess durch den Prozess-ID zu töten.

MSDN Win32_Process Klasse Details

MSDN Beenden eines Prozesses mit Win32_Process

Es ist sicherlich ein sauberer Weg, dies zu tun, aber hier ist, was ich kam mit. HINWEIS: Diese befaßt sich nicht mit mehreren Prozessen mit dem gleichen Namen natürlich, aber ich glauben Sie, dass ein Teil aus mit einer Reihe arbeiten können sie oder so etwas zu halten. :)

strComputer = "."
strOwner = "A111111"
strProcess = "'notepad.exe'"

' Connect to WMI service and Win32_Process filtering by name'
Set objWMIService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\" _
    & strComputer & "\root\cimv2")
Set colProcessbyName = objWMIService.ExecQuery("Select * from Win32_Process Where Name = " _
    & strProcess)

' Get the process ID for the process started by the user in question'
For Each objProcess in colProcessbyName
    colProperties = objProcess.GetOwner(strUsername,strUserDomain)
    if strUsername = strOwner then
        strProcessID = objProcess.ProcessId
    end if
next

' We have the process ID for the app in question for the user, now we kill it'
Set colProcessList = objWMIService.ExecQuery("Select * from Win32_Process where ProcessId =" & strProcessID)
For Each objProcess in colProcess
    objProcess.Terminate()
Next

Andere Tipps

Shell, um PsKill von http://sysinternals.com/

Commandline: pskill -u user_1 attachemate.exe

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top