以下脚本检查指定OU中的邮箱,以确定默认权限设置为“所有者”的用户。我已经尝试了所有内容添加列" Name"从变量$ Mailbox到Select-Object导致以下代码。结果将添加一个列标题,并将第一个结果名称作为标题。如果有多个结果,则找到的第一个名称将是列标题,其他列的列为空白。有没有办法添加"名称"从变量$ Mailbox到Select-Object结果的列?
$AllMailBox = Get-Mailbox -OrganizationalUnit "XXXXXXXXXX.com/DomainUsers/Users" -resultsize unlimited
ForEach ($MailBox in $AllMailbox) {Get-mailboxfolderpermission $Mailbox | Where-object {$_.User -match "Default" -AND $_.AccessRights -match "Owner"} | Select-Object Identity, AccessRights, $MailBox.Name}
答案 0 :(得分:9)
而不是
Select-Object Identity, AccessRights, $MailBox.Name}
添加此
Select-Object Identity, AccessRights, @{l="Name";e={$MailBox.Name}}}
您可以在此处阅读有关自定义表格的更多信息https://technet.microsoft.com/en-us/library/ee692794.aspx?f=255&MSPPError=-2147217396
答案 1 :(得分:1)
$MailBox.Name
生活在外部范围内。它不是Get-mailboxfolderpermission
返回的商品的有效属性。
您可以使用Select-Object
中的计算属性向结果中添加其他数据:
{Get-mailboxfolderpermission $Mailbox | Where-object {$_.User -match "Default" -AND $_.AccessRights -match "Owner"} | Select-Object Identity, AccessRights,@{Name="Name"; Expression={$MailBox.Name}}
计算属性由哈希表声明,键为:
Name
- 属性的名称Expression
- 返回值的脚本块参见"例4" here获取计算属性的另一个示例。