我正在尝试创建一个Power Shell脚本,该脚本会提示特定组织管理的特定AD组的输入,这些脚本实际上将过滤掉不再位于该组织中的用户,并且仅返回那些用户的“ samaccountname”和当前部门特定用户。我已经开始了,但似乎无法正确过滤。任何建议将不胜感激。
Add-Type -AssemblyName Microsoft.VisualBasic
$groupName = [Microsoft.VisualBasic.Interaction]::InputBox("Please enter AD group name to display users no longer in department:", "XYZ", "$env")
Get-ADGroupMember -Identity $groupName -Recursive | Get-ADUser -Properties Department -Filter {enabled -eq $true} | ? {$_.DistinguishedName -notlike "*,OU=XYZ,*"} | Select-Object SamAccountName,Department
答案 0 :(得分:0)
看来它不像Get-ADUser的-Filter,我认为(不是100%)是因为通过管道,它一次发送一个用户,所以没有。没什么要过滤的。
这就是我要做的/尝试的(也许是更好的方法,但是测试一下似乎可以到达想要去的地方):
$MatchedUsers=@{}
$GroupMembers=Get-ADGroupMember -Identity $groupName -Recursive | Get-ADUser -Properties Department
ForEach ($User in $GroupMembers) {
If (($User.Enabled -eq "True") -and ($User.DistinguishedName -notlike "*,OU=XYZ,*")) {
$MatchedUsers=@{
'SamAccountName'=$User.SamAccountName
'Department'=$User.Department
}
$obj=New-Object -TypeName PSObject -Property $MatchedUsers
Write-Output $obj
}
}