2008. 10. 20. 14:23 Windows/Active Directory
Active Directory 관리 시리즈2 - Script를 이용한 AD 관리
○ Script를 이용한 Active Directory 관리
Active Directory Object Binding, 생성, 수정, 삭제
○ Script를 사용하는 이유
- 편리성
계정 관리에 대한 일관성 유지
- ADUC를 이용해 계정을 생성하기 위해서는
사용자의 Type등, 설명등을 입력하여 생성
관리자의 실수를 최소화
- 대량 작업에 대한 일괄처리 지원
Script와 Excel 연계 가능
○ ADSI(Active Directory Service Interfaces)
AD를 액세스할 수 있도록 다양한 COM Interface(Provider) 제공
Active Directory(LDAP Provider)
Exchange Server(LDAP Provider)
Local user and group accounts(WinNT Provider)
Windows NT 4.0 domain accounts(WinNT Provider)
Internet Information Server(IIS Provider)
○ ADSI Scripting 비교
- Active Directory
Set objUser=GetObject
("LDAP://cn=Gildon.Hong,ou=연구소,dc=nwtraders,dc=com")
Wscript.Echo "First Name: " & objUser.GivenName
Wscript.Echo "Last Name: " & objUser.sn
- Internet Information Server
Set objWebServer=GetObject("IIS://atl-ws-01/W3SVC")
Wscript.Echo "Log Type: " & objWebServer.LogType
Wscript.Echo "Server Comments: " & _objWebServer.ServerComment
○ ADSI Scripting Template
Connect to an Object(=Binding)
Perform Some Task
- Object 생성
- Object 수정
- Object 삭제
Save you Changes(SetInfo method 호출)
○ Active Directory Object Binding
실생활에서 원하는 상대에게 전화 걸기
Step1 : 상대방의 전화번호 획득
Step2 : 전화걸기
Object Binding 순서
Step1 : Binding하고자 하는 Object의 ADsPath 획득(Provider이름+Distinguished Name)
Step2 : Object에 Binding(GetObject)
○ Active Directory Naming
도메인
dc=nwtraders,dc=msft
OU
ou=연구소
Object
cn=Gildong.Hong
Distinguished Name
cn=Gildong.Hong,ou=연구소,dc=nwtraders,dc=msft
Domain>OU>Object
cn=xxx.xxx,ou=xx,dc=xxx,dc=xxx
특정 개체를 지정하기 위한 체계가 있음
○ ADsPath(=Distinguished Name+Provider명)
LDAP://(Distinguished Name)
LDAP://cn=Gildong.Hong,ou=연구소,dc=nwtraders,dc=msft
Parent ADsPath
LDAP://ou=연구소,dc=nwtraders,dc=msft
○ Object Binding Script
OU안에 특정 개체 Binding
Set objUser=GetObject
("LDAP://cn=Gildong.Hong,ou=연구소,dc=nwtraders,dc=com")
OU에 Binding
Set objOU=GetObject("LDAP://ou=연구소,dc=nwtraders,dc=com")
하위 OU에 Binding
Set objOU=GetObject
("LDAP://ou=핵심기술연구팀,ou=연구소,dc=nwtraders,dc=com")
○ Active Directory Object 생성
Identity Lifecycle
- 임직원 입사 : 사용자 계정 생성
- 조직/직급/직위/직책 생성 : 관련 그룹 계정 생성
Script를 이용해서 성성하는 주 대상은 사용자 계정임
생성순서
- Step 1: Object를 생성하고자 하는 OU에 Binding
- Step 2: Object 생성(그룹, 사용자 계정, 컴퓨터 계정이 될 수 있음)
- Step 3: Object Attribute 설정(사용자 계정의 Attribute 설정)
- Step 4: 설정 저장
OU에 사용자 계정 생성
Set objOU=GetObject("LDAP://ou=연구소,dc=nwtraders,dc=msft")
Set objUser=objOU.Create("User","cn=Cheolwon.Choi")
objUser.Put "sAMAccountName", "Cheolwon.Choi"
objUser.Put "GivenName", "Cheolwon"
objUser.Put "SN", "Choi"
objUser.SetInfo
○ Excel을 이용한 사용자 계정 생성
다수의 사용자 계정을 일괄 처리 가능
사용자 계정 생성 순서
Step 1 : Excel 인스턴스 생성 및 파일 열기
Step 2 : Excel Data를 이용해 사용자 계정 생성
Step 3 : Quit를 이용해서 Excel 인스턴스 종료
Excel을 이용한 사용자 계정 생성 Script
Set objExcel=CreateObject("Excel.Application")
Set objWorkbook=objExcel.Workbooks.Open("C:\Temp\HR.xls")
intRow = 2
Do Until ObjExcel.Cells(intRow,1).Value=""
strCN=objExcel.Cells(intRow,2).Value & "." &
objExcel.Cells(intRow,1).Value
Set objOU = GetObject("LDAP://ou=" &
objExcel.Cells(intRow,3).Value & ",dc=nwtraders,dc=msft")
Set objUser = objOU.Create("User", "cn=" & strCN)
objUser.Put "sAMAccountName", strCN
objUser.Put "GivenName", objExcel.Cells(intRow,2).Value
objUser.Put "SN", objExcel.Cells(intRow,1).Value
objUser.SetInfo
intRow=intRow+1
Loop
objExcel.Quit
○ Active Directory Object 수정
Identity Lifecycle
- 전보 : 사용자 계정이 속한 조직 그룹 변경
- 승진 발령 : 관련 직책/직급/직위 그룹 변경
- 휴가/정직 : 사용자 계정 Disable
- 복귀 : 사용자 계정 Enable
수정 순서
- Step 1: 수정하고자 하는 Object에 Binding
- Step 2: Object Attribute 설정
- Step 3: 설정 저장
사용자 계정 상태 변경 Script
Set objUser=GetObject("LDAP://cn=Gildong.Hong,ou=연구소,dc=nwtraders,dc=msft")
objUser.AccountDisabled=TRUE(복귀시 FALSE)
objUser.SetInfo(Commit Transaction과 같은 개념)
○ Active Directory Object 삭제
Identiry Lifecycle
- 퇴사 : 사용자 계정 삭제
- 조직 통폐합 및 폐쇄 : 조직 그룹 삭제
삭제 순서
- Step 1 : 삭제할 Object를 포함하고 있는 OU에 Binding
- Step 2 : 다음 두 매개변수를 이용해서 Delete Method 호출
삭제할 개체 종류
삭제할 개체 CN
사용자 계정 삭제 Script
Set objOU = GetObject("LDAP://ou=연구소,dc=nwtraders,dc=msft")
objOU.Delete "User", "cn=Cheolwon.Choi"
○ 참고자료
Microsoft Technet Script Center
http://www.microsoft.com/technet/scriptcenter/default.mspx
Active Directory Administration WebCast Series
http://www.microsoft.com/events/series/adaug.mspx