Как завершить терминальный сеанс пользователя из командной строки?

Раздел: Windows
Написано: 3.09.2011
Автор: Antonio


Warning: WP_Syntax::substituteToken(): Argument #1 ($match) must be passed by reference, value given in /data/site/nemcd.com/www/wp-content/plugins/wp-syntax/wp-syntax.php on line 380

Когда-то мне нужно было это реализовать завершение терминального сеанса пользователя из командной строки по его имени для одной задачи, а так же включение пользователя (активация статуса), время для работы пользователя, правильное завершение его сессии и выключение учетной записи.

Я начал поиски и нашел какие-то советы по использованию сторонних утилит, так как я не хотел пользоваться сторонними программами, да и задача была немного сложнее чем они могли делать, то я решил написать свой скрипт.

Приведу пример скрипта, который может завершать терминальный сеанс пользователя по имени и не только это, постарался сделать к каждой команде комментарии.

echo включаем (активируем) пользователя с логином IvanLogin
net user "IvanLogin" /active:yes
 
echo задаем время паузы скрипта
echo (время сколько пользователю можно будет работать) в секундах
ping -n 7201 -w 1000 -l 1 127.0.0.1
 
echo вычисляем ID сессии пользователя
SET ID_SES="null"
for /f "tokens=1-2" %%i in ('Query session IvanLogin') do (
set ID_SES=%%i
)
 
echo завершаем сеанс пользователя по его ID
logoff %ID_SES%
 
echo выключаем учетную запись пользователя
net user "IvanLogin" /active:no

Скрипт нужно запускать с правами достаточными для управления пользователями и завершения их сеансов (админскими правами).

Так же скрипт не нужно закрывать самому руками, по истечении заданного времени он сам завершится и закроется (выполнив все команды).
Получилось довольно просто, пользуйтесь на здоровье, кому помог, просьба отписываться в комментах.

Фразы: выключение терминального пользователя, завершение сеанса из скрипта, скрипт включения учетной записи пользователя терминала Windows 2003, активация логина из командной строки Windows

Поделиться с друзьями или в соц.сетях (спасибо)
Ещё похожие заметки:

Deprecated: Функция get_settings с версии 2.1.0 считается устаревшей! Используйте get_option(). in /data/site/nemcd.com/www/wp-includes/functions.php on line 6260
Перенос строки в консоли PHP
OSCommerce — Warning: Cannot modify header information — headers already sent by (output started at
Как включить ping в Windows 2008?
Как убрать символ переноса строки в PHP
Скачать dcdiag для Windows 2003

4 комментария

Денис
Сен 19, 2016 14:52

День добрый, а как запустить сеанс пользователя?

 
Antonio
Сен 21, 2016 00:09

Это скрипт для терминального сервера.

Так же по-идее можно попробовать его использовать на обычной системе, если входит по очереди несколько пользователей.
Вот только зачем? Если есть права админа, то можно вручную обходиться.

 
Гокуса
Мар 1, 2017 02:28

а как на обычной виндовс «выбивать » пользователей?
админки же вроде нету?

 
Antonio
Мар 4, 2017 13:29

команда logoff работает и на обычной семерке,
попробуйте

 

Написать


Warning: Undefined variable $user_ID in /data/site/nemcd.com/www/wp-content/themes/desk-mess/comments.php on line 108

Копирование информации с сайта возможно только с указанием прямой ссылки - https://nemcd.com