如果 2 秒后没有结果,则转到下一个命令

Too*_*oon 3 powershell performance

我有大量的 PC 号码列表(大约 2000+-),我使用以下命令进行查询:

$Computers = get-content = "C:\Users\Public\Documents\CSV\tfiles\Computernames.txt"

foreach ($Computer in $Computers) {
    query user /server:$Computer
}
Run Code Online (Sandbox Code Playgroud)

我想知道如果 2 秒后没有 PC 名称结果,我是否可以通过跳过命令来加快此过程。

也欢迎其他更快的方法。

Mat*_*sen 5

您可以启动后台作业并仅等待 2 秒:

$Computers = Get-Content "C:\Users\Public\Documents\CSV\tfiles\Computernames.txt"

foreach ($Computer in $Computers) {
    Start-Job { query user /server:$using:Computer } |Wait-Job -Timeout 2 |Receive-Job
}
Run Code Online (Sandbox Code Playgroud)

如果作业在 2 秒内完成,Receive-Job将解压并输出查询结果。如果作业在超时内完成,则Receive-Job不会收到任何输入,循环将正常继续。

有关 PowerShell 作业的更多信息,请参阅about_Jobs帮助主题