PDA

Показать полную графическую версию : logoff пользователей у которых не запущены определенные процессы


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

alpap
16-04-2019, 18:39
начните как-то так:

@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
alpap,
Подставляю имя процесса, но ничего не происходит.

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

Поставил pause




© OSzone.net 2001-2012