【问题标题】:Powershell escaping single quotesPowershell转义单引号
【发布时间】:2023-04-02 11:47:01
【问题描述】:

如何在下面的 Powershell 命令中转义单引号?

Get-Recipient -Filter "Members -eq 'CN=Jane D'Amico (Contoso),OU=fourthcoffee.onmicrosoft.com,OU=Microsoft Exchange Hosted Organizations,DC=NAMPR1AA001,DC=PROD,DC=OUTLOOK,DC=COM'"

我怀疑这是由于D'Amico 而失败的。不是 powershell 的人,所以请对我放轻松。

无法将参数“过滤器”绑定到目标。异常设置“过滤器”:“无效 过滤语法。

【问题讨论】:

  • 我会尝试 D`'Amico 或交换外部 " 和内部 '

标签: powershell exchange-server


【解决方案1】:

只要你只是传递一个字符串(你是),你就可以再次使用双引号,并像这样转义它:

Get-Recipient -Filter "Members -eq `"CN=Jane D'Amico (Contoso),OU=fourthcoffee.onmicrosoft.com,OU=Microsoft Exchange Hosted Organizations,DC=NAMPR1AA001,DC=PROD,DC=OUTLOOK,DC=COM`""

【讨论】:

    【解决方案2】:

    要转义引号,您需要将它们加倍,因此 D'Amico 需要成为 D'Amico。

    处理这个问题的一个好方法是首先将你的用户字符串分配给一个变量

    $user = "CN=Jane D'Amico (Contoso),OU=fourthcoffee.onmicrosoft.com,OU=Microsoft Exchange Hosted Organizations,DC=NAMPR1AA001,DC=PROD,DC=OUTLOOK,DC=COM"
    

    然后在使用前替换里面的任何单引号

    $user = $user -replace "'", "''"    
    Get-Recipient -Filter "Members -eq '$user'"
    

    【讨论】:

      猜你喜欢
      • 2015-07-16
      • 2014-01-24
      • 2020-07-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-01-08
      相关资源
      最近更新 更多