Je suis nouveau avec PowerShell et travaille actuellement sur un script pour vérifier si une boîte aux lettres partagée contient du courrier non lu. J'essaie actuellement de récupérer mes mails avec la méthode FindItems()
. Voici mon code:Vérification du nombre de mails d'échange non lus avec EWS
[int]$nb_unread = 0
[string]$email = "[email protected]"
[string]$Msg = ""
[int]$Code = 0
[string]$err = ""
Try
{
Add-Type -Path "C:\Program Files\Microsoft\Exchange\Web Services\2.2\Microsoft.Exchange.WebServices.dll"
$ews = New-Object Microsoft.Exchange.WebServices.Data.ExchangeService([Microsoft.Exchange.WebServices.Data.ExchangeVersion]::Exchange2013)
$ews.Credentials = New-Object Net.NetworkCredential('user', 'password')
$ews.AutodiscoverUrl($email, {$true})
$inbox = [Microsoft.Exchange.WebServices.Data.Folder]::Bind($ews,[Microsoft.Exchange.WebServices.Data.WellKnownFolderName]::Inbox)
$view = new-object Microsoft.Exchange.WebServices.Data.ItemView(10)
$mailItems = $inbox.FindItems($view)
$mails | ForEach {$_.Load()}
foreach($mail in $mails)
{
if($mail.isread -eq $false)
{
nb_unread += 1
}
}
if (nb_unread -eq 0)
{
$Msg = "OK;No unread mail."
}
else
{
$Msg = ("NOOK;Unread mails : " -f $nb_unread)
}
}
Catch
{
$Code = 2
$Msg = ("CRITICAL: erreur(s) d'execution du script : {0}" -f $err)
}
J'ai eu cette erreur lorsque mes scripts exécutent la ligne '$ MailItems = $ inbox.FindItems ($ view).
Exception lors de l'appel de «FindItems» avec «1» argument(s): «The request failed. Le serveur distant a retourné une
erreur: (501) Non implémenté.»
Au caractère Ligne:16 : 5
+ $mailItems = $inbox.FindItems($view)
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : NotSpecified: (:) [], MethodInvocationException
+ FullyQualifiedErrorId : ServiceRequestException
traduction
Exception when calling "FindItems" with "1" argument (s): "The request failed. The remote server returned an error: (501) Not implemented.
At Line:16 Char:5
+ $ mailItems = $inbox.FindItems ($ view)
+ ~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo: NotSpecified: (:) [], MethodInvocationException
+ FullyQualifiedErrorId: ServiceRequestException
Et votre problème est quoi exactement? Comment ce code ne fonctionne-t-il pas? Vous avez un énorme bloc try et aucun bloc catch qui devrait déclencher une erreur de syntaxe. Le code est-il en train d'errer silencieusement à partir d'une capture vide? – Matt
Eh bien, mon script se bloque quand il exécute le FindItem. Mon message est mis à jour avec l'erreur. – Aurelien