尝试使用powershell从多个工作站导入和导出AD组

5sxhfpxr  于 2023-01-09  发布在  Shell
关注(0)|答案(1)|浏览(128)

尝试从多个工作站导入和导出AD组。我有一个脚本可以工作,并希望从每个工作站导入和导出包含所有AD组的csv文件。
获取ADComputer w 61707285-属性 *| 选择成员-展开属性成员

ha5z0ras

ha5z0ras1#

如果您的输入CSV文件如下所示:

"WorkStation","Location","OtherInfo"
"w61707285","upstairs","blah"
"w12345678","downstairs","blahbla"

然后导入该文件,并从保存计算机名的列(在本演示中,该列称为WorkStation)中获取一个数组,循环遍历该计算机名数组,并为每个计算机名获取其属性MemberOf

  • 如果只需要几个(在本例中只有一个)额外属性,请不要使用-Properties *,因为请求所有属性会耗费时间和内存 *

接下来,让循环发出对象并将结果捕获到变量中。
要获取组Name,而不是从MemberOf属性获取的DistinguishedName,还需要Get-ADGroup
最后,将此结果导出到新的CSV文件
大概是这样的

$computers = (Import-Csv -Path 'X:\Somewhere\ASComputers.csv').WorkStation
$result = foreach ($computer in $computers) {
    Get-ADComputer -Identity $computer -Properties MemberOf | ForEach-Object {
        [PsCustomObject]@{
            ComputerName = $computer.Name
            Group        = (Get-ADGroup -Identity $_).Name
        }
    }
}

$result | Export-Csv -Path $output -NoTypeInformation

相关问题