Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   logoff пользователей у которых не запущены определенные процессы (http://forum.oszone.net/showthread.php?t=340127)

scaM 16-04-2019 18:08 2867994

logoff пользователей у которых не запущены определенные процессы
 
Добрый день!
Помогите с написанием батника.
Есть сервер терминалов на win2016. Батник должен проверять отключенных пользователей на определенные программы, если они у них не запущены, то завершать сеансы, если запущены, то пропускать.
Проблема в том что tasklist фильтрует по имени пользователя, а команда logoff по id. Не понимаю как их заставить работать вместе.

alpap 16-04-2019 18:39 2867995

начните как-то так:
Код:

@echo off
for /f "skip=2 tokens=2-4*" %%a in ('qwinsta') do set "s=%%d"& call :# "%%a" "%%b" "%%c"
pause& exit

:#
 if defined s (set "name=%~1 %~2"& set "ID=%~3") else (set "name=%~1"& set "ID=%~2")
 echo %name% %ID%
 echo Например заходим к пользователю и:
 tasklist|>nul find "calc.exe" && if not %ID%==0 echo Не делаем logoff %name%
exit /b


scaM 16-04-2019 19:12 2867997

alpap,
Подставляю имя процесса, но ничего не происходит.
Код:

1 Подключено
═ряЁшьхЁ чрїюфшь ъ яюы№чютрЄхы■ ш:
═х фхырхь logoff 1
Для продолжения нажмите любую клавишу . . .
2 Диск
═ряЁшьхЁ чрїюфшь ъ яюы№чютрЄхы■ ш:
═х фхырхь logoff 2

Поставил pause


Время: 12:57.

Время: 12:57.
© OSzone.net 2001-