需要帮助来创建/纠正用于终止帐户的Powershell脚本

时间:2019-10-08 16:16:08

标签: powershell

我正在尝试完成Powershell脚本以自动终止帐户。我想先捕获一些用户信息并将其写入csv,然后再禁用该帐户并删除所有组。我可以轻松地在各个部分中运行脚本,但是当我创建循环时,它仅对我的文本文件中的一个帐户有效。我不熟悉使用对象,但被告知我应该学习和利用它们。

我已经尝试运行代码而没有获得期望的结果。下面的代码仅包含捕获部分,因为我需要弄清楚如何也包括其余部分。

$user_name = Get-Content -Path 'C:\Users\username\Documents\AD Test Files\*.txt'
foreach ($user in $user_name){
    $users = Get-ADUser $user -Properties samaccountname,givenname,surname
    $groups = Get-ADPrincipalGroupMembership $users | Select -Expand Name
    $data = [PSCustomObject]@{
        samaccountname = $users.samaccountname;
        givenname = $users.givenname;
        surname = $users.surname;
        memberOf = ($groups | Out-String).Trim()
    }
}
$data | Export-Csv C:\Users\username\Desktop\Term.csv -Delimiter "," -NoTypeInformation -Encoding UTF8

2 个答案:

答案 0 :(得分:0)

现在,您在循环的每个迭代中都覆盖$data,这可以解释为什么它只输出一个帐户。相反,您可以将其制成数组并在每次迭代中添加到数组中(请注意循环中的+=

...
$data = @()
foreach ($user in $user_name){
    ...
    $data += [PSCustomObject]@{
        ...
    }
}
$data | Export-Csv ...

答案 1 :(得分:0)

如果您要从foreach中获取数据,这是一个非常简单的解决方案。

$all = foreach{}
$all | Export-Csv C:\Users\username\Desktop\Term.csv -Delimiter "," -NoTypeInformation -Encoding UTF8