Рубрики
cmd \ vbs \ scripts

Как с помощью командной строки отправить всем пользователям сообщение и спустя некоторое время завершить их сеанс?

Ссылка:

https://ru.stackoverflow.com/questions/686081/%D0%A3%D0%BF%D1%80%D0%B0%D0%B2%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5-%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D1%82%D0%B5%D0%BB%D1%8F%D0%BC%D0%B8-windows-server-%D0%B8%D0%B7-cmd

Решение:

query user - получить список всех залогиненных пользователей консольной командой
             в списке видны их ID сеанса и статус активности

msg 1 Bla-bla-bla - отправить сообщений по номеру сеанса (это первый параметр, предположим, что он равен 1)

msg * Bl-Bla-bla - отправить сообщение сразу всем сеансам активных пользователей, нужно вместо ID указать символ *

logoff 1 - завершить сеанс пользователя (по его ID)

бат-файл:

@msg * LOGOUT TIME!
@ping 127.0.0.1  -n 10 >nul
@for /f "skip=1 tokens=3," %%i in ('@query user') DO @if NOT "%%i"=="" logoff %%i