リモート マシンのアクセス許可を一覧表示するスクリプトがあります。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 を参照して回答を探しましたが、何も見つかりませんでした。私の最後の質問は範囲が広すぎるため閉じられたので、理解を深めるためにこれがより詳細であることを願っています。
ありがとう!