2
我对PowerShell的自学经验有限,所以这可能是一些基本的问题,但我似乎无法做到。Powershell:针对属性过滤属性
我在Active Directory中,我需要提取电子邮件地址不以SamAccountName开头的用户列表。 (所以如果你的登录是jdoe,但你的电子邮件是[email protected],那么你的个人资料将被退回)
我已经得到了我所需要的大部分...但我无法弄清楚如何比较这两个属性反对海誓山盟。
现在我已经
Get-ADUser -Filter 'enabled -eq $true' -Properties *|
Where {$_.PasswordNeverExpires -eq $false} |
Select Name, SamAccountName, EmailAddress, PasswordNeverExpires
我已经尝试了一些不同的东西来过滤我需要什么,下面的命令显示了我想要的东西(当然这句法不工作)
Get-ADUser -Filter 'enabled -eq $true' -Properties *|
Where {$_.PasswordNeverExpires -eq $false} |
Where-Object EmailAddress -Contains SamAccountName |
Select Name, SamAccountName, EmailAddress, PasswordNeverExpires
谢谢!
Where-Object { $_.EmailAddress -notlike "$($_.SamAccountName)*" }
你甚至可以与第一过滤器结合起来,使用-and
操作:
您只需指定不属于默认属性集的属性。由于默认情况下它拉取'Name'和'samAccountName',所以只需指定'EmailAddress'和'PasswordNeverExpires'。除了缺省值之外,它会将这些属性粘贴到检索到的东西列表中。 – TheMadTechnician
@TheMadTechnician正确,但我很懒,并且通过将它们包含在'$ Properties'列表中,我可以通过'Select-Object'重用该变量;-) –
哦,是的--Properties *只是一个神器在我完成它并进行更改之前,我会进行调整。谢谢! :) – Steve