我目前正在尝试查找使用“firstname@domain.com”模型创建的所有AD用户,而不是新标准“FirstInitialLastName@domain.com”。我正在使用Quest ActiveRoles模块,特别是Get-QADUser
来提取我的用户详细信息:
Get-QADUser -enabled -IncludedProperties PrimarySMTPAddress | ?{$_.Type -match "User"} | Select-Object FirstName,PrimarySMTPAddress ...
它为我提供了用户名和他们的SMTP地址列表。我难倒的地方是如何比较结果。
我认为规范化值(将“@ domain.com”添加到第一个名称字符串或从SMTP字符串中删除“@ domain.com”)然后执行-ieq测试将是最好的方法。我发现我可以做第一个:
%{ $address=$($_.FirstName + "@domain.com";) }
但我无法弄清楚如何针对PrimarySMTPAddress字符串测试$ address。我可以用:
创建第二个变量%{ $smtp=$($_.PrimarySMTPAddress); }
并得到结果:
[PS] C:\>$addy -ieq $smtp
True
我只是不清楚如何在流中完成所有操作,以便我可以立即处理我的树。如果这是一个更适合脚本而不是单行的东西,那也没关系。来自BASH辉煌的世界,我的大脑只想把它排成一行。
答案 0 :(得分:1)
Get-QADUser -Enabled -Email * -SizeLimit 0 |
Where-Object {$_.Email.Split('@')[0] -eq $_.FirstName }
答案 1 :(得分:0)
试试这个:
Get-QADUser -enable -IncludedProperties PrimarySMTPAddress |
? { $_.PrimarySMTPAddress -match ("^"+[regex]::escape("$($_.firstname)")+"@domain.com") }