我正在创建一个脚本,说明如何列出所有已运行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"}
正在工作。
这里需要一些帮助。谢谢。
答案 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}`