Jump to content

Berechtigung zum Senden an ein Postfach


Direkt zur Lösung Gelöst von NilsK,
Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Empfohlene Beiträge

Geschrieben

Hallo,

 

ich bin auf der Suche meines Denkfehlers.

 

Mit dem folgenden Code möchte ich überprüfen, ob ein User berechtigt ist, an ein bestimmtes Postfach ("Export") ein Mail zu senden.

Hiezu lese ich die Eigenschaft "AcceptMessagesOnlyFrom" des Postfaches aus und speichere sie in einer Variable ($MailExportUser). Danach überprüfe ich mit der If-Anweisung, ob sich die Kennung in der Liste befindet.

$Kennung = "abcde" #SamAccountName eines Users
$MailExportUser = Get-Mailbox -Identity "Export" | Select-Object AcceptMessagesOnlyFrom

If ($MailExportUser -contains $Kennung -eq $true) 
    { "Ja"  }
Else
    { "Nein"  }

Das Problem dabei ist, dass ich immer nur "Ja" zurückbekomme! Und ich verstehe nicht warum?!? :confused:

Lg, Joker

 

Geschrieben (bearbeitet)

Bei $MailExportUser bekomme ich zurück:

 

 

Was mir dabei gerade auffällt ist, dass hier nicht der SamAccountName sondern der CanonicalName angeführt ist!

PS C:> $MailExportUser

AcceptMessagesOnlyFrom
----------------------
{firma.de/Einkauf/Mustermann Max, firma.de/Einkauf/Musterfrau Mathilde, firma.de/Lager/Doe Jo...}
bearbeitet von blue joker
Geschrieben

Moin,

 

wenn du wie hier ein Array zurückbekommst, dann würde ich es mir einfach machen und mit einer ForEach-Schleife prüfen, ob mein gesuchtes Objekt darin vorkommt. Da kannst du mit Stolperstellen wie Datenformaten usw. leichter umgehen.

 

Gruß, Nils

Geschrieben

Wenn es nur ein Array wäre, denn ...

PS C:\> $MailExportUser -is [system.array]
False

... da kommt ein False retour! :cry:

 

 

Siehe auch:

PS C:\> $MailExportUser.GetType()

IsPublic IsSerial Name                                     BaseType                                                                                                                     
-------- -------- ----                                     --------                                                                                                                     
True     False    PSCustomObject                           System.Object  

Das schaut nicht nach einem Array aus. :(

Geschrieben

Moin,

 

versuch doch mal bitte, $MailExportUser mit einer ForEach-Schleife zu durchlaufen. Ich gehe davon aus, dass das funktioniert. Deine vorherige Ausgabe deutet darauf hin, dass du eine Sammlung von Objekten zurückbekommst, auch wenn PowerShell die formal nicht als Array deklariert.

 

Mangels Umgebung kann ich das nicht testen.

 

Gruß, Nils

Geschrieben

Leider funktioniert die Schleife nicht!

PS C:\> 
foreach ($ExportUser in $MailExportUser)
    {
       $ExportUser 
    }

AcceptMessagesOnlyFrom                                                                                                                                                                  
----------------------                                                                                                                                                                  
{firma.de/Einkauf/Mustermann Max, firma.de/Einkauf/Musterfrau Mathilde, firma.de/Lager/Doe Jo...

Wenn ich das richtig verstanden habe, sollte $MailExportUser[0] mir den ersten Eintrag liefern, doch ich bekomme das hier zurück:

PS C:\> $MailExportUser[0]

AcceptMessagesOnlyFrom

----------------------
                                 
{firma.de/Einkauf/Mustermann Max, firma.de/Einkauf/Musterfrau Mathilde, firma.de/Lager/Doe Jo...

Der zweite Eintrag ist dann schon leer:

PS C:\> $MailExportUser[1]

PS C:\>
  • Beste Lösung
Geschrieben

Moin,

 

versuch mal:

foreach ($ExportUser in $MailExportUser.AcceptMessagesOnlyFrom)

Du hast es ja mit einer Eigenschaft des ursprünglichen Objektes zu tun, die ihrerseits Objekte enthält.

 

Gruß, Nils

Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Erstelle ein Benutzerkonto oder melde dich an, um zu kommentieren

Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können

Benutzerkonto erstellen

Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!

Neues Benutzerkonto erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde dich hier an.

Jetzt anmelden
×
×
  • Neu erstellen...