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

Logoff, shutdown и reboot с помощью wmi и powershell

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

Для начала выведем список методов класса:

Get-WmiObject Win32_OperatingSystem | Get-Member -MemberType Method

методы класса Win32_OperatingSystem

Если вам надо просто перезагрузить или выключить компьютер, то подойдут методы Reboot и Shutdown соответственно. К примеру, для перезагрузки надо выполнить такую команду:

(Get-WmiObject Win32_OperatingSystem -EnableAllPrivileges).Shutdown()

Завершение работы с помощью метода Shutdown

Обратите внимание на ключ EnableAllPrivileges. Повышение привилегий необходимо для данной операции, без него команда завершится с ошибкой.

ошибка при отсутствии привилегий

Следующий метод Win32Shutdown в качестве аргумента принимает параметр (Flags), с помощью которого можно выбрать необходимое действие. Параметр представляет из себя битовую маску и может принимать следующие значения:

Log Off (0) — выход из системы. Останавливает все процессы, связанные с контекстом безопасности текущего пользователя, завершает его сеанс  и отображает диалоговое окно входа в систему.

Forced Log Off (4) — принудительный выход из системы. Выход производится незамедлительно, не дожидаясь завершения процессов пользователя. Это может привести к некорректному завершению работы программ и потере данных.

Shutdown (1) — завершение работы. Завершает работу системы и выключает питание компьютера. При этом все запущенные процессы останавливаются, а содержимое памяти сохраняется на диск. Во время завершения работы система обращается к каждому запущенному приложению и ждет от него подтверждения того, что его можно безопасно завершить.

Forced Shutdown (5) — принудительное завершение работы. Завершает работу системы и выключает питание компьютера. При принудительном завершении работы все запущенные программы и службы, включая WMI, отключаются незамедлительно. Из-за этого может произойти потеря данных, а при запуске на удаленном компьютере вы не сможете увидеть результат выполнения команды.

:/>  Как управлять службами в Windows -

Reboot (2) — перезагрузка. Завершение работы и перезагрузка компьютера.

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

Power Off (8) — выключение. Завершение работы системы и выключение питания компьютера (если это поддерживается).

Forced Power Off (12) — принудительное выключение. Завершение работы системы и выключение питания компьютера. При принудительном выключении все запущенные программы и службы незамедлительно завершаются, из за чего может произойти потеря данных.

К примеру команда для завершения сеанса пользователя (logoff) будет выглядеть так:

(Get-WmiObject Win32_OperatingSystem -EnableAllPrivileges).Win32Shutdown(0)

logoff с помощью метода Win32Shutdown

Ну и самый продвинутый метод Win32ShutdownTracker, который имеет четыре параметра — задержку (Timeout), комментарий (Comment), код причины (ReasonCode) и действие (Flags). Действия указываются аналогично предыдущему методу. Коды причины можно посмотреть здесь, хотя если особой необходимости в них нет, можно просто поставить 0. Для примера принудительно завершим работу системы, укажем таймаут 60 секунд и добавим комментарий:

(Get-WmiObject Win32_OperatingSystem -EnableAllPrivileges).Win32ShutdownTracker(60,"Force shutdown",0,5)

Завершение работы с отсрочкой и вывод комментария

Примечание. Для операций LogOff, независимо от указанной задержки выход из системы происходит незамедлительно. Добавить комментарий также невозможно.

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

Универсальные обработкиЧистка базыОбработка документовПрактика программированияОбработка справочниковСервисные утилитыv81cv8.cfАбонемент ($m)

Объекты: Справочник, Документ, ПланОбмена, ПВХ, Бизнес-процесс, Задача, ПланСчетов, ПВР.
Мультиобработчик:
-Проведение, перенумерация, движения, копирование, создание на основании, подчиненность, статистика, удаление документов.
-Регистрация изменений объекта(ов) в планах обмена.
-Установка/Отключение ГлавногоУзла РИБ.
-Поиск и восстановление “Битых” ссылок.
-Недопустимые символы XML/Дерево XML.
-Поиск и замена ссылок.
-Ошибки ИБ, в т.ч XML.
-Множество обработок справочников.
-GUID. Дата и время создания объектов ссылочного типа.
-Аналитика предопределенных, блокируемых реквизитов, ХранилищаЗначений.
-История изменений объекта.
-Активные пользователи.
-Подписки на события, функциональные опции.
-Загрузка пользователей ИБ из Windows, Active Directory.
-Выгрузка/Загрузка пользователей ИБ в/из внешний XML-файл.
-Поддержка различных режимов модальности.
Файловый, Клиент-Серверный варианты.
Обычная и Управляемая формы.

:/>  Исчез ярлык с рабочего стола как восстановить? - О компьютерах, ноутбуках и программах

1 стартмани

28.12.2021   
174798   
8861   
StepByStep   
422    

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

Долго думал каким таким простым образом можно сделать массовый logoff пользователей с терминального сервера после рабочего времени, при этом некоторых пользователей (к примеру себя) с терминала не выгонять?!

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

Это не всегда подходит т.к. персонал начинает работать не всегда в одно и тоже время, да и может кто то работать больше чем 8-9 часов в день.

Долго бился с этой задачей, пока снова не спасла (всесильная) командная строка и несколько строк кода скрипта.

Оставьте комментарий

Adblock
detector