2016-06-07 3 views
0

Ich versuche PowerShell zu verwenden, um freigegebene Postfächer zu durchlaufen und Benutzer mit bestimmten Zugriffsrechten zu erhalten. Ich bin in der Lage, dies zu tun, jedoch ist das Problem, wenn ein Postfach mehrere Benutzer mit Zugriffsrechten hat.Mehrere Ergebnisse derselben Variablen in einer Zeile zurückgeben

Ich werde Code für nur ein Postfach anstelle von jedem einzelnen dafür verwenden. Der Code, den ich verwende, ist wie folgt:

Get-MailboxPermission -Identity [email protected] | select Identity, User | 
    where user -like '*@*' 

ich dies als Ergebnis:

Output

Aber ich mag so etwas bekommen:

Desired_Output

Gibt es eine Möglichkeit, Benutzer mit derselben Identität auf dieselbe Zeile zu setzen?

Antwort

0

Sie könnten Group-Object gruppieren Benutzer von Postfach verwenden, dann die Gruppen mit calculated properties erweitern:

... | Group-Object Identity | 
    Select-Object @{n='Identity';e={$_.Name}}, 
        @{n='User';e={$_.Group.User -join ', '}} 

Group-Object Gruppen Ihr Ergebnis Objekte durch ihre Identity Eigenschaft, dh alle Objekte mit der gleichen Identitätswert in einer gesammelt GroupInfo Objekt (in seiner Group Eigenschaft, um genau zu sein). Die Select-Object-Anweisung mit den berechneten Eigenschaften erstellt dann ein neues benutzerdefiniertes Objekt für jede Gruppe. Die User berechnete Eigenschaft erweitert die User-Eigenschaft der gruppierten Objekte und verknüpft die Namen mit einer durch Kommas getrennten Liste.

Beachten Sie, dass Sie PowerShell v3 oder neuer für $_.Group.User -join ', ' benötigen, um zu funktionieren. Bei früheren Versionen müssen Sie es durch etwas wie

($_.Group | Select-Object -Expand User) -join ', ' 
ersetzen
+0

Vielen Dank! Ich verstehe es nicht ganz, aber es funktioniert! –

+0

@LukeK Eine Erklärung hinzugefügt (bitte sehen Sie sich auch die Dokumentation an, auf die ich verwiesen habe). Bitte beachten Sie auch [Annahme der Antwort] (http://meta.stackoverflow.com/a/5235), wenn Sie feststellen, dass Ihr Problem dadurch gelöst wurde. –

+0

Wird tun. Auch eine andere Frage. Ich möchte, dass das Feld leer ist, wenn das Postfach keine Benutzer mit vollem Zugriff hat. Es druckt derzeit nichts und überspringt nur dieses Postfach. Gibt es eine Möglichkeit, die Identität in der Spalte Benutzer weiterhin mit nichts anzuzeigen? –

Verwandte Themen