2013-07-20 4 views
1

, как я могу убить несколько задачу того же пользователя мы используем эти два кодаTaskkill для конкретного пользователя

Код 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

Я хочу убить всех процесс, открытый другими пользователями – user2602933

ответ

0

вы можете попробовать с tskill. Он может убить процесс и принимает в качестве параметра идентификатор пользователя:

убийств исследователя для того же пользователя

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 
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 
) 
Смежные вопросы