각 컬렉션에는 구성원으로 추가해야하는 3-7 개의 보안 그룹이 포함될 수있는 +100 개의 AD 보안 그룹 행이 있습니다.
이 데이터는 CSV로 분류되어 있지만 지금까지 Import-CSV cmdlet을 사용하여 데이터 작업을 수행 할 수 없었습니다.
지금까지 아래에 설명 된대로 +100 개의 항목을 만들었지 만 CSV를 가져 와서이 문제를 해결할 수있는 방법을보고 싶습니다.
나는 여기에서 다른 CSV 질문을 읽고 내 powershell 책의 일부를 다시 읽었지만 지금까지 적절한 해결책을 찾지 못했습니다.
$DCName = DC01
Add-ADGroupMember -Server $DCName -MainGroup -Members 'Group001', 'Group002', 'Group003'
Add-ADGroupMember -Server $DCName -SecondGroup -Members 'Group011', 'Group022', 'Group033'
Add-ADGroupMember -Server $DCName -ThirdGroup -Members 'Group111', 'Group222'
CSV 내부 :
MainGroup SecondGroup ThirdGroup
Group001 Group011 Group111
Group002 Group022 Group222
Group003 Group033
-MainGroup
에서 호출 된 속성이 없으므로을 Add-ADGroupMember
사용해야 -Identity "MainGroup"
합니다.이것은 좋은 CSV 파일이 아닙니다. CSV 파일의 행은 단일 항목을 나타내야하며 각 열은 해당 항목을 "설명"하는 속성이어야합니다. 열 값은 같은 행의 다른 값과 독립적입니다. 다음과 같이 작성했을 것입니다.
MembersToAdd.csv
Group,Member
MainGroup,Group001
MainGroup,Group002
SecondGroup,Group011
SecondGroup,Group022
이렇게하면 작업 당 1 개의 행이 있으므로 누가 어디에 추가해야하는지 명확하게 알 수 있습니다. 전의.
Import-CSV MembersToAdd.csv | Foreach-Object {
Write-Host "Add $($_.Member) to $($_.Group)"
Add-ADGroupMember -Identity $_.Group -Members $_.Member
#Or you could have added all members to an array, used `Group-Object Group` or
#something else to collect all members an do a single `Add-ADGroupMember` call for that group.
}
그러나 현재 CSV를 사용하려면 다음과 같이 시도 할 수 있습니다.
$DCName = "DC01"
#Hashtable to store group = members values
$AddMembers = @{}
Import-CSV -Path mygrouplist.csv | ForEach-Object {
#Foreach property (column)
$_.psobject.Properties | ForEach-Object {
#If property has value
if($_.Value) {
#If new "maingroup", create hashtable entry with an array to store values in
if($AddMembers.ContainsKey($_.Name) -eq $false) { $AddMembers.Add($_.Name,@()) }
#Add member to group in hashtable
$AddMembers[$_.Name] += $_.Value
}
}
}
#Foreach entry (group) in hashtable, add members
$AddMembers.GetEnumerator() | ForEach-Object { Add-ADGroupMember -Server $DCName -Identity $_.Name -Members $_.Value }
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다