我有一個PowerShell腳本來禁用Office 365中的郵件轉發使用CSV文件。我想將所有錯誤都捕捉到外部的Txt文件中。 這是我的代碼:Powershell嘗試將寫入錯誤捕獲到外部txt文件
$Groups |
ForEach-Object {
$PrimarySmtpAddress = $_.PrimarySmtpAddress
try {
# disable Mail forwarding
Set-Mailbox -Identity $PrimarySmtpAddress -ForwardingSmtpAddress $Null
}
Catch {
$PrimarySmtpAddress | Out-File $logfile -Append
}
}
但它沒有發現錯誤。
是否有任何指令來捕獲外部文件的錯誤?
任何解決方案都會有所幫助。
'Write-Host'繞過管道。如果您必須使用'Out-Default',或者只是將字符串輸入到Out-File' cmdlet。如果'Set-Mailbox'沒有拋出錯誤,則需要更深入地調查另外一個問題。 –
「Try/Catch」塊僅在終止錯誤時起作用,因此如果該cmdlet拋出錯誤,但僅僅移動此錯誤將不起作用。您可能需要將'-ErrorAction Stop'添加到您的'Set-Mailbox' cmdlet。另外,正如Jeff Zeitlin所說,'Write-Host' cmdlet並沒有把事情弄糟。在你的'Catch'塊添加一個新行,將信息輸出到你的文本文件中。 – TheMadTechnician
我已經刪除了寫主機,仍然無法正常工作 – ysfibm