Home | 문태준 | 시스템어드민 메일링 | Sys Admin 세미나
Skip to end of metadata
Go to start of metadata

Active Directory 소개

http://technet2.microsoft.com/WindowsServer/ko/Library/77a19ae8-bffe-42ca-a841-3d18ea62dc9b1042.mspx?mfr=true

아래 항목순서대로 상세한 자료가 있음

Active Directory 개요
Active Directory 이해
Active Directory 배포
Active Directory 관리
Active Directory 리소스

Active Directory Design, Planning

Best Practice Active Directory Design for Managing Windows Networks

http://technet.microsoft.com/en-us/library/bb727085.aspx

Creating an Organizational Unit Design 자료는 OU 구성에 도움이 됨

Windows Server 2003 Active Directory Branch Office Guide

Best Practice Active Directory Design for Managing Windows Networks 문서에서 Branch Office 에 전개할때 참고할 문서로 소개하고 있음 http://www.microsoft.com/downloads/details.aspx?FamilyId=9353A4F6-A8A8-40BB-9FA7-3A95C9540112&displaylang=en#filelist

schema 정보 보기

msdn schema 자료

http://msdn.microsoft.com/en-us/library/ms682458(VS.85).aspx

Active Directory Schema

http://msdn.microsoft.com/en-us/library/ms675085(VS.85).aspx
위 자료의 하위 메뉴로 다음의 내용이 있다.

  • Active Directory Schema Terminology
  • Classes
  • Attributes
  • Syntaxes
  • Control Access Rights
  • RootDSE

data type

AD 데이터 타입

http://msdn.microsoft.com/en-us/library/ms684419(VS.85).aspx
상세한 자료는 위 URL에서 찾아보면 되며 여기에서는 WDS에서 사용하는 타입만 설명함

  • Boolean : Represents a Boolean value.
  • Enumeration : Enumeration(delivery-mechanism) syntax.
  • Interval : Represents a time interval value. The actual time units depend on the attribute. This syntax is identical to the LargeInteger syntax, except the high and low values are unsigned integers.
  • Object(DS-DN) : String that contains a distinguished name (DN). For attributes with this syntax, Active Directory handles attribute values as references to the object identified by the DN and automatically updates the value if the object is moved or renamed. For queries that include attributes of DN syntax in a filter, specify full distinguished names. Wildcards (for example, cn=John*) are not supported.
  • Object(Replica-Link) : Object(Replica-Link) syntax. This syntax is only used by the system.
  • String(IA5) : A case-sensitive string that contains characters from the IA5 character set.
  • String(Object-Identifier) : An OID string, which is a string that contains digits (0-9) and decimal points (.).
  • String(Teletex) : A case insensitive string that contains characters from the teletex character set.
  • String(Unicode) : A case-insensitive Unicode string

index

Indexed Attributes
http://msdn.microsoft.com/en-us/library/ms675095(VS.85).aspx

AD index 설정하기

Install the Active Directory Schema snap-in

먼저 AD schema 스냅인을 설치해야 한다. 아래 내용을 보고 설치하고 관리도구에 추가하면 된다.
상세한 내용은 여기서 생략한다.
http://technet.microsoft.com/en-us/library/cc755885.aspx

명령행에서 해당 dll을 설치한다.위의 자료에서 띄어쓰기가 잘못 되어 혼란을 줄 수 있어 이 부분만 설명함.

Index an attribute in Active Directory

http://technet.microsoft.com/en-us/library/cc737526.aspx

위 내용을 보고 Active Directory Schema snap-in 에서 해당 attr 에 인덱스를 설정해주면 된다.

프로그래밍에서 인덱스 관련 사항

Microsoft Windows 2000 Scripting Guide 에서 CHAPTER 5 ADSI SCripting Primer 참고

  • Searching - Optimizing Search Performance : 검색 성능향상을 위해 필요한 부분 설명.
  • Active Directory Architecture - Active Directory Replication and Indexing : 인덱스된 속성을 보여주는 예제

Active Directory 프로그래밍

기초자료

Windows Resource Kits - Web Resources 에서 Active Directory Programmer's Guide 참고 http://go.microsoft.com/fwlink/?linkid=291

Active Directory Service Interfaces (ADSI) http://msdn.microsoft.com/en-us/library/aa772170(VS.85).aspx

다른 사용자로 실행하기

AD 에서 작업을 할 경우 사용자 인증을 거는 방법

ADSI

사용자인증 미지정

다른 사용자 인증을 지정하기 위해 IADsOpenDSObject::OpenDSObject method 를 이용하면 됨

ADO

사용자인증이 필요할 경우 objConn.Properties("User ID") 과 objConn.Properties("Password") 을 지정해줌

AD 검색하기

Microsoft Windows 2000 Scripting Guide - CHAPTER 5 ADSI Scripting Primer - Searching 참고
사용자인증하여 검색하기 참고소스 : http://techtasks.com/code/viewbookcode/184

netbootGUID 검색하기

아래 url 자료 참고 http://www.eggheadcafe.com/software/aspnet/29347647/ldap-filter-netbootguid.aspx

LDAP filter (netbootGUID) - Joe Kaplan 24-Feb-07 06:59:29

When searching for binary data, the filter syntax is to take each byte and format it as a hex string pair, putting a leading backslash on each hex pair. Thus a byte array like this:

8B-EC-8A-CA-D0-EF-AD-43-B9-66-46-FF-D1-11-A8-AE

Would look like this as a search filter:
(netBootGUID=\8B\EC\8A\CA\D0\EF\AD\43\B9\66\46\FF\D1\11\A8\AE)

GUID 원본 : "00155DB6F312"
검색필터 GUID = "\00\00\00\00\00\00\00\00\00\00\00\15\5D\B6\F3\12"

이 자료를 가지고 vbs 만든 내용은 아래와 같다.

netbootGUID 정보 출력하기

간단한 예제 http://www.experts-exchange.com/OS/Microsoft_Operating_Systems/Server/2003_Server/Q_21909382.html

좀더 긴 자세한 예제 http://forums.microsoft.com/TechNet/ShowPost.aspx?PostID=3769541&SiteID=17&pageid=1

AD에서 OctecString Syntax 의 경우 변환을 해야한다. 아래는 해당 VBS 함수이다.
GUID 같은 경우는 OctecString syntax 이며 검색하여 데이터를 가져올 때, 입력 또는 수정시 별도의 처리가 필요하다.
OctecString 은 byte array 이며 byte array 를 hex string 으로 변환을 하고 화면에 보여줄 수 있도록 변환을 하면 된다.
거꾸로 입력시에는 string -> hex string -> vyte array 변환이 되어야 한다.

입력은 아래에서 다시 설명한다.

netbootGUID 예제

앞부분의 000 은 불필요한 부분이므로 Right 함수를 이용하여 뒷부분의 mac address만 보여주면 됨

IA5string 검색하기

AD에서 String(unicode)는 그냥 출력을 할 수 있지만 ipHostNumber 와 같이 String(IA5) 타입으로 되어있는 정보(IA5String)은 배열로 정보를 받는다. 그러므로 배열을 이용하여 출력을 하면 된다.

AD 입력하기

ipHostNumber 와 같이 String(IA5) 타입으로 되어있는 정보(IA5String)는 VBS 에서 일반텍스트처럼 입력이 되었다.
그러나 netbootGUID 와 갈이 Object(Replicat-Link)로 되어 있는경우 텍스트로 입력을 하려고 하면 "제약조건 위반이 발생했습니다"라는 에러 메시지가 출력된다.

netbootGUID 등 OctetString 처리하기

입력시에는 string -> hex string -> vyte array 변환이 되어야 한다.
아래 사이트가 OctetString 에 대해 상세히 나와있다. http://theessentialexchange.com/blogs/michael/archive/2007/11/13/working-with-binary-data-guids-in-vbscript.aspx

아래 코드를 옮긴다. bootGUID 를 문자로 받아서 AD에 입력을 하며 ADSI 코드는 여기서는 생략을 하였다.

개발관련 기타 자료

AD, exchange 관련 스크립트
http://www.scriptinganswers.com/vault/Email%20and%20Exchange/

 

기타

위에서 netbootGUID 등 OctetString 처리하기는 작동하는데 문제가 있다. 아래 url등을 좀 더 찾아봐야겠다. netbootGUID vbs 로 검색.. http://support.microsoft.com/kb/250344

Labels
  • No labels