列出所有运行4小时的断开连接的会话并注销

时间:2018-09-18 07:21:50

标签: powershell citrix xenapp

我正在创建一个脚本,说明如何列出所有已运行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 :(得分:0)

您不是在两个条件之间指定运算符,而是使用逗号。 将您的代码更改为此:

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

您可以在此代码中看到它:

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

vs

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

我已经在上面直接回答了您的问题。这是您可能要尝试的方法,它应该(希望)返回所有早于4小时的会话(我无法访问这些cmdlet,所以是最好的猜测)

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