Показать полную графическую версию : [решено] Просмотр активных сессий на RDP и сортировка вывода
saykat85
26-07-2017, 16:22
Добрый день, форумчане. Есть необходимость получить красивый список активных сессий RDP с указанием имени сервера.
#тут получаю список серверов из нужной OY
$servers=Get-ADComputer -filter * -SearchBase "OU...DC=..,DC=.." | select -exp name
#тут сама операция опроса
$results = foreach ($server in $servers) {qwinsta /server:$server}
на выходе получаю список сессий с логинами, id, состоянием и именем сессии. А имени сервера на котором эти сессии висят нет.
Пробовал прикрутить конструкцию вроде
foreach ($server in $servers) {qwinsta /server:$server | Format-Table -Property $server.name, username} , но результат такой же, как без FT.
Может у кого то есть идеи как это оформить?
Сценарий PowerShell script to Find RDP sessions on Servers (https://gallery.technet.microsoft.com/scriptcenter/PowerShell-script-to-Find-d2ba4252)
qwinsta /server:$server | foreach {$_.trim() -replace "\s+",","} | ConvertFrom-Csv | Select *,@{n="Server";e={$server}}
Или можно установить модуль PSTerminalServices - https://psterminalservices.codeplex.com/
PS > Get-TSSession
Server SessionID State IPAddress ClientName WindowStationName UserName
------ --------- ----- --------- ---------- ----------------- --------
localhost 0 Disconnected Services
localhost 1 Active Console Contoso\User
localhost 65536 Listening RDP-Tcp
saykat85
27-07-2017, 09:40
Iska, Kazun, Вам спасибо. На основании предложенных скриптов собрал то, что нужно.
saykat85
27-07-2017, 10:07
Хотелось бы понять что происходит с данными вот тут
foreach { (($_.trim() -replace "\s+",","))} | ConvertFrom-Csv)
вот в это строчке,
$queryResults = (qwinsta /server:$ServerName | foreach { (($_.trim() -replace "\s+",","))} | ConvertFrom-Csv)
и от чего все ломается если это foreach { (($_.trim() -replace "\s+",","))} | ConvertFrom-Csv) убрать.
и от чего все ломается если это foreach { (($_.trim() -replace "\s+",","))} | ConvertFrom-Csv) убрать. »
нда, запоздалый ответ но отвечу
foreach, здесь лишний,
командой qwinsta /server, можно обработать только один узел, а не массив
логичнее использовать
(query session /server:$ServerName).trim() -replace "\s+","," | ConvertFrom-Csv
trim() - отбрасывает пустые символы в начале строки и в конце
"\s+","," - замена TAB на ,
"\s+","," - замена TAB на , »
если уж описывать код, то надо бы уточнять полностью: не только TAB, а и любой пробельный символ, один или более...
\s == [ \f\n\r\t\v]
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.