我似乎无法想到这一点来拯救我的生命。
我想抓住SAMAccountName
长度等于6的所有AD用户。
我希望有类似的东西
Get-ADuser -filter "samaccountname.length -eq 6" | out-file $outputFile -append
我正在编写一个大型脚本来首先转储所有AD用户,然后遍历每个转储用户并更新一些属性。这个脚本会经常运行,所以我想让它尽可能高效。我认为可以改进的一个领域是转储过程。
我们在AD中有大约15,000个用户,但我只对4千个用户感兴趣,特别是他们SamAccountName
为6个字符的用户。出于这个原因,我不想用我的ID输出文件填充大约11,000个不必要的ID。
我想尝试避免内联 - 如果可能的话。
非常感谢任何帮助。
答案 0 :(得分:2)
试试这个:
Get-ADuser - filter * | ? { $_.samaccountname.length -eq 6} | out-file -$outputfile -append
我通常使用Get-QADuser
(来自Quest模块),但我认为Get-ADUser
是相同的。
如果$ _。samaccountname不是字符串,则可能必须使用:
$_.samaccountname.tostring().length
编辑:
Get-ADUser -Filter * -Properties samaccountname | ? {$_.samaccountname.length -eq 6}
答案 1 :(得分:1)
Get-ADuser | where { $_.samaccountname.length -eq 6 } | out-file $outputFile -append