我目前正在编写一个脚本,以从整个域中的特定用户帐户识别断开连接的会话 X 天。
我们有一个工具可以在所有选定的机器上运行此脚本,因此选择目标没有问题,因为在这种情况下本地主机就足够了。
但是,由于我是 Powershell 新手,所以我在处理脚本的一些元素时遇到了困难。
$userName = 'USERNAMEHERE'
$State = 'Disc'
$sessionId = ((quser /server:localhost | Where-Object { $_ -match $userName }{ $_ -match $State }{[datetime]$_."Idle Time" -le (Get-Date).AddDays(-1)})-split ' +')[3]
$sessionId
logoff $sessionId /server:localhost
我正在努力解决的问题是:
- 找不到接受参数“$_ -match $State”的位置参数 - 这是我试图在此行中为会话 ID 塞进太多内容的结果吗?或者那个 State 不是一个有效的参数?还是我缺少的另一个问题?据我所知,由于状态不是关键,所以这是我遇到麻烦的地方,但我不知道如何解决它。
如果我已经离开并需要相应地调整,我也将很感激被告知这一点。
谢谢安迪