我正在尝试创建一个可以执行上述操作的脚本,
我做了类似的事情:
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:
我做错了什么?
答案 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