You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在PSCustomObject中拆分FullAccess字段的CONTOSO\域前缀

移除Exchange共享邮箱权限报表FullAccess字段中的域前缀

针对你遇到的SecurityPrincipalIdParameter类型导致Split报错、空值调用出错的问题,可以通过以下方法解决:

核心处理逻辑

  1. 类型转换:先将User属性转为字符串,再进行拆分操作,避免类型不兼容报错
  2. 空值判断:先检查权限集合是否为空,为空时直接返回空字符串,防止空值调用错误
  3. 域前缀剥离:用反斜杠\拆分字符串,取拆分后的最后一段(即纯用户名)

完整脚本示例

# 枚举所有共享邮箱
$sharedMailboxes = Get-Mailbox -RecipientTypeDetails SharedMailbox

# 生成权限报表
$permissionReport = foreach ($mailbox in $sharedMailboxes) {
    # 获取非继承的FullAccess权限,排除系统内置账户
    $fullAccessList = Get-MailboxPermission -Identity $mailbox.Identity | 
        Where-Object { 
            $_.AccessRights -contains "FullAccess" -and 
            !$_.IsInherited -and 
            $_.User -notmatch "^NT AUTHORITY\\|^S-1-5-" 
        }

    # 处理FullAccess字段,移除域前缀
    $cleanFullAccess = if ($fullAccessList) {
        $fullAccessList | ForEach-Object {
            # 转字符串后拆分,取反斜杠后的用户名部分
            ($_.User.ToString() -split '\\')[-1]
        } -join ','
    } else {
        ""
    }

    # 处理SendAs权限(保留原有逻辑)
    $sendAsList = Get-RecipientPermission -Identity $mailbox.Identity | 
        Where-Object { $_.AccessRights -contains "SendAs" -and !$_.IsInherited }
    $cleanSendAs = if ($sendAsList) {
        $sendAsList.User -join ','
    } else {
        ""
    }

    # 输出自定义报表对象
    [PSCustomObject]@{
        Name      = $mailbox.Name
        FullAccess = $cleanFullAccess
        SendAs    = $cleanSendAs
    }
}

# 导出为CSV文件
$permissionReport | Export-Csv -Path "SharedMailboxPermissions_Report.csv" -NoTypeInformation -Encoding UTF8

关键细节说明

  • $_.User.ToString():强制将SecurityPrincipalIdParameter类型转为字符串,解决无法直接调用Split的问题
  • (-split '\\')[-1]:反斜杠需要转义,拆分后取数组最后一个元素,兼容CONTOSO\usr11或contoso.local\usr11这类不同格式的域前缀
  • if ($fullAccessList):先判断权限集合是否存在,为空时返回空字符串,避免空值调用ForEach-Object报错

运行脚本后,生成的CSV中FullAccess字段将只保留纯用户名,符合你的期望输出要求。

内容的提问来源于stack exchange,提问作者Arbelac

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.19 22:42:57