如何杀死我们使用这两个代码的同一用户的多个任务
代码no1
@ECHO OFF
TASKKILL /F /IM explorer.exe
cls
Echo "Please Specify the User ID"
Set /p u=
set USER=%u%@%userdomain%
Echo "Please Specify the PASSWORD"
runas /user:%USER% Explorer.exe
cls
echo "Press any key to Switch Back to Default USer Profile"
Pause
Echo "please enter your password again for verification"
runas /user:%USER% C:\switch.bat
pause
cls
start %windir%\explorer.exe
exit
代码no2(此文件名为Switch.bat)
@echo off
TASKKILL /F /IM Explorer.exe
exit
实际上创建它的背后的一般想法是在win XP中切换,如win 7,而不是注销 问题是当它切换回原始配置文件时 第二个用户的所有任务都没有停止
是为任何正在运行的特定用户停止所有任务的方法
答案 0 :(得分:0)
您可以尝试使用tskill
。它可以终止进程并接受用户ID作为参数:
为同一个用户杀死资源管理器
setlocal enabledelayedexpansion
set exe_name=Explorer
for /f "skip=1 tokens=1,2,3" %%S in ('query user') do (
set "current_user=%%S"
if "!current_user:~0,1!" EQU ">" (
for /f "tokens=2 delims= " %%M in ('tasklist ^| find ^"%exe_name%^"') do (
tskill "%%M" /ID:%%U
)
)
)
endlocal
goto :eof
对于所有其他用户:
setlocal enabledelayedexpansion
set exe_name=Explorer
for /f "skip=1 tokens=1,2,3" %%S in ('query user') do (
set "current_user=%%S"
if "!current_user:~0,1!" NEQ ">" (
for /f "tokens=2 delims= " %%M in ('tasklist ^| find ^"%exe_name%^"') do (
tskill "%%M" /ID:%%U
)
)
)
endlocal
goto :eof
答案 1 :(得分:0)
您可以杀死此类特定用户的所有进程(前提是您拥有管理员权限):
@echo off
taskkill /fi "username eq %1" /t /f
运行如下脚本:
C:\>script.cmd joe
但是,为什么不简单地关闭第二个用户而不是切换回去?那将是明显的(也是更清洁的)解决方案。作为管理员,您甚至可以在命令行上注销其他用户:
logoff session
您可以使用query session
枚举会话(如果前者不起作用,则为qwinsta
):
@echo off
for /f "tokens=3" %%s in ('qwinsta ^| find /i "joe"') do (
logoff %%s
)