butunin@vk |
25-01-2016 10:30 2598813 |
не работает фильтр в qwinsta
не могу понять в чем дело. не срабатывает select-object
Код:
PS C:\Users\b> qwinsta /server:isonoe
СЕАНС ПОЛЬЗОВАТЕЛЬ ID СТАТУС ТИП УСТР-ВО
services 0 Диск
console 1 Подключено
rdp-tcp#4 lisv 4 Активно
rdp-tcp#7 prana 5 Активно
rdp-tcp#6 nev 6 Активно
rdp-tcp#9 smtv 7 Активно
rdp-tcp#13 vaiasv 8 Активно
rdp-tcp#11 burka 9 Активно
rdp-tcp#14 efrata 10 Активно
rdp-tcp#15 shoaev 12 Активно
rdp-tcp#20 Miamn 13 Активно
rdp-tcp#23 arhiev 14 Активно
rdp-tcp#24 movaa 15 Активно
rdp-tcp#25 polana 16 Активно
rdp-tcp#26 stanv 17 Активно
rdp-tcp#27 laev 20 Активно
rdp-tcp#37 suvai 21 Активно
31c5ce94259d4... 65536 Прием
rdp-tcp 65537 Прием
Выполняю селект
Код:
PS C:\Users\buu> qwinsta /server:isonoe | Select-Object СЕАНС,ПОЛЬЗОВАТЕЛЬ,ID
СЕАНС ПОЛЬЗОВАТЕЛЬ ID
----- ------------ --
|
Код:
qwinsta /server:isonoe | foreach {$_.trim() -replace "\s+",","} | ConvertFrom-Csv | Select-Object СЕАНС,ПОЛЬЗОВАТЕЛЬ,ID
|
butunin@vk |
25-01-2016 10:41 2598821 |
Цитата:
Цитата Kazun
qwinsta /server:isonoe | foreach {$_.trim() -replace "\s+",","} | ConvertFrom-Csv | Select-Object СЕАНС,ПОЛЬЗОВАТЕЛЬ,ID »
|
Спасибо! Можете объяснить почему не сработал в 3 словах ?
|
butunin@vk |
25-01-2016 11:30 2598854 |
Цитата:
Цитата Kazun
Это текст, а не объект. »
|
Ага это понятно ... написал процедуру
Код:
function Get-TSSessions
{
param (
$ComputerName = $com3
)
qwinsta.exe /server:$ComputerName |
ForEach-Object {
$_.Trim() -replace "\s+", ","
} |
ConvertFrom-Csv
}
Ps Не удается выполнить команду из-за следующей ошибки: Не удается найти указанный файл.
не может найти фаил qwinsta.exe задал явные параметры start-process -filepath c:\windows\system32\qwinsta.exe такая же ошибка ...
|
qwinsta - из x86 процесса должна запускаться по пути: C:\Windows\sysnative\qwinsta.exe
|
butunin@vk |
25-01-2016 12:03 2598872 |
Цитата:
Цитата Kazun
qwinsta - из x86 процесса должна запускаться по пути: C:\Windows\sysnative\qwinsta.exe »
|
Kazun, помогите еще раз с gred не пойму в чем проблема , в логике не вижу проблемы.
Код:
function Get-TSSessions
{
param (
$ComputerName = "locahost"
)
Start-Process -FilePath "C:\Windows\sysnative\qwinsta.exe" /server:$ComputerName |
ForEach-Object {
$_.Trim() -replace "\s+", ","
} |
ConvertFrom-Csv | Select-Object СЕАНС, ПОЛЬЗОВАТЕЛЬ, ID
}
function get-prod2
{
$array3 = New-Object System.Collections.ArrayList
$Script:UseFilter = $false
$Script:Getp = @(Get-TSSessions -ComputerName Erinome)
if ($filter)
{
$Script:fu = @($Getp | Where { $_.ПОЛЬЗОВАТЕЛЬ -match $filter })
$array3.AddRange($fu)
$Script:UseFilter = $true
}
else
{
$array3.AddRange($Getp)
}
$datagrid3.DataSource = $array3
$updated = Get-Date
$com = "5"
$statusBar2.text = "Последние обновление было {0} следующий через {1} минут" -f $updated, $com
}
Не отдает в Gred
Пишу в Powershell Studio Sapien
|
Start-Process -FilePath "C:\Windows\sysnative\qwinsta.exe" /server:$ComputerName заменить на :
Код:
& "C:\Windows\sysnative\qwinsta.exe" /server:$ComputerName
|
butunin@vk |
25-01-2016 13:06 2598889 |
Цитата:
Цитата Kazun
Start-Process -FilePath "C:\Windows\sysnative\qwinsta.exe" /server:$ComputerName заменить на : »
|
о гуд! Спасибо, ну и побочный вопрос , могу ли как то я добавить столбец свой?
например:
Код:
PS C:\Users\buu> qwinsta /server:isonoe | foreach {$_.trim() -replace "\s+",","} | ConvertFrom-Csv | Select-Objec
t ПОЛЬЗОВАТЕЛЬ,ID
ПОЛЬЗОВАТЕЛЬ ID
------------ --
0 Диск
1 Подключено
lisinaov 4
prokhorovana 5
negadovpv 6
smv 7
vasyaninasv 8
bunka 9
efr 10
sheaei 11
belousovaev 12
И сюда добавить новый столбец (которого нет qwinsta) это имя сервера которое берется из /server:isonoe , то есть формально нам надо чтобы получилось следующие.
Код:
PS C:\Users\buu> qwinsta /server:isonoe | foreach {$_.trim() -replace "\s+",","} | ConvertFrom-Csv | Select-Objec
t ПОЛЬЗОВАТЕЛЬ,ID
ПОЛЬЗОВАТЕЛЬ ID server
------------ -- --
0 Диск isonoe
1 Подключено isonoe
lisinaov 4 isonoe
prokhorovana 5 isonoe
negadovpv 6 isonoe
smv 7 isonoe
vasyaninasv 8 isonoe
bunka 9 isonoe
efr 10 isonoe
sheaei 11 isonoe
belousovaev 12 isonoe
|
Код:
Select-Object ПОЛЬЗОВАТЕЛЬ,ID,@{n="Server";e={$Server}}
|
butunin@vk |
25-01-2016 13:18 2598900 |
Цитата:
Цитата Kazun
Select-Object ПОЛЬЗОВАТЕЛЬ,ID,@{n="Server";e={$Server}} »
|
Так тут вроде все понятно, значение не отдает ...
Код:
PS C:\Users\bu> qwinsta /Server:isonoe | foreach {$_.trim() -replace "\s+",","} | ConvertFrom-Csv | Select-Objec
t ПОЛЬЗОВАТЕЛЬ,ID,@{n="Server";e={$Server}}
ПОЛЬЗОВАТЕЛЬ ID Server
------------ -- ------
0 Диск
1 Подключено
lisi 4
provana 5
ne 6
sm 7
vasasv 8
|
$Server - определить переменную в коде.
|
butunin@vk |
25-01-2016 13:20 2598902 |
Цитата:
Цитата Kazun
$Server - определить переменную в коде. »
|
Ага, тут я уже понял... а он не может ее брать с имени сервера из qwinsta /Server: isonoe
|
Сделать глобальную перменную $Server и везде ее подставлять.
qwinsta /Server:$Server
|
butunin@vk |
25-01-2016 14:04 2598920 |
Цитата:
Цитата Kazun
Сделать глобальную перменную $Server и везде ее подставлять. »
|
эххх жалко фокус не удался ... я вообщем хотел в datagrid запихнуть массив с возможностью фильтрации и каких либо столбцам действий по нажатию. В datagrid вы помогли мне засунуть данные НО фильтрация корректно не работает.
Может у вас есть какие-то наработки или идеи как оптимизировать или возможно я что-то делаю не верно.
Суть следующая. Есть ферма серверов на которые подключаются пользователи, я хотел собрать все подключение в один массив и подключаться в shadow сессии либо отключаться их через формку datagrid
через qwinsta я получаю ID логин и сервер который вы помогли мне запихнуть в массив, но вот фильтрация тут не работает , и понятно КАК МНЕ КАЖЕТСЯ почему. Возможно ли это реализовать через БД? То есть создать BD куда запихивать данные которые отдает qwinsta и через PS уже вытаскивать их?
Код:
function get-prod2
{
$statusBar2.Text = "Getting data..."
$array3 = New-Object System.Collections.ArrayList
$Script:UseFilter = $false
$Script:Getp = @($g1)
if ($filter)
{
$Script:fu = @($Getp | Where { $_.ID -match $filter })
$array3.AddRange($fu)
$Script:UseFilter = $true
}
else
{
$array3.AddRange($Getp)
}
$datagrid3.DataSource = $array3
$updated = Get-Date
$com = "5"
$statusBar2.text = "Последние обновление было {0} следующий через {1} минут" -f $updated, $com
}
$RichTextbox1.Add_TextChanged({
Get-Prod2 $RichTextbox1.Text
})
|
Код:
function get-prod2($filter=$null)
|
Время: 12:46.
© OSzone.net 2001-