2017-04-04 61 views
0

我使用PowerShell脚本在安装环境检查AD用户的列表已经由客户正确添加和设置列表中无效,用户。获取-ADUser便有从列表

我拿到剧本的工作,它输出什么,我需要为那些在AD从user.txt文件中存在帐户。我还需要它列出显示为无效/未创建的帐户,但无法弄清楚。有什么建议么?

$Users = gc "C:\scripts\Users.txt" 
Get-ADUser -Filter '*' -Properties DisplayName,SamAccountName,Enabled,MemberOf,PasswordNeverExpires,LockedOut | 
? { $Users -contains $_.SamAccountName } | 
select DisplayName, SamAccountName, Enabled, MemberOf, PasswordNeverExpires, LockedOut | 
Out-File c:\scripts\results\UserResults.txt 
+0

如果“任何建议”你的意思是“能有人重写这个给我,所以它按我期望的方式工作“,然后否。如果你真的想要一个建议,那么你可以使用'Get-ADUse'的'-LDAPFilter'参数和一个过滤器,比如'(sAMAccountName =​​)'来检查用户是否存在。如果这个命令的输出是'$ null',那么用户不存在。 –

+0

代码中的任何错误?什么不行? –

回答

0

既然你已经拉着-Filter *每一个用户,你可以使用Compare-Object来再看看这在文本文件中的项目都没有SamAccountNames

$Users = gc "C:\scripts\Users.txt" 
$ADusers = Get-ADUser -Filter '*' -Properties DisplayName,SamAccountName,Enabled,MemberOf,PasswordNeverExpires,LockedOut | 
    select DisplayName, SamAccountName, Enabled, MemberOf, PasswordNeverExpires, LockedOut 

$ADusers | 
    ? { $Users -contains $_.SamAccountName } | 
    Out-File c:\scripts\results\UserResults.txt 

Compare-Object $ADusers.SamAccountName $users | 
    ? {$_.SideIndicator -eq =>} | 
    Select-Object -ExpandProperty InputObject | 
    Out-File c:\scripts\results\Failures.txt