Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
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 #Найти сессии конкретного пользователя
Сброс зависших RDP сессий