Показать полную графическую версию : Logoff пользователей терминала по списку в txt
Sub-Zero
19-09-2018, 14:48
Приветствую!
В этой теме (http://forum.oszone.net/thread-331217.html) сделан logoff тех кто отключился.
А мне нужно чтобы выкинуло тех пользователей, логины которых указаны в текстовом файле (например users.txt) то есть query user сравнивать с тем что в txt файле.
Заранее спасибо!
Sub-Zero
08-04-2019, 19:04
Пока ждал сам написал скриптик :)
for /f "tokens=*" %%a in (users.txt) do (
net user %%a /active:no
for /f "tokens=2-3 skip=3" %%b in ('qwinsta') do (
if /i "%%a"=="%%b" rwinsta %%c
))
В файле users.txt соответственно должны быть имена пользователей, которых мы выкидываем из сервера терминалов - по одному имени в строке.
Причем пользователи не просто выкидываются но еще и блочатся их учетки, чтобы они не смогли больше зайти по rdp.
Если блокировка кому-то не нужна - просто удалите вторую строку скрипта net user %%a /active:no
Sub-Zero, главное чтобы имена юзеров были без пробелов иначе будет сюрприз :tongue:
Sub-Zero
09-04-2019, 13:19
Цитата alpap:
главное чтобы имена юзеров были без пробелов иначе будет сюрприз »
С первой частью кода все понятно. Можно использовать:
for /f "usebackq tokens=*" %%a in ("users.txt") do (
net user "%%a" /active:no
А вот дальше меня терзают смутные сомнения... Как в qwinsta отделить одно от другого, если там одни пробелы в разделителях. Были бы хотя бы табы :dont-know
Или считать количество символов в строке до начала ID rdp сессии? Профессионалы подскажите плз.
Как в qwinsta отделить одно от другого »
там в bat почти никак, но можно так:
@echo off
for /f "skip=1 delims=" %%a in ('wmic path Win32_UserAccount get FullName /value^|find "="') do set "%%a"& call :#
pause& exit
:#
if not "%FullName%"=="" echo %FullName%
exit /b
если нужны имена и текущего и Администратор и Гость, то так:
@echo off
for /f "skip=1 delims=" %%a in ('wmic path Win32_UserAccount get Name /value^|find "="') do set "%%a"& call :#
pause& exit
:#
if not "%Name%"=="" echo %Name%
exit /b
Как в qwinsta отделить одно от другого, если там одни пробелы в разделителях »
попробуйте еще вот так, мне сложно проверить:
@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 (echo "%~1 %~2" %~3) else (echo "%~1" %~2)
exit /b
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.