PowerShell - [решено] Просмотр активных сессий на RDP и сортировка вывода

Ответить
Аватара пользователя
saykat85

PowerShell - [решено] Просмотр активных сессий на RDP и сортировка вывода

Сообщение saykat85 »

Добрый день, форумчане. Есть необходимость получить красивый список активных сессий 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.

Может у кого то есть идеи как это оформить?
Аватара пользователя
Kazun

Re: PowerShell - [решено] Просмотр активных сессий на RDP и сортировка вывода

Сообщение Kazun »

Код:

Код: Выделить всё

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

Re: PowerShell - [решено] Просмотр активных сессий на RDP и сортировка вывода

Сообщение saykat85 »

Iska, Kazun, Вам спасибо. На основании предложенных скриптов собрал то, что нужно.
Аватара пользователя
saykat85

Re: PowerShell - [решено] Просмотр активных сессий на RDP и сортировка вывода

Сообщение saykat85 »

Хотелось бы понять что происходит с данными вот тут



foreach { (($_.trim() -replace "\s+",","))} | ConvertFrom-Csv)



вот в это строчке,



$queryResults = (qwinsta /server:$ServerName | foreach { (($_.trim() -replace "\s+",","))} | ConvertFrom-Csv)



и от чего все ломается если это foreach { (($_.trim() -replace "\s+",","))} | ConvertFrom-Csv) убрать.
Аватара пользователя
saykat85

Re: PowerShell - [решено] Просмотр активных сессий на RDP и сортировка вывода

Сообщение saykat85 »

Цитата saykat85:



и от чего все ломается если это foreach { (($_.trim() -replace "\s+",","))} | ConvertFrom-Csv) убрать.
PowerShell - [решено] Просмотр активных сессий на RDP и сортировка вывода




нда, запоздалый ответ но отвечу

foreach, здесь лишний,

командой qwinsta /server, можно обработать только один узел, а не массив



логичнее использовать

(query session /server:$ServerName).trim() -replace "\s+","," | ConvertFrom-Csv



trim() - отбрасывает пустые символы в начале строки и в конце

"\s+","," - замена TAB на ,
Аватара пользователя
YuS_2

Re: PowerShell - [решено] Просмотр активных сессий на RDP и сортировка вывода

Сообщение YuS_2 »

Цитата Ageron:



"\s+","," - замена TAB на ,
PowerShell - [решено] Просмотр активных сессий на RDP и сортировка вывода




если уж описывать код, то надо бы уточнять полностью: не только TAB, а и любой пробельный символ, один или более...



Код:

Код: Выделить всё

\s == [ \f\n\r\t\v]
Ответить

Вернуться в «Скриптовые языки администрирования Windows»