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

如何用PowerShell处理字符串以匹配保留合规策略ID?

处理PowerShell字符串匹配保留策略ID

要将mbx74542cbb45d544c2bf269ae87a978be8:2这类格式的字符串转换为标准GUID格式,以便关联Get-Mailbox -InPlaceHolds和Get-RetentionCompliancePolicy的结果,可以按以下步骤操作:

单个字符串转换

先看核心的字符串处理逻辑,针对单个目标字符串:

$inputStr = "mbx74542cbb45d544c2bf269ae87a978be8:2"
# 提取32位GUID原始字符:移除前缀mbx和后缀:数字
$rawGuid = $inputStr -replace '^mbx|:\d+$', ''
# 格式化为标准GUID
$standardGuid = "{0}-{1}-{2}-{3}-{4}" -f $rawGuid.Substring(0,8), $rawGuid.Substring(8,4), $rawGuid.Substring(12,4), $rawGuid.Substring(16,4), $rawGuid.Substring(20)

执行后$standardGuid的值就是74542cbb-45d5-44c2-bf26-9ae87a978be8,完全匹配Get-RetentionCompliancePolicy返回的Id字段格式。

批量关联邮箱与保留策略

结合实际场景,批量处理所有邮箱的InPlaceHolds,并关联对应的保留策略:

# 获取所有邮箱及其转换后的保留策略ID
$mailboxHoldData = Get-Mailbox | Select-Object Name, @{
    Name = "RetentionPolicyIds"
    Expression = {
        # 遍历每个InPlaceHold条目并转换格式
        $_.InPlaceHolds | ForEach-Object {
            $raw = $_ -replace '^mbx|:\d+$', ''
            # 仅处理长度为32的有效GUID字符
            if ($raw.Length -eq 32) {
                "{0}-{1}-{2}-{3}-{4}" -f $raw.Substring(0,8), $raw.Substring(8,4), $raw.Substring(12,4), $raw.Substring(16,4), $raw.Substring(20)
            }
        }
    }
}

# 获取所有保留合规策略的ID和名称映射
$policyMap = Get-RetentionCompliancePolicy | Select-Object Id, Name

# 生成邮箱与保留策略的关联表
$mailboxPolicyMatches = $mailboxHoldData | ForEach-Object {
    $mailbox = $_
    $mailbox.RetentionPolicyIds | ForEach-Object {
        $matchedPolicy = $policyMap | Where-Object { $_.Id -eq $_ }
        [PSCustomObject]@{
            MailboxName = $mailbox.Name
            RetentionPolicyId = $_
            RetentionPolicyName = $matchedPolicy.Name
        }
    }
}

# 输出结果
$mailboxPolicyMatches

关键逻辑说明

  • 正则替换^mbx|:\d+$:精准匹配并移除开头的固定前缀mbx和结尾的:数字后缀,确保提取到纯32位GUID字符。
  • 字符串分段格式化:通过Substring按GUID的标准分段规则(8-4-4-4-12)拆分字符,再用-f格式化符插入分隔符-。
  • 批量处理时加入长度校验:避免因异常格式的InPlaceHolds条目导致报错,仅处理有效GUID字符。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 06:20:46