PowerShell问题

PowerShell问题,powershell,powershell-2.0,powershell-3.0,powershell-remoting,Powershell,Powershell 2.0,Powershell 3.0,Powershell Remoting,显示所需结果后,上述命令不会返回提示 这只发生在远程计算机的情况下。如果我使用“localhost”,它就可以正常工作。我想您遇到的是,Select对象可以在PSv3中本地终止管道,但它不能远程终止管道。因此,您将继续获得结果,直到完成为止。由于您的条件意味着您将过滤掉除一个结果之外的所有结果,因此它似乎是挂起的 尝试删除Select对象(可能还有Where对象)以查看正常运行所需的时间。您还应该在远程调用本身中执行更多过滤,而不是在接收数据后进行过滤 get-eventlog -LogName

显示所需结果后,上述命令不会返回提示


这只发生在远程计算机的情况下。如果我使用“localhost”,它就可以正常工作。

我想您遇到的是,Select对象可以在PSv3中本地终止管道,但它不能远程终止管道。因此,您将继续获得结果,直到完成为止。由于您的条件意味着您将过滤掉除一个结果之外的所有结果,因此它似乎是挂起的

尝试删除Select对象(可能还有Where对象)以查看正常运行所需的时间。您还应该在远程调用本身中执行更多过滤,而不是在接收数据后进行过滤

get-eventlog -LogName system -ComputerName servername | where {$_.source -eq "user32"} | select -first 1 | Format-List

在这里工作也很好。顺便说一句,您可以将source指定为获取事件日志的参数,例如
-source User32
。我正在powershell 2.0上执行此操作。这可能是原因吗?事实上它起作用了。需要一些时间,但返回提示。谢谢
Get-EventLog -LogName system -Source "user32" | select -first 1 | Format-List