在脚本中使用Invoke-WmiMethod
遇到问题,该脚本在某些计算机上运行时会挂起。我想要做的是执行命令,如果它在一段确定的时间内没有返回(例如60到120秒),那么继续(将救助记录到文件中。)我目前唯一知道的方法尝试这样做是使用-AsJob
参数;但是,当我尝试这样做时,生成的作业会立即失败(即使对于Invoke-WmiMethod
语句没有添加-AsJob
参数的计算机也是如此。)其他与WMI相关的cmdlet可以对这些问题机器起作用,所以我认为这不是auth或DCOM问题。
无论如何,还有其他方法可以在脚本中设置一个我可以尝试的语句超时吗?
答案 0 :(得分:3)
嗯,不确定为什么Invoke-WmiMethod
会失败,但也许Invoke-Command
会起作用(值得我快速尝试),例如:
$job = Invoke-Command -cn $computers { Invoke-WmiMethod ... } -AsJob
Wait-Job $job -Timeout 60
这假设您已在所有远程计算机上启用了远程处理,并且它们正在运行PowerShell 2.0。如果在Vista / Windows 7上或在XP上作为管理员,请确保从提升的提示运行此命令。