我有一个脚本来列出远程机器上的权限。try{} 完美运行,没有错误,这很好。但是 catch{} 没有。脚本块如下:
Try{
$group = get-wmiobject win32_group -ComputerName $CompName -Filter "LocalAccount=True AND SID='S-1-5-32-544'"
$query = "GroupComponent = `"Win32_Group.Domain='$($group.domain)'`,Name='$($group.name)'`""
$list = Get-WmiObject win32_groupuser -ComputerName $CompName -Filter $query
$list | %{$_.PartComponent} | % {$_.substring($_.lastindexof("Domain=") + 7).replace("`",Name=`"","\")}-ErrorAction Stop| Out-File C:\AdminList\$CompName\AdminListResults\$CompName.txt
Write-Host "Sequence Completed. Logs have been exported to $CompName folder." -ForegroundColor Cyan
}
catch{
$Error[0]| Out-File C:\AdminList\$CompName\ErrorLogs\$CompName.txt
Write-Host "Errors Found. See ErrorLogs for details" -ForegroundColor Yellow
}
我希望它做的是,如果 try{} 失败,它会捕获显示的错误,将其从控制台隐藏并将其导出到指定的位置,但这是无法正常工作的部分。当前发生的是 try{} 运行,错误显示在控制台中,并且出现了 try{} 的写入主机,而不是 catch{} 写入主机。
任何建议都会很棒。我浏览了 Stack 以寻找答案,但找不到任何答案。我的最后一个问题已关闭,因为它太宽泛了,所以我希望这有更多细节以便更好地理解。
谢谢你!