如何修复PowerShell中搜索数组内ADGroups的代码语法问题?
修复Active Directory组搜索的PowerShell过滤器语法错误
问题出在第13行的-In过滤器语法上:直接将数组$ADGroups嵌入字符串时,PowerShell会把数组转换成空格分隔的字符串(比如'Remote Desktop Users M365 Migration'),这完全不符合Active Directory过滤器的语法要求——-In运算符需要的是括号包裹、逗号分隔的单引号字符串列表。
修复方案
有两种简洁的解决方式:
方式1:使用脚本块过滤器(推荐)
AD模块支持直接传入脚本块作为-Filter参数,PowerShell会自动将其转换为符合要求的LDAP过滤器,无需手动拼接字符串:
If(Get-ADGroup -Filter { Name -in $ADGroups }) { Write-Host 'ADGroups found:' Get-ADGroup -Filter { Name -in $ADGroups } | ForEach-Object { Write-Host $_.Name -ForegroundColor Green } }
注:这里把直接输出对象的逻辑改成了循环输出组名,避免显示杂乱的对象属性信息。
方式2:手动拼接正确的过滤器字符串
如果偏好字符串格式的过滤器,可以手动构造符合AD要求的-In列表:
# 将数组元素转换为单引号包裹的字符串,再用逗号连接 $formattedGroups = $ADGroups | ForEach-Object { "'$_'" } -join ',' $adFilter = "Name -In ($formattedGroups)" If(Get-ADGroup -Filter $adFilter) { Write-Host 'ADGroups found:' Get-ADGroup -Filter $adFilter | ForEach-Object { Write-Host $_.Name -ForegroundColor Green } }
为什么之前的-Like尝试无效
-Like运算符不支持直接匹配数组,且同样存在数组被转换为空格分隔字符串的问题,导致过滤器语法完全不符合要求,自然无法生效。
修改后的完整代码
Clear-Host Import-Module ActiveDirectory $ErrorView = 'CategoryView' Write-Host 'Searching for ADGroups...' $ADGroups = @('Remote Desktop Users', 'M365 Migration') # 使用脚本块过滤器修复第13行的问题 If(Get-ADGroup -Filter { Name -in $ADGroups }) { Write-Host 'ADGroups found:' Get-ADGroup -Filter { Name -in $ADGroups } | ForEach-Object { Write-Host $_.Name -ForegroundColor Green } } Else { Write-Host 'No ADGroups found' -ForegroundColor Red } If(Get-ADGroup -Filter "Name -Eq 'Remote Desktop Users'") { Write-Host 'Searching for RDLicenseConfiguration...' Write-Host (Get-RDLicenseConfiguration -ErrorAction Continue) -ForegroundColor Green Write-Host 'Searching for RDDeploymentGatewayConfiguration...' Write-Host (Get-RDDeploymentGatewayConfiguration -ErrorAction Continue) -ForegroundColor Green } If(Get-ADGroup -Filter "Name -Eq 'Remote Desktop Users'") { #M365 Migration Write-Host 'Searching for applocker policy...' Write-Host (Get-AppLockerPolicy -Local -ErrorAction Continue) -ForegroundColor Green }
内容的提问来源于stack exchange,提问作者Will Leece
相关产品推荐
相关产品推荐

