情况就是这样,审核员进入并要求为某些组中的所有用户提供报告,其中包含一些帐户信息以及他们所在的组。所以我所做的是将所有请求的组放在txt文件中并使用Get-Content并将其传递给ForEach以执行Get-ADGropuMember以查找所有用户,然后获取Get-ADUser以获取他们要求的所有属性。我遇到的问题是,当我进入管道时,我不再有原始组触发了为什么选择了用户帐户。基本上我到目前为止提出的脚本:
Get-Content '.\Scripts - Input\ADGroupIn.Accounts.txt' | ForEach-Object {
Get-ADGroupMember $_ -Recursive -Server Accounts |
Get-ADUser -Properties SAMAccountName, Enabled, Name, Description, LastLogonDate, whenCreated |
Select-Object SAMAccountName, Enabled, Name, Description, LastLogonDate, whenCreated |
sort-object SAMAccountName} |
Export-csv ".\Scripts - Output\SelectedGroups_Accounts.csv" -NoTypeInformation
“Domain Admins”是一个读入Get-Content的组名。 Get-ADGroupMember引入UserA,UserB和UserC。然后,Get-ADuser获取每个用户的所有属性,但此时我希望能够将“Domain Admins”附加到每个用户的信息中。如果我使用MemberOf属性,我将获得用户所属的所有组,当我需要显示它是“Domain Admins”时将它们放在列表中。
我没有和Powershell合作很长时间,并且非常感谢你能给我的任何帮助。
答案 0 :(得分:0)
试试这个
Get-Content '.\Scripts - Input\ADGroupIn.Accounts.txt' | ForEach-Object {
$group = $_
Get-ADGroupMember $group -Recursive -Server Accounts |
Get-ADUser -Properties SAMAccountName, Enabled, Name, Description, LastLogonDate, whenCreated |
Select-Object SAMAccountName, Enabled, Name, Description, LastLogonDate, whenCreated, @{n='Group';e={$group}} |
sort-object SAMAccountName
} | Export-csv ".\Scripts - Output\SelectedGroups_Accounts.csv" -NoTypeInformation