Перечислите все отключенные сеансы, которые выполняются в течение 4 часов, и выйдите из них. - PullRequest
0 голосов
/ 18 сентября 2018

Я создаю скрипт для отображения списка всех отключенных сеансов, которые выполняются в течение 4 часов, но код не работает.

Get-XASession | Select ServerName, State, Accountname, Browsername | where {$_.State -eq "Disconnected", $_.Duration -eq "4 hr"}

Сообщение об ошибке не отображается, а также не дает результатов.

Но когда я бегу:

Get-XASession | Select ServerName, State, Accountname, Browsername | where {$_.State -eq "Disconnected"}

Работает.

Нужна помощь здесь. Спасибо.

1 Ответ

0 голосов
/ 18 сентября 2018

Вы не указываете оператор между двумя вашими условиями, вместо этого у вас есть запятая. Измените свой код на это:

Get-XASession | Select ServerName, State, Accountname, Browsername | where {$_.State -eq "Disconnected" -and $_.Duration -eq "4 hr"}

Вы можете увидеть это в игре с этим кодом:

1..10 | Where-Object {$_ -eq 2, $_ -eq 3}

против

1..10 | Where-Object {$_ -eq 2 -or $_ -eq 3}

Я ответил на ваш вопрос прямо выше. Вот кое-что, что вы, возможно, захотите попробовать, однако, должно (надеюсь) вернуть все сеансы старше 4 часов (у меня нет доступа к этим командлетам, так что это лучшее предположение)

$lowerThreshold = [datetime]::Now.AddHours(-4)
$session = Get-XASession | Select ServerName, State, Accountname, Browsername | where {$_.State -eq "Disconnected" -and $_.LogOnTime -le $lowerThreshold}`
...