我似乎无法弄清楚这能挽救我的生命。
我想捕获其SAMAccountName
长度等于6的所有AD用户。
我希望有这样的东西
Get-ADuser -filter "samaccountname.length -eq 6" | out-file $outputFile -append
我正在编写一个大型脚本,首先转储所有AD用户,然后遍历每个转储的用户并更新一些属性。该脚本将经常运行,因此我想使其尽可能高效。我认为可以改进的一个方面是转储过程。
我们在AD中大约有1.5万个用户,但我只对4000个感兴趣,特别是
SamAccountName
为6个字符的用户。因此,我不想在ID输出文件中填充大约11000个不必要的ID。我想尝试并尽可能避免内联for-each。
任何帮助将不胜感激。
最佳答案
试试这个:
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}