Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   скрипт, который завершает сеанс пользователя-инициатора на терминальном сервере (http://forum.oszone.net/showthread.php?t=300678)

dmins 03-06-2015 11:48 2514466

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

Код:

@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 03-06-2015 12:13 2514478

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

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

dmins 03-06-2015 13:00 2514509

Подставил вместо переменной имени %username%

dmins 03-06-2015 13:43 2514532

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

Код:

@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%
  )
)

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

Iska 04-06-2015 05:42 2514750

dmins, ввод ещё одной переменной окружения:
Цитата:

Цитата dmins
Код:

Set USER=%username%
»

совершенно избыточен.


Время: 15:03.

Время: 15:03.
© OSzone.net 2001-