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

执行New-DlpComplianceRule时AdvancedRule参数类型转换失败求助

问题分析与解决建议

差异原因

  1. 返回值类型不匹配:Get-Content -ReadCount 0会将文件内容以**字符串数组([string[]])**的形式返回,而New-DlpComplianceRule的-AdvancedRule参数要求输入单个字符串([System.String])。
  2. 环境/模块版本差异:你与同事的PowerShell环境或Exchange PowerShell模块版本不同,导致参数绑定的隐式转换行为不一致——同事的环境支持自动将字符串数组拼接为单个字符串,而你的环境不支持该隐式转换,因此触发类型转换报错。

解决建议

  • 强制转换为单个字符串:在Get-Content后添加Out-String,确保输出为符合参数要求的单个字符串(保留原文件换行格式):
    $data = Get-Content -Path "C:\Data\Sensitive Type.txt" -ReadCount 0 | Out-String
    New-DLPComplianceRule -Name "Contoso Rule 1" -Policy "Contoso Policy 1" -AdvancedRule $data -NotifyUser
    
  • 使用更直观的文件读取方式:改用Get-Content -Raw参数直接读取整个文件为单个字符串,替代-ReadCount 0从根源避免数组类型问题:
    $data = Get-Content -Path "C:\Data\Sensitive Type.txt" -Raw
    New-DLPComplianceRule -Name "Contoso Rule 1" -Policy "Contoso Policy 1" -AdvancedRule $data -NotifyUser
    
  • 统一模块版本:检查并同步你与同事的Exchange PowerShell模块版本,消除参数绑定行为的环境差异。
  • 修正命令笔误:原命令中的-NotifyUer为拼写错误,正确参数应为-NotifyUser。

内容的提问来源于stack exchange,提问作者Y.T

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.15 19:47:38