Добрый день, форумчане. Есть необходимость получить красивый список активных сессий 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 - [решено] Просмотр активных сессий на RDP и сортировка вывода
-
Kazun
Re: PowerShell - [решено] Просмотр активных сессий на RDP и сортировка вывода
Код:
Или можно установить модуль PSTerminalServices -
Код:
Код: Выделить всё
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 и сортировка вывода
Iska, Kazun, Вам спасибо. На основании предложенных скриптов собрал то, что нужно.
-
saykat85
Re: PowerShell - [решено] Просмотр активных сессий на RDP и сортировка вывода
Хотелось бы понять что происходит с данными вот тут
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)
вот в это строчке,
$queryResults = (qwinsta /server:$ServerName | foreach { (($_.trim() -replace "\s+",","))} | ConvertFrom-Csv)
и от чего все ломается если это foreach { (($_.trim() -replace "\s+",","))} | ConvertFrom-Csv) убрать.
-
saykat85
Re: PowerShell - [решено] Просмотр активных сессий на RDP и сортировка вывода
Цитата saykat85:
и от чего все ломается если это foreach { (($_.trim() -replace "\s+",","))} | ConvertFrom-Csv) убрать.
нда, запоздалый ответ но отвечу
foreach, здесь лишний,
командой qwinsta /server, можно обработать только один узел, а не массив
логичнее использовать
(query session /server:$ServerName).trim() -replace "\s+","," | ConvertFrom-Csv
trim() - отбрасывает пустые символы в начале строки и в конце
"\s+","," - замена TAB на ,
и от чего все ломается если это 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 и сортировка вывода
Цитата Ageron:
"\s+","," - замена TAB на ,
если уж описывать код, то надо бы уточнять полностью: не только TAB, а и любой пробельный символ, один или более...
Код:
"\s+","," - замена TAB на ,
PowerShell - [решено] Просмотр активных сессий на RDP и сортировка вывода
если уж описывать код, то надо бы уточнять полностью: не только TAB, а и любой пробельный символ, один или более...
Код:
Код: Выделить всё
\s == [ \f\n\r\t\v]