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

如何在PowerShell的Get-ADComputer -Filter中使用变量?

解决PowerShell Get-ADComputer过滤器变量不生效的问题

你的问题出在双引号嵌套导致变量未被解析:原代码中内层双引号会被视为字符串的一部分,PowerShell不会识别$EOLOS为变量。以下是几种可行的修改方案:

方案1:单引号包裹过滤器+直接引用变量(推荐)

用单引号定义过滤器字符串,PowerShell会自动解析其中的变量,避免引号混乱:

$ServerOS = "Windows server 2022"
# 精确匹配
Get-ADComputer -Filter 'operatingsystem -like $ServerOS'

# 模糊匹配(带通配符)
$ServerOS = "*Windows server 2022*"
Get-ADComputer -Filter 'operatingsystem -like $ServerOS'

方案2:转义双引号

用反引号`转义内层双引号,让PowerShell正确识别变量:

$ServerOS = "Windows server 2022"
Get-ADComputer -Filter "operatingsystem -like `"$ServerOS`""

方案3:使用脚本块过滤器(PowerShell 3.0+)

直接用脚本块形式编写过滤器,语法更直观,无需处理引号:

$ServerOS = "Windows server 2022"
Get-ADComputer -Filter { operatingsystem -like $ServerOS }

注意:如果需要模糊匹配操作系统名称,记得给变量添加通配符*,否则只会匹配完全一致的字符串。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.07 10:57:06