CMD/BAT - скрипт, который завершает сеанс пользователя-инициатора на терминальном сервере

Ответить
Аватара пользователя
dmins

CMD/BAT - скрипт, который завершает сеанс пользователя-инициатора на терминальном сервере

Сообщение dmins »

Есть скрипт, в котором явно прописан Логин пользователя, сессию которого завершает на терминальном сервере.

Задача: изменить его так, что бы скрипт определял САМ имя пользователя который запустил скрипт и гасил его сессию на терминале.





Код:

Код: Выделить всё

@echo off
Set SERVER=myserver
Set USER=testuser
For /F "Tokens=1-4 Skip=1 Delims=# " %%i In ('qwinsta /Server:%SERVER%') Do (
   If "%%i"=="rdp-tcp" (
      If "%%k"=="%USER%" rwinsta %%l /Server:%SERVER%
   ) Else (
      If "%%i"=="%USER%" rwinsta %%j /Server:%SERVER%
   )
)

подробнее:



Имя пользователь в домене: testuser, он запускает RemoteAPP (соответственно у него поднимается сессия терминальная) на сервере терминалов.

Далее, пользователь запускает этот скрипт, в котором ЯВНО прописано его имя пользователя "testuser".

А если таких пользователей 500, не делать же под каждого такой скрипт c указанием имени пользователя, в связи с этим:



мне бы хотелось сделать этот скрипт универсальным для всех пользователей, конкретно: что бы при запуске скрипта любым пользователем из домена, определялось имя его учетной записи и по этой записи уже гасилась сессия на терминале. У меня есть идея касаемо whoami - он выдает имя залогиненого пользователя под данной учеткой в виде domain\user. Как бы пристроить в этот скрипт, подскажите коллеги.



Спасибо.
Аватара пользователя
dmins

Re: CMD/BAT - скрипт, который завершает сеанс пользователя-инициатора на терминальном сервере

Сообщение dmins »

Команда whoami выдает domain\username

Через findstr можно отсортировать вывод команды (все что после слеша) и подставить это в переменную &USER& скрипта.



Как это реализовать, или есть другие идеи ?
Аватара пользователя
dmins

Re: CMD/BAT - скрипт, который завершает сеанс пользователя-инициатора на терминальном сервере

Сообщение dmins »

Решил вопрос, скрипт гасит как Активную сессси так и сессию в статусе Дисконнектед.

Выглядит это все вот так:





Код:

Код: Выделить всё

@echo on
Set SERVER1=IP_Адрес_вашего_терминального_сервера
Set USER=%username%
For /F "Tokens=1-4 Skip=1 Delims=# " %%i In ('qwinsta /Server:%SERVER1%') Do (
   If "%%i"=="rdp-tcp" (
      If "%%k"=="%USER%" rwinsta %%l /Server:%SERVER1%
   ) Else (
      If "%%i"=="%USER%" rwinsta %%j /Server:%SERVER1%
   )
)

Вам необходимо поменять только то, что выделено ЖИРНЫМ шрифтом, все остальное не трогать!
Ответить

Вернуться в «Скриптовые языки администрирования Windows»