среда, 18 марта 2020 г.

PowerShell скрипт для отключения сессий пользователей

Иногда возникает необходимость выполнить регламентные работы на сервере Windows с монопольным доступом

В этом могут помочь несколько простых скриптов:
disable_logon.cmd
Запрещает подключение новых пользователей
change logon /disable
kill_sessions.ps1
Powershell скрипт закрывающий активные сессии, кроме сессий администраторов из списка
$admins = "admin1", "admin2"
$sessions=quser
for ($i=1; $i -le ($sessions.length -1); $i+=1)
    {   
        $flag = 'true'
        for ($j = 0; $j -le ($admins.length -1); $j+=1)
        {           
            if ($sessions[$i].substring(0,20).trim().replace(">","") -eq $admins[$j])
                {
                    $flag = 'false'
                    break
                }
        }
        if ($flag -eq 'true')
        {           
            rwinsta $sessions[$i].substring(41,4).trim()
        }        
    }
(для работы скрипта необходимо разрешить локальный запуск скриптов выполнив в консоли PowerShell: Set-ExecutionPolicy remotesigned)
disable_logon.cmd
Разрешает подключение новых пользователей
change logon /enable
Скрипты запускаем последовательно:
  1. Запрещаем регистрацию
  2. Закрываем существующие сессии
  3. Делаем свое дело
  4. Разрешаем регистрацию
P.S.
Для обеспечения совместимости используется PowerShell 2

Комментариев нет:

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