显示所有已禁用的ADUser及其ADGroup成员资格

时间:2016-09-19 13:29:03

标签: powershell csv foreach import

我正在尝试创建一个可以执行上述操作的脚本,

我做了类似的事情:

Search-ADAccount -AccountDisabled | Export-Csv -Path C:\csv\DisabledUsers.csv -NoTypeInformation
$csv = Import-Csv -Path c:\csv\DisabledUsers.csv
foreach ($SamAccountName in $csv)
{
    Get-ADPrincipalGroupMembership | format table | Export-Csv -Path C:\csv\DisabledUsersGroupM.csv -NoTypeInformation
}

foreach部分之前工作正常。似乎没有从CSV导入的值。

我明白了:

cmdlet Get-ADPrincipalGroupMembership at command pipeline position
Supply values for the following parameters:
(Type !? for Help.)
Identity:

我做错了什么?

1 个答案:

答案 0 :(得分:1)

您在没有必需参数(要获取其组成员资格的对象的身份)的情况下调用Get-ADPrincipalGroupMembership

更改

Get-ADPrincipalGroupMembership

Get-ADPrincipalGroupMembership $SamAccountName

此外,循环内的Export-Csv会在每次迭代时覆盖输出文件,因此您最终只会得到最后一个用户的组。添加参数-Append以避免这种情况。

话虽如此,一个更简单的方法可能就是这样的管道:

Search-ADAccount -AccountDisabled |
    Select-Object SamAccountName, @{n='Groups';e={(Get-ADPrincipalGroupMembership $_.SamAccountName | Select-Object -Expand Name) -join ';'}} |
    Export-Csv 'C:\csv\DisabledUsers.csv' -NoType