获取所有具有数字SamAccountName的ADusers

问题描述 投票:-1回答:2

如何获得具有数字SamAccountName的所有ADuser。如果SamAccountName包含字母,那么我不需要它。

$num = Get-AdUser -Filter "SamAccountName  -like [integer]"  -Properties postalCode, postOfficeBox, SamAccountName, Enabled
powershell filter
2个回答
1
投票

使用-Filter,您无法测试SamAccountName是否仅由数字组成,并且您必须通过正则表达式Where-Object运算符使用-math子句。

$users = Get-AdUser -Filter * -Properties PostalCode, POBox, SamAccountName, Enabled | 
         Where-Object { $_.SamAccountName -match '^\d+$' }

0
投票

即使无法使用-Filter简洁地完成查询,也可以使用-Filter加快查询时间,然后再传递到Where-Object

$Params = @{ Properties = 'postalCode','postOfficeBox','SamAccountName','Enabled'
         Filter = "samaccountname -like '" + (1,2,3,4,5,6,7,8,9,0 -join "*' -or samaccountname -like '") + "'"
          }

Get-AdUser @Params | Where SamAccountName -match '^\d+$'

想法是,在发送到samaccountname之前,仅查找以数字开头的Where-Object对象,该对象将仅显示具有属性值的所有数字的帐户。如果您只有一小部分以数字开头的帐户,这将大大缩短查询时间。

© www.soinside.com 2019 - 2024. All rights reserved.