我试图获得(一行)答案以获取用户列表(基于get-aduser的过滤器),然后使用该列表对其名称的扩展版本进行搜索匹配 - 例如我有:
并希望找到(当用户A被禁用时)UserAAdmin。这看起来很简单,但无论我怎么做,我似乎无法使用SAMACCOUNTNAME使用like或equals语句,即
Get-ADUser -Filter {Enabled -eq $false} -Properties sAMAccountName |
ForEach {Get-AdUser -Filter {samaccountname -like ($_.samaccountname + "Admin")}}
(至于原因,因为与我合作的客户有一个结构,所有他们的用户帐户都将ADMIN添加到他们的管理帐户的末尾,我们希望找到任何已禁用的USER帐户和找到(然后禁用)关联的管理员帐户。)
由于
答案 0 :(得分:1)
如果我理解你的话,你可以尝试一下......
$DisabledUsers = Get-ADUser -Filter {Enabled -eq $false}
Foreach ($User in $DisabledUsers)
{
$Match = $User.SamAccountName + '*'
$MatchedUsers = Get-AdUser -Filter {samaccountname -like $match}
foreach ($MatchUser in $MatchedUsers)
{
"You Can do here what you want"
}
}
答案 1 :(得分:1)
Avshalom的答案是正确的,但是对你的AD两次查询是没有效率和无用的...... 获得所有已禁用的用户后,您只需过滤
即可 $Users = Get-ADUser -Filter {Enabled -eq $false}
Foreach ($User in $Users)
{
$Match = "ADM-"+$User.SamAccountName
$Users|?{$_.samaccountname -like $match}
}