gpt4 book ai didi

powershell - PowerShell-捕获错误未导出到文件外

转载 作者:行者123 更新时间:2023-12-03 08:53:00 24 4
gpt4 key购买 nike

我有一个脚本来列出远程计算机上的权限。 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以获取答案,但找不到任何答案。我的最后一个问题已经结束,因为它太广泛了,所以我希望这个问题有更多细节,以便更好地理解。

谢谢!

最佳答案

您可能会遇到非终止错误。这些类型的错误不会引发异常,但是您可以手动执行。要进行验证,请将-ErrorAction静默继续添加到两个Get-WmiObject调用中。如果没有错误,就是这种情况。为了捕获那些静止图像,可以使用-ErrorVariable参数,然后将其放入文件中。

try
{
Get-WmiObject -Class whatever -ErrorVariable err -ErrorAction SilentlyContinue
if ($err)
{
throw $err
}
}
catch
{
## whatever you want to do here
}

关于powershell - PowerShell-捕获错误未导出到文件外,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35897025/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com