Сброс зависших RDP сессий

от автора

Всем у кого в хозяйстве есть терминальные сервера на Windows приходится сталкиваться с зависшими сессиями.
Сессии частенько зависают, если пользователь просто закрыл окно терминала.
Естественно, все мы настраиваем параметры сброса сессий по времени и отключению пользователя, но бывает что сессии все равно не завершаются и тогда мы используем команды: qwinsta — просмотр сессий и rwinsta — сброс сессий
Абсолютно уверен, что скриптик который сам отслеживает зависшие сессии и сбрасывет их написали многие, но не выложили в сеть потому что это просто, но я выложу для тех кто ищет и кому это нужно прямо сейчас:

Скрипт получает список сессий qwinsta, выбирает сессии со статусом Диск ("*ЁбЄ*" — это тоже «Диск», просто в кривой кодировке, добавлено на всякий случай) и rwinsta сбрасывает сесии.
В скриптике rwinsta — закомментирована, чтоб сессии сбрасывались раскомментируйте.
В текущем виде скрипт просто покажет вам зависшие сессии.

# Сброс зависших сессий, добавьте в расписание на своем скрипт сервере Function RDP_Resetfailure($server){ 	$ts = qwinsta /server:$server 	$td = ($ts | where { ($_ -like "*Disc*" -or $_ -like "*Диск*" -or $_ -like "*ЁбЄ*" ) -and $_ -notlike "*services*"}) 	$tdselect = $td # Для отладки или внесения в лог: Login Id State 	$td = $td -ireplace ("[^0-9]","") # оставляем только id сессий 	for($i=0; $i -lt $td.Count; $i++){ 		Write-Host Reset RDP Failture session ID: $td[$i] $tdselect[$i]      #отладка просмотр id сессий 		#rwinsta $td[$i] /server:$server            # сброс зависших сессий, раскомментируйте эту строку 	} }  $server = "MyRDPServer" RDP_Resetfailure($server) 

ссылка на оригинал статьи https://habrahabr.ru/post/276935/


Комментарии

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *