Pergunta

Tenho vários usuários executando o Attachemate em um servidor Windows 2003.Quero matar o Attachemate.exe iniciado pelo usuário_1 sem matar o Attachemate.exe iniciado pelo usuário_2.

Eu quero usar VBScript.

Foi útil?

Solução

Você pode usar isso para descobrir quem é o proprietário do processo e, quando tiver isso, poderá usar Win32_Process para encerrar o processo pelo ID do processo.

Detalhes da classe MSDN Win32_Process

MSDN Encerrando um processo com Win32_Process

Certamente existe uma maneira mais limpa de fazer isso, mas aqui está o que eu descobri.OBSERVAÇÃO:É claro que isso não lida com vários processos com o mesmo nome, mas acho que você pode resolver essa parte com um array para mantê-los ou algo parecido.:)

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

Outras dicas

Desembolsar para pskill de http://sysinternals.com/

Linha de comando:pskill -u usuário_1 Attachemate.exe

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top