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

如何在WMI查询中正确转义组名里的单引号?

解决WMI查询中组名含单引号的转义问题

我使用以下WMI查询:

SELECT PartComponent FROM Win32_GroupUser WHERE GroupComponent = "Win32_Group.Domain='DOMAIN_NAME',Name='Opérateurs d'assistance de contrôle d'accès'"

组名里的单引号破坏了查询语法,触发错误:

System.Management.ManagementException: Invalid query

我试过以下方法,但均无效:

  • 用''转义组名中的单引号
  • 用\'转义组名中的单引号
  • 用\\'转义组名中的单引号
  • 用[']转义组名中的单引号
  • 互换所有常规双引号和单引号

当前使用.NET的System.Management.ManagementObjectSearcher,也可通过PowerShell测试:

Get-WmiObject -Query "SELECT PartComponent FROM Win32_GroupUser WHERE GroupComponent = ""Win32_Group.Domain='DOMAIN_NAME',Name='Opérateurs d'assistance de contrôle d'accès'"""

正确转义方案

WQL(WMI查询语言)中,嵌入在单引号字符串内的单引号,必须用两个连续单引号('')转义。之前无效是因为没理清宿主语言(.NET/PowerShell)的字符串嵌套规则和WQL自身转义的区别,以下是两种环境的正确写法:

.NET环境示例(C#)

先将组名中的单引号替换为两个单引号,再处理字符串的双引号转义:

string query = @"SELECT PartComponent FROM Win32_GroupUser WHERE GroupComponent = ""Win32_Group.Domain='DOMAIN_NAME',Name='Opérateurs d''assistance de contrôle d''accès'""";
ManagementObjectSearcher searcher = new ManagementObjectSearcher(query);

也可以不用@符号,用\"转义双引号:

string query = "SELECT PartComponent FROM Win32_GroupUser WHERE GroupComponent = \"Win32_Group.Domain='DOMAIN_NAME',Name='Opérateurs d''assistance de contrôle d''accès'\"";

PowerShell环境示例

可以用单引号包裹整个查询,内部的单引号用''转义:

Get-WmiObject -Query 'SELECT PartComponent FROM Win32_GroupUser WHERE GroupComponent = "Win32_Group.Domain=''DOMAIN_NAME'',Name=''Opérateurs d''assistance de contrôle d''accès''"'

或者用Here-String简化嵌套引号处理:

$query = @"
SELECT PartComponent FROM Win32_GroupUser WHERE GroupComponent = "Win32_Group.Domain='DOMAIN_NAME',Name='Opérateurs d''assistance de contrôle d''accès'"
"@
Get-WmiObject -Query $query

核心逻辑

WQL语法规定:用单引号包裹的字符串字面量,内部单引号必须用''转义。之前的尝试失败,大多是因为混淆了宿主语言的字符串转义和WQL自身的转义规则——要确保最终传递给WMI服务的查询语句里,组名中的单引号已经被正确替换为'',同时外层字符串的嵌套引号处理不破坏WQL结构。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.13 04:38:10