0

我正在创建一个关于如何列出所有运行了 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"}

这是工作。

在这里需要一些帮助。谢谢。

4

1 回答 1

1

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

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 小时的会话(我无权访问这些 cmdlet,所以这是一个最好的猜测)

$lowerThreshold = [datetime]::Now.AddHours(-4)
$session = Get-XASession | Select ServerName, State, Accountname, Browsername | where {$_.State -eq "Disconnected" -and $_.LogOnTime -le $lowerThreshold}`
于 2018-09-18T07:33:55.810 回答