그룹에 멤버를 csv 파일을 불러와 설정하는 방법입니다.
그룹에 그룹을 넣는 것은 하위 조직을 상위 조직에 포함시키는 방법으로 AD에서 그룹 관리 할 경우 꼭 알아 두셔야 할 기능으로 판단 되어 집니다.
C:\Temp\GroupSample.csv 파일 내용 입니다.
아래 내용에서 Path 값은 실제 저장될 OU의 위치를 예기하고 있으니 각자의 환경에 맞춰 변경해 주시면 됩니다.
1,2,3,Name,Sam,Desc,Path
MSA,,,MSA,MSA,MSA,"OU=GROUPS,OU=MSA,OU=MST,DC=gsoft,DC=local"
MSA,경영지원본부 ,,경영지원본부,MSA_경영지원본부,MSA/경영지원본부,"OU=GROUPS,OU=MSA,OU=MST,DC=gsoft,DC=local"
MSA,경영지원본부,경영지원실,경영지원실,MSA_경영지원실,MSA/경영지원본부/경영지원실,"OU=GROUPS,OU=MSA,OU=MST,DC=gsoft,DC=local"
Powershell 명령어 정리
그룹 생성
Import-Csv "C:\Temp\GroupSample.csv" | ForEach-Object `
{
Write-Host "그룹 이름 : " $_.Name
New-ADGroup -Name $_.Name -SamAccountName $_.Sam -GroupScope Global -Description $_.Desc -Path $_.Path
}
그룹 멤버 제거
Import-Csv "C:\Temp\GroupSample.csv" | ForEach-Object `
{
Write-Host "그룹 이름 : " $_.Name
Get-ADGroup $_.Sam | Set-ADGroup -Clear member
}
그룹에 멤버 추가
Import-Csv "C:\Temp\GroupSample.csv" | ForEach-Object `
{
#$level 변수에 GroupSample.csv 파일의 Desc 항목의 /의 갯수를 확인하여 숫자로 넣기
$level = (Select-String -InputObject $_.Desc -Pattern "/" -AllMatches).Matches.Count
#$list 변수에 GroupSample.csv 파일의 Desc 항목의 /로 분류 문자로 텍스트 분류하여 배열에 넣기
$list=$_.Desc -split "/"
# 상위 부서의 이름의 SamAccountName을 찾아서 $samaccount에 넣기
Import-Csv "C:\Temp\GroupSample.csv" | ForEach-Object `
{
# $list 값 중 현재 레벨보다 1적은 텍스트 즉 상위 부서의 이름 가져와서 현재 이름과 비교
If($list[$level - 1 ] -eq $_.Name){
$samaccount = $_.Sam
}
}
# $level이 0보다 크면 아래 조건문 실행
If($level -gt 0) {
# 화면에 작업할 그룹과 포함될 그룹 표시
Write-Host $samaccount" <-- " $_.Sam
# 그룹에 멤버 추가
Add-ADGroupMember $samaccount -Members $_.Sam
}
}
멤버 확인
Import-Csv "C:\Temp\GroupSample.csv" | ForEach-Object `
{
Write-Host "그룹 이름 : " $_.Name
Get-ADGroup $_.Sam -Properties Members | select name, members
}
결과 화면
댓글