Главная > Windows > Автоматизированный Logoff всех пользователей с терминального сервера

Автоматизированный Logoff всех пользователей с терминального сервера

Как сделать logoff забывчивых пользователей с терминального сервера в нужное время?

Долго думал каким таким простым образом можно сделать массовый logoff пользователей с терминального сервера после рабочего времени, при этом некоторых пользователей (к примеру себя) с терминала не выгонять?! Первое, что взбрело в голову, сделать групповую политику которая все за тебя сделает, покапался в настройках - такая штуковина существует, но она умеет выгонять только по таймеру, т.е. через промежуток времени (1,2 и т.д. часа), а не в указанное время. Это не всегда подходит т.к. персонал начинает работать не всегда в одно и тоже время, да и может кто то работать больше чем 8-9 часов в день. Долго бился с этой задачей, пока снова не спасла (всесильная) командная строка и несколько строк кода скрипта. Скрипт 100% работает на Windows Server 2008 R2 x64 (устанавливать дополнительно ничего не надо, все работает через штатные средства). Вот такую коду набросал: в USER_NAME записываем к примеру свой логин "admin" (он не будет выгоняться). обратите внимание, что не корректно отображается ">" в коде, там она обозначается значком "& gt;" После этого, добавляем скрипт в менеджер задач на нужное время и вуаля, всех кто забыл закрыть терминальные сессии - выгоняем. Обращайтесь, пишите свои замечания и статьи, вместе мы сделаем мир круче :)
1 звезда2 звезды3 звезды4 звезды5 звезд (Рейтинг отсутствует)

Loading...Loading...
  1. 1
    14 Март 2013 в 05:32 | #1

    Молодца!

  2. Andrew
    5 Декабрь 2013 в 06:06 | #2

    Это скрипт или можно просто в батник запихнуть и на планировщик поставить?

    • chum
      5 Декабрь 2013 в 06:23 | #3

      да. пихаем в батник и запихиваем в планировщик.

  3. Andrew
    5 Декабрь 2013 в 06:26 | #4

    спасибо попробуем =) а то и правда некоторые забывчивые не выходят правильно и обновления корректно не сделать! еще раз спасибо!

  4. 21 Январь 2014 в 15:44 | #5

    Привет, а как 2 юзаков не выгонять, есть к примеру админ и админ2, как это будет выглядеть?

    • chum
      21 Январь 2014 в 19:31 | #6

      Приветствую, можно попробовать на файл sessionTMP.txt еще раз накинуть эту строчку
      findstr /V "USER_NAME" sessionTMP.txt > sessionTMP2.txt и потом уже выгонять
      for /f "skip=1 tokens=2," %%i in (sessionTMP2.txt) DO logoff %%i ну и
      del session.txt
      del sessionTMP.txt
      del sessionTMP2.txt
      громоздко получается, но работать должно

  5. 15 Сентябрь 2015 в 08:08 | #7

    если нужно два и более то используем ключ /C:
    findstr /V /C:USER_NAME1 /C:USER_NAME2 session.txt > sessionTMP.txt

  6. sk132
    17 Май 2016 в 14:56 | #8

    можно сделать без использования временных файлов
    for /F "skip=1 tokens=2" %%i in ('quser ^| findstr /V "user1 user2"') do logoff %%i

  1. Пока что нет уведомлений.

Current month ye@r day *


7 × = тридцать пять

Heads up! You are attempting to upload an invalid image. If saved, this image will not display with your comment.