我正在尝试从bitlocker活动目录对象中提取一些属性,我可以使用PowerShell并输入所有信息来完成。例如
Get-ADObject -filter 'CN -like "*A3F850A4*"' `
-Properties CanonicalName,msFVE-RecoveryPassword
工作得很好拉动属性,但我无法弄清楚如何在-filter参数中使用变量并让它返回任何信息,这是我尝试过的代码。
[string]$passwordId = Read-Host `
"What is the first 8 charcters of the recovery password id?"
Get-ADObject -filter {CN -like $passwordId} `
-Properties CanonicalName,msFVE-RecoveryPassword
非常感谢任何帮助,特别是有关在脚本中使用变量的任何信息。感谢。
答案 0 :(得分:2)
AD cmdlet过滤器实际上并不像通常的PowerShell语法那样。
我建议使用-LdapFilter
代替它(它对其他工具更具可移植性,并且通常与PowerShell-ish过滤器没有太大区别):
Get-ADObject -LdapFilter "(cn=*$passwordId*)"
如果您坚持使用-Filter:只需确保您首先获得正确的字符串:
$likePattern = "*$passwordId*"
Get-ADObject -Filter {cn -like $likePattern}
或者使用字符串表示法(带一些额外的引号)代替:
Get-ADObject -Filter "cn -like '*$passwordId*'"
但是再次说明:这些过滤器在MS AD模块之外不起作用,LDAP过滤器可用于我见过的用于搜索AD的每个工具(包括用于AD的ADSISearcher和Quest cmdlet)。
答案 1 :(得分:0)
是的,但是对于“ -LDAPFilter'(anr = variable)':
$user = Read-Host -Prompt "What user or email?
Get-ADUser -LdapFilter '(anr=$user)' -Properties * |Select SamAccountName, Mail, CanonicalName