Как стать автором
Обновить

Комментарии 8

Кодировка оригинальная, забавно.

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

cls
Import-Module ActiveDirectory
$Servers = Get-ADComputer -SearchBase "OU=Servers,DC=contoso,DC=test" -Filter 'Enabled -eq $true'
$Servers += Get-ADComputer -SearchBase "OU=Servers,OU=Moscow,DC=contoso,DC=test" -Filter 'Enabled -eq $true'

$RDPArray = @()
ForEach ($Server in $Servers) {
    $ServerName=$Server.Name
    $ping = Test-Connection $ServerName -count 1 -Quiet
    if ($ping -eq $true) {
            $Results= qwinsta /server:$servername
            $Results = $Results[1..$($Results.Count - 1)]
            foreach ($Result in $Results) {
$RDPMember = New-Object PSObject
Add-Member -InputObject $RDPMember -MemberType NoteProperty -Name "Server" -Value $Server.Name
Add-Member -InputObject $RDPMember -MemberType NoteProperty -Name "Session" -Value $Result.Substring(1,18).Trim()
Add-Member -InputObject $RDPMember -MemberType NoteProperty -Name "User" -Value $Result.Substring(19,22).Trim()
Add-Member -InputObject $RDPMember -MemberType NoteProperty -Name "ID" -Value $Result.Substring(41,7).Trim()
Add-Member -InputObject $RDPMember -MemberType NoteProperty -Name "Status" -Value $Result.Substring(48,8).Trim()
Add-Member -InputObject $RDPMember -MemberType NoteProperty -Name "Type" -Value $Result.Substring(56,12).Trim()
Add-Member -InputObject $RDPMember -MemberType NoteProperty -Name "Device" -Value $Result.Substring(68,8).Trim()
$RDPArray += $RDPMember
		  }
    }
}
#$RDPArray|?{($_.User).Length -ne 0}|ft server, user, status #Показать всех пользователей
$RDPArray|?{$_.User -like "IvanovII*" }|ft server, user, status #Найти сессии конкретного пользователя
Спасибо. Навели на некоторые идеи на основе вашего скрипта.
Такая кодировка в «русском» Windows PowerShell ISE.
Помогает все отобразить в читаемом виде
[Console]::outputEncoding = [System.Text.Encoding]::GetEncoding('cp866')
Скажите пожалуйста человеку далекому от администрирования, а это помогает от симптома «черный экран» при попытке восстановить оборанную RDP сессию? И работает ли это для не северной винды (семерки)?
Нажми Ctrl+Alt+End и черный экран исчезнет.
спасибо
Да это «сбрасывает» черный экран и работает на Windows начиная с версии 7 точно, включая серверные версии.
Это не восстанавливает сессию, а сбрасывает её — выход из системы производится.
спасибо
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории