вообщем вот что получается, если батник выглядит так
Код:
Set SERVER=2003test
Set KILLME=test1
For /F "Tokens=1,2 Skip=3 Delims= " %%i In ('qwinsta /Server:%SERVER%') Do If "%%i"=="%KILLME%" rwinsta %%j /Server:%SERVER%
,
test1 - имя юзера то имеем
Код:
C:\Documents and Settings\Administrator>Set SERVER=2003test
C:\Documents and Settings\Administrator>Set KILLME=test1
C:\Documents and Settings\Administrator>For /F "Tokens=1,2 Skip=3 Delims= " %i I
n ('qwinsta /Server:2003test') Do If "%i" == "test1" rwinsta %j /Server:2003test
C:\Documents and Settings\Administrator>If "rdp-tcp#8" == "test1" rwinsta test1
/Server:2003test
C:\Documents and Settings\Administrator>
видно, что rwinsta берет, не имя сессии, а имя юзера.
Если меняем %j на %i, то получается все правильно
Код:
C:\Documents and Settings\Administrator>C:\test\3.bat
C:\Documents and Settings\Administrator>Set SERVER=2003test
C:\Documents and Settings\Administrator>Set KILLME=test1
C:\Documents and Settings\Administrator>For /F "Tokens=1,2 Skip=3 Delims= " %i I
n ('qwinsta /Server:2003test') Do If "%i" == "test1" rwinsta %i /Server:2003test
C:\Documents and Settings\Administrator>If "rdp-tcp#8" == "test1" rwinsta rdp-tc
p#8 /Server:2003test
НО!!!!!! команда rwinsta тогда не отрабатывает.... пробовал до rwinsta писать goto на след. строчку, чтобы она выполнялась с новой строки, но тогда пишется session %i not found. Где может быть косяк?