我正在尝试使用PowerShell浏览共享邮箱并获取具有特定访问权限的用户。我能够这样做,但问题是当邮箱有多个具有访问权限的用户时。
我将只为一个邮箱而不是每一个邮箱使用代码。我正在使用的代码如下:
Get-MailboxPermission -Identity example@domain.com | select Identity, User |
where user -like '*@*'
我得到了这个结果:
但我想得到这样的东西:
有没有办法让具有相同身份的用户在同一条线上?
答案 0 :(得分:0)
您可以使用Group-Object
按邮箱分组用户,然后使用calculated properties展开群组:
... | Group-Object Identity |
Select-Object @{n='Identity';e={$_.Name}},
@{n='User';e={$_.Group.User -join ', '}}
Group-Object
按照Identity
属性对结果对象进行分组,即具有相同标识值的所有对象都收集在一个GroupInfo
对象中(在其Group
属性中)精确)。然后,带有计算属性的Select-Object
语句会为每个组创建一个新的自定义对象。 User
计算属性会扩展分组对象的User
属性,并将名称连接到以逗号分隔的列表。
请注意,$_.Group.User -join ', '
需要PowerShell v3或更高版本才能运行。在早期版本中,您需要将其替换为类似
($_.Group | Select-Object -Expand User) -join ', '