Jump to content
blue joker

Berechtigung zum Senden an ein Postfach

Empfohlene Beiträge

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

 

Diesen Beitrag teilen


Link zum Beitrag
Auf anderen Seiten teilen

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

Diesen Beitrag teilen


Link zum Beitrag
Auf anderen Seiten teilen

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

Diesen Beitrag teilen


Link zum Beitrag
Auf anderen Seiten teilen

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. :(

Diesen Beitrag teilen


Link zum Beitrag
Auf anderen Seiten teilen

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

Diesen Beitrag teilen


Link zum Beitrag
Auf anderen Seiten teilen

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:\>

Diesen Beitrag teilen


Link zum Beitrag
Auf anderen Seiten teilen

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

Diesen Beitrag teilen


Link zum Beitrag
Auf anderen Seiten teilen

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

×