確実に例外を生成するコードがあります。これは予想されることなので、実際の問題を探すために $error 変数をダンプするときに、スクリプトの最後に表示されないようにします。
ステップ 1 は、この例外を見つけて処理することですよね? そこまでたどり着けない。これが私が持っているものです:
Function Add-PowerShellSnapIn($SnapInName){
Try{
if ((Get-PSSnapin -Name $SnapInName) -eq $null){
Write-Warning "SnapIn Is Not Already Loaded"
}
}Catch [System.Exception]{
Write-Warning "Error Caught"
}
}
Add-PowerShellSnapIn -SnapInName "Microsoft.Exchange.Management.PowerShell.Admin"
このコードを実行すると例外が表示されますが、Catch ブロックが例外をキャッチしたことを示す小さな「書き込み警告」テスト メッセージは表示されません。ここで何かが欠けているに違いありません。ここに私が見る例外があります:
Get-PSSnapin : パターン 'Microsoft.Exchange.Management.PowerShell.Admin' に一致する Windows PowerShell スナップインが見つかりませんでした。パターンを確認してから、コマンドを再試行してください。C:\users\myuser\Desktop\Test.ps1:4 char:20 + if ((Get-PSSnapin <<<< -Name $SnapInName) -eq $null){ + CategoryInfo : InvalidArgument: (Microsoft.Excha. ..owerShell.Admin:String) [Get-PSSnapin]、PSArgumentException + FullyQualifiedErrorId : NoPSSnapInsFound、Microsoft.PowerShell.Commands.GetPSSnapinCommand
編集:時間を割いて私を助けてくれた人に感謝します!