尝试从多个工作站导入和导出AD组。我有一个脚本可以工作,并希望从每个工作站导入和导出包含所有AD组的csv文件。获取ADComputer w 61707285-属性 *| 选择成员-展开属性成员
ha5z0ras1#
如果您的输入CSV文件如下所示:
"WorkStation","Location","OtherInfo" "w61707285","upstairs","blah" "w12345678","downstairs","blahbla"
然后导入该文件,并从保存计算机名的列(在本演示中,该列称为WorkStation)中获取一个数组,循环遍历该计算机名数组,并为每个计算机名获取其属性MemberOf。
WorkStation
MemberOf
-Properties *
接下来,让循环发出对象并将结果捕获到变量中。要获取组Name,而不是从MemberOf属性获取的DistinguishedName,还需要Get-ADGroup。最后,将此结果导出到新的CSV文件大概是这样的
Get-ADGroup
$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
1条答案
按热度按时间ha5z0ras1#
如果您的输入CSV文件如下所示:
然后导入该文件,并从保存计算机名的列(在本演示中,该列称为
WorkStation
)中获取一个数组,循环遍历该计算机名数组,并为每个计算机名获取其属性MemberOf
。-Properties *
,因为请求所有属性会耗费时间和内存 *接下来,让循环发出对象并将结果捕获到变量中。
要获取组Name,而不是从
MemberOf
属性获取的DistinguishedName,还需要Get-ADGroup
。最后,将此结果导出到新的CSV文件
大概是这样的