gpt4 book ai didi

vbscript - 如何使用 VBScript 终止由特定用户启动的进程

转载 作者:行者123 更新时间:2023-12-02 20:17:23 27 4
gpt4 key购买 nike

我有多个用户在 Windows 2003 服务器上运行 Attachemate。我想杀死 user_1 启动的 Attachemate.exe,而不杀死 user_2 启动的 Attachemate.exe。

我想使用 VBScript。

最佳答案

您可以使用它来找出进程所有者是谁,然后一旦找到,就可以使用 Win32_Process 通过进程 ID 来终止该进程。

MSDN Win32_Process class details

MSDN Terminating a process with Win32_Process

肯定有一种更简洁的方法来做到这一点,但这就是我想出的方法。注意:这当然不处理同名的多个进程,但我认为您可以使用数组来保存它们或类似的东西来处理该部分。 :)

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

关于vbscript - 如何使用 VBScript 终止由特定用户启动的进程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/76275/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com