Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   [решено] Просмотр активных сессий на RDP и сортировка вывода (http://forum.oszone.net/showthread.php?t=328632)

saykat85 26-07-2017 16:22 2754182

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

Iska 26-07-2017 16:35 2754187

Сценарий PowerShell script to Find RDP sessions on Servers

Kazun 26-07-2017 16:39 2754189

Код:

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 2754343

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

saykat85 27-07-2017 10:07 2754350

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

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

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

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

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

Ageron 10-06-2019 14:13 2875055

Цитата:

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

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

логичнее использовать
(query session /server:$ServerName).trim() -replace "\s+","," | ConvertFrom-Csv

trim() - отбрасывает пустые символы в начале строки и в конце
"\s+","," - замена TAB на ,

YuS_2 10-06-2019 16:16 2875078

Цитата:

Цитата Ageron
"\s+","," - замена TAB на , »

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

\s == [ \f\n\r\t\v]


Время: 16:07.

Время: 16:07.
© OSzone.net 2001-