Powershell通过管道传递信息

时间:2016-05-19 13:39:44

标签: powershell

情况就是这样,审核员进入并要求为某些组中的所有用户提供报告,其中包含一些帐户信息以及他们所在的组。所以我所做的是将所有请求的组放在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合作很长时间,并且非常感谢你能给我的任何帮助。

1 个答案:

答案 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