我已经编写了一个脚本来从服务器列表中获取OSVersion。某些服务器不响应“ 1 < a && a < 5
”命令。
我想要出现此错误的所有主机名的列表。
这为我列出了出现此错误的前几台服务器。
当第一台服务器无错误响应时,脚本停止。
我希望脚本不执行任何操作,并在服务器未发送错误时继续执行。
有人知道如何解决这个问题。
谢谢。
我尝试设置“ -ErrorAction继续”,但是整个脚本没有运行。
Get-WmiObject
我希望从发送错误的所有服务器获取主机名列表:
Set-ExecutionPolicy -Scope CurrentUser -ExecutionPolicy Bypass -Force $arraylist_OSInfo = New-Object System.Collections.ArrayList $file=Get-Content -Path "C:\Temp\PS-Skripte\server2.txt" foreach ($Hostname in $file) { try { Get-WmiObject Win32_OperatingSystem -ComputerName $Hostname -ErrorAction Stop } catch [Exception] { if ($_.Exception.GetType().Name -eq "COMException") { echo "$Hostname - RPC Error" | Out-File -FilePath "C:\temp\PS-Skripte\RPCerror.log" -Append -encoding unicode } } }
作为cmdlet“ Get-WmiObject”的答案
答案 0 :(得分:0)
我已经稍微修改了您的代码
$hostnames = 'NoSuchmachine', 'DoesNotExist'
foreach ($hostname in $hostnames){
try {
Get-WmiObject -Class win32_operatingsystem -ComputerName $hostname -ErrorAction Stop
}
catch {
if ($_.Exception.GetType().Name -eq "COMException") {
out-file -FilePath c:\test\rpcError.txt -InputObject "$hostname - RPC Error" -Append -Encoding unicode
}
}
}
文件内容为
NoSuchmachine - RPC Error
DoesNotExist - RPC Error
我想你想要的是什么。