我有一个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