मैं इस स्क्रिप्ट का उपयोग अपने खाते में ईमेल पढ़ने के लिए कर सकता हूं। यह बहुत अच्छा काम करता है। लेकिन अगर मैं किसी अन्य मेलबॉक्स में ईमेल पढ़ने के लिए एक व्यवस्थापक खाता निर्दिष्ट करता हूं तो यह "स्वत: खोज ने एक संभावित असुरक्षित पुनर्निर्देशन को अवरुद्ध कर दिया है..." के साथ कोड की अंतिम पंक्ति पर विफल हो जाता है।

यहाँ मेरा कोड है:

$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)

यहाँ त्रुटि के साथ चल रहे कोड का स्क्रीनशॉट है। यहां छवि विवरण दर्ज करें

1
hdsouza 27 मार्च 2020, 20:55
1
त्रुटि का शायद यह अर्थ है कि कोई उपयुक्त यूआरएल नहीं खोजा जा सका क्योंकि आपके $TestUrlCallback विधेय ने उन सभी को खारिज कर दिया था। क्या आप $TestUrlCallback भी पोस्ट कर सकते हैं?
 – 
Mathias R. Jessen
27 मार्च 2020, 21:56
1
धन्यवाद माथियास। वह यह था। मैं $TestUrlCallback भूल गया था। जब इसे जोड़ा गया, तो इसने ऑटोडिस्कवर लाइन को पार कर लिया। मुझे जोड़ना था: $TestUrlCallback = { param ([string] $url) if ($url -eq "autodiscover-s.outlook.com/autodiscover/autodiscover.xml") {$true} और {$false} }
 – 
hdsouza
27 मार्च 2020, 22:28
@MathiasR.Jessen आप इसे एक उत्तर के रूप में बना सकते हैं (और इसका श्रेय प्राप्त करें)
 – 
hdsouza
31 मार्च 2020, 19:07
1
मैंने नहीं किया, क्योंकि मैं आपके अपने प्रश्न का उत्तर के लिए आपका इंतजार कर रहा था :)
 – 
Mathias R. Jessen
31 मार्च 2020, 19:14

1 उत्तर

सबसे बढ़िया उत्तर

@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)
0
hdsouza 1 अप्रैल 2020, 21:12