我可以使用此脚本以自己的帐户阅读电子邮件。效果很好。 但是,如果我指定一个管理员帐户来读取另一个邮箱中的电子邮件,则会在代码的最后一行失败,并显示“自动发现阻止了可能不安全的重定向...”
这是我的代码:
$Userid="a4327"
$pass_secure = Get-Content "e:\hilario\cred_a910327.txt" | ConvertTo-SecureString
$credential = new-object -typename System.Management.Automation.PSCredential -argumentlist $Userid, $pass_secure
$password = $credential.GetNetworkCredential().password
$dllpath = "C:\Program Files\Microsoft\Exchange\Web Services\2.2\Microsoft.Exchange.WebServices.dll"
[void][Reflection.Assembly]::LoadFile($dllpath)
$service = new-object Microsoft.Exchange.WebServices.Data.ExchangeService
$Service.Credentials = New-Object Microsoft.Exchange.WebServices.Data.WebCredentials($Userid,$password)
$Sharedmail = "MessagingReports"
$service.AutodiscoverUrl($Sharedmail,$TestUrlCallback)
答案 0 :(得分:0)
感谢@ MathiasR.Jessen。 添加$ TestUrlCallback可以解决此问题。
$Userid="a4327"
$Sharedmail = "MessagingReports"
$pass_secure = Get-Content "e:\hilario\cred_a910327.txt" | ConvertTo-SecureString
$credential = new-object -typename System.Management.Automation.PSCredential -argumentlist $Userid, $pass_secure
$password = $credential.GetNetworkCredential().password
$dllpath = "C:\Program Files\Microsoft\Exchange\Web Services\2.2\Microsoft.Exchange.WebServices.dll"
[void][Reflection.Assembly]::LoadFile($dllpath)
$service = new-object Microsoft.Exchange.WebServices.Data.ExchangeService
$Service.Credentials = New-Object Microsoft.Exchange.WebServices.Data.WebCredentials($Userid,$password)
$TestUrlCallback = {
param ([string] $url)
if ($url -eq "https://autodiscover-s.outlook.com/autodiscover/autodiscover.xml") {$true} else {$false}
}
$service.AutodiscoverUrl($Sharedmail,$TestUrlCallback)