blue joker 1 Geschrieben 28. September 2017 Melden Teilen Geschrieben 28. September 2017 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 Zitieren Link zu diesem Kommentar
NilsK 2.940 Geschrieben 28. September 2017 Melden Teilen Geschrieben 28. September 2017 Moin, enthält $MailExportUser denn überhaupt die Daten, die du brauchst? Gruß, Nils Zitieren Link zu diesem Kommentar
blue joker 1 Geschrieben 28. September 2017 Autor Melden Teilen Geschrieben 28. September 2017 (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 28. September 2017 von blue joker Zitieren Link zu diesem Kommentar
NilsK 2.940 Geschrieben 28. September 2017 Melden Teilen Geschrieben 28. September 2017 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 Zitieren Link zu diesem Kommentar
blue joker 1 Geschrieben 28. September 2017 Autor Melden Teilen Geschrieben 28. September 2017 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. :( Zitieren Link zu diesem Kommentar
NilsK 2.940 Geschrieben 28. September 2017 Melden Teilen Geschrieben 28. September 2017 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 Zitieren Link zu diesem Kommentar
blue joker 1 Geschrieben 28. September 2017 Autor Melden Teilen Geschrieben 28. September 2017 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:\> Zitieren Link zu diesem Kommentar
Dukel 454 Geschrieben 28. September 2017 Melden Teilen Geschrieben 28. September 2017 Durch das "| SELECT". Nimm mal: $MailExportUser = (Get-Mailbox -Identity "Export").AcceptMessagesOnlyFrom Zitieren Link zu diesem Kommentar
Beste Lösung NilsK 2.940 Geschrieben 28. September 2017 Beste Lösung Melden Teilen Geschrieben 28. September 2017 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 Zitieren Link zu diesem Kommentar
blue joker 1 Geschrieben 29. September 2017 Autor Melden Teilen Geschrieben 29. September 2017 @Nils, danke, so hat es funktioniert! :jau: Zitieren Link zu diesem Kommentar
Empfohlene Beiträge
Schreibe einen Kommentar
Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.