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

Get-ADGroup使用变量替代字符串查询AD组无结果该如何解决

问题根因

你遇到的问题本质是ActiveDirectory模块的-Filter参数对脚本块格式的输入存在变量解析限制:脚本块内的$ADGroup不会按预期被替换为变量的实际值,相当于你在以变量字面量/空值查询,自然返回空结果。之前替换单引号没生效的原因是单引号包裹的内容不会触发PowerShell的变量展开机制,也无法把$ADGroup替换为实际值。
另外你当前代码同时定义了强制参数$ADGroup和后续的Read-Host赋值,后者会直接覆盖通过param传入的参数值,二者选其一使用即可,不要同时写。

正确实现方案

方案1:改用字符串格式的Filter(最常用,不易踩坑)

双引号包裹Filter字符串,触发变量自动展开:

param(
    [Parameter(Mandatory=$true)]
    [string]$ADGroup
)

# 若使用Read-Host取值就注释掉上面的param块,取消注释下面这行
# $ADGroup = Read-Host "Enter Group Name"

# 只需要Name属性无需加-Properties *,会大幅降低查询效率
Get-ADGroup -Filter "name -like '*$ADGroup*'" | Select-Object -Property Name

方案2:保留脚本块格式的Filter写法

先拼接带通配符的查询值,再传入脚本块:

$searchPattern = "*$ADGroup*"
Get-ADGroup -Filter {name -like $searchPattern} | Select-Object -Property Name

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 16:36:02