1

我目前正在尝试查找使用模型“firstname@domain.com”与我们的新标准“FirstInitialLastName@domain.com”创建的所有 AD 用户。我正在使用 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 的辉煌世界,我的大脑只想把它排成一行。

4

2 回答 2

1
Get-QADUser -Enabled -Email * -SizeLimit 0 | 
Where-Object {$_.Email.Split('@')[0] -eq $_.FirstName }
于 2012-09-05T09:14:10.963 回答
0

试试这个:

Get-QADUser -enable -IncludedProperties PrimarySMTPAddress |
? { $_.PrimarySMTPAddress -match ("^"+[regex]::escape("$($_.firstname)")+"@domain.com") }
于 2012-09-05T08:20:15.767 回答