★ DSMOD(Directory Service Modify)
=> 개체의 속성을 수정 (대부분의 옵션이나 사용법은 DSADD와 비슷)
▶ C:\> dsmod <개체> <생성되어 있는 DN> [옵션]
● dsmod user => 사용자개체의 속성값 수정 (DSADD User 옵션과 동일한 옵션 사용)
(ex) C:\> dsmod user "cn=MSuser,ou=it test,dc=nwtraders,dc=msft" -desc "마이크로 소프트 유저"
=> it test 조직 구성 단위안에 존재하는 MSuser의 설명이 "마이크로 소프트 유저"로 변경됨
● dsmod group => 그룹 개체의 속성값 수정 (DSADD Group 옵션과 거의 흡사)
※ dsadd group과 다르게 쓰는 옵션
{-addmbr | -rmmbr | -chmbr} <구성원...>
=> -addmbr은 그룹에 구성원을 추가할때 쓰고, -rmmbr은 그룹에 구성원을 제거할 때 사용
-chmbr은 그룹의 전체 구성원 목록을 변경시에 사용
(ex) C:\> dsmod group "cn=G software manager,ou=it test,dc=nwtraders,dc=msft"
-addmbr "cn=MSuser,ou=it test,dc=nwtraders,dc=msft" -desc "소프트웨어 그룹"
=> G Software manager그룹에 MSuser사용자를 추가하고, 그룹 설명을 "소프트웨어 그룹"으로 변경
● dsmod computer => 컴퓨터 개체의 속성값 수정 ( dsadd computer의 옵션과 흡사 )
※ dsadd computer와 다르게 쓰는 옵션
-disabled {yes | no}=> 컴퓨터 계정을 사용 불가능(yes)또는 사용 가능(no)하게 설정
-reset => 컴퓨터 계정을 원래대로 설정
(ex) C:\> dsmod computer "cn=MScomputer,ou=it test,dc=nwtraders,dc=msft" -disable yes -loc Busan
=> it test 조직구성단 안에 있는 MScomputer라는 컴퓨터 계정을 사용불가능하게 바꾸고, 위치를 Busan으로 변경
● dsmod contact => 연락처 개체의 속성값 수정 ( dsadd contact 옵셔과 동일 )
(ex) C:\> dsmod contact "cn=message,ou=test,ou=it test,dc=nwtraders,dc=msft" -desc "메시지"
=> it test 조직 구성단위 아래 test라는 조직 구성단위 안의 message의 설명을 "메시지"로 변경
● dsmod ou => 조직 구성 단위 개체의 속성값 수정
(ex) C:\> dsmod ou "ou=test,ou=it test,dc=nwtraders,dc=msft" -desc "테스트"
=> it test 조직 구성단위 아래 test라는 조직 구성단위의 설명을 "테스트"로 변경
● dsmod server => 기존 도메인 컨트롤러의 속성값 수정 ( 도메인 서버 Administrator만이 권한을 가짐)
◎ 옵션
<서버 DN ...> => 필수/stdin. 수정할 하나 이상의 서버의 고유 이름(DN)이다.
대상 개체가 생략된 경우 다른 명령의 출력을 파이프로 이 명령에 입력할 수 있도록
하기 위해 표준 입력( stdin)으로부터 대상 개체를 얻는다.
-desc <설명> => 서버 설명을 <설명>으로 설정함
-isgc { yes | no } => 이 서버를 글로벌 카탈로그 서버로 사용 가능(yes) 또는 사용 불가능 (no)한지 설정
{-s <서버> | -d <도메인>} => -s <서버>는 <서버> 이름을 가진 도메인 컨트롤러 <DC>에 연결
-d <도메인>은 <도메인> 도메인에 있는 DC에 연결 (기본값 : 로그온 도메인에 있는 DC)
-u <사용자 이름> => <사용자 이름>으로 연결 (기본값 : 로그인된 사용자)
<사용자 이름>은 사용자 이름, 도메인\사용자 이름 또는 UPN이 될 수 있다.
-p {<암호> | *} => <사용자 이름> 사용자의 암호. *를 입력하면 암호를 물어봄
-c => 계속 작업 모드 : 오류는 보고되나 여러 대상 개체가 지정된 경우 인수 목록에 있는
다음 개체로 계속, 이 옵션 사용 안하면 오류 처음 발생시 명령 종료~.
-q => 자동모드 : 화면에 출력을 표시하지 않음
{-uc | -uco | -uci} => -uc 파이프로부터 입력 또는 파이프로의 출력이 유니코드로 인코딩 되도록 지정
-uco 파이프 또는 파일로의 출력이 유니코드로 인코딩 되도록 지정
-uci 파이프 또는 파일로부터의 입력이 유니코드로 인코딩되도록 지정
(ex) C:\> dsquery server ( 도메인 컨트롤러의 DN찾기 )
C:\> dsmod server "cn=london,cn=servers,cn=default-first-site-name,cn=sites,
cn=configuration,dc=nwtraders,dc=msft" -desc "도메인 컨트롤러"
=> 확인하기 위해서는 관리도구에서 "Active Directory 사이트 및 서비스"를 실행하시고, "Sites"확장 후,
"default-first-site-name"을 확장해서 "London"을 마우스 오른쪽 클릭해서 속성을 열어 확인.
● dsmod quota => 디렉터리 파티션의 할당량 지정 개체의 속성 수정 (대부분 dsadd quota의 옵션과 비슷)
※ dsadd quota와 다르게 쓰는 옵션
-c => 계속 작업 모드 : 오류는 보고되나 여러 대상 개체가 지정된 경우 인수 목록에 있는
다음 개체로 계속, 이 옵션 사용 안하면 오류 처음 발생시 명령 종료~
● dsmod partition => 디렉터리에 있는 기존 파티션의 속성 수정
◎ 옵션
<파티션 DN...> => 하나 이상의 수정할 파티션 개체의 고유 이름을 지정.
생략시 표준 입력(stdin)으로부터 값을 얻으므로 다른 명려의 출력이 이 명령의 입력으로
파이프 되는 것을 지원
-qdefault <값> => 디렉터리 파티션의 기본 할당량을 지정한 값으로 설정
기본 할당량은 디렉터리 파티션의 개체 소유 또는 특정 할당량 사양이 존재하는
보안 사용자(사용자, 그룹, 컴퓨터, InetOrgPerson)에게 적용
무제한으로 지정하려면 -1을 입력
-qtmbstawt <백분율> => 할당량 사용량을 계산할 때 삭제 표시 개체의 개수가 줄어들어야 하는 백분율 설정
해당 백분율은 <백분율>에 의해 지정 (0~100사이의 값)
사용자가 백분율 값을 100으로 지정한 경우, 해당 사용자는 최대 100개의 일반 개체
또는 400개의 삭제 표시 개체를 Active Directory에서 소유
-c => 계속 작업 모드 : 오류는 보고되나 여러 대상 개체가 지정된 경우 인수 목록에 있는
다음 개체로 계속, 이 옵션 사용 안하면 오류 처음 발생시 명령 종료~
{-s <서버> | -d <도메인>} => -s <서버>는 <서버> 이름을 가진 도메인 컨트롤러 <DC>에 연결
-d <도메인>은 <도메인> 도메인에 있는 DC에 연결 (기본값 : 로그온 도메인에 있는 DC)
-u <사용자 이름> => <사용자 이름>으로 연결 (기본값 : 로그인된 사용자)
<사용자 이름>은 사용자 이름, 도메인\사용자 이름 또는 UPN이 될 수 있다.
-p {<암호> | *} => <사용자 이름> 사용자의 암호. *를 입력하면 암호를 물어봄
-q => 자동모드 : 화면에 출력을 표시하지 않음
{-uc | -uco | -uci} => -uc 파이프로부터 입력 또는 파이프로의 출력이 유니코드로 인코딩 되도록 지정
-uco 파이프 또는 파일로의 출력이 유니코드로 인코딩 되도록 지정
-uci 파이프 또는 파일로부터의 입력이 유니코드로 인코딩되도록 지정
★ DSRM ( Directory Service Remove)
=> 지정된 개체를 삭제하는 명령어.
(모든 타입의 개체 삭제 가능하나 내부에 다른 개체를 포함한 컨테이너개체의 경우 컨테이너개체가 비어있어야 함)
▶ C:\> dsrm <생성되어있는 DN>
(ex) C:\> dsrm "cn=개발부,ou=개발부,dc=nwtraders,dc=msft"
=> 개발부 조직 구성단위 안에 존재하는 개발부라는 개체 삭제~!
★ DSMOVE ( Directory Service Move)
=> 개체의 DN및 RDN을 변경함 ( DN은 다른 컨테이너로 이동시 발생하고, RDN은 같은 컨테이너내에서 이름 변경시.)
▶ C:\> dsmove <생성되어있는 DN> -newname <변경할 이름> => RDN변경 (이름변경)
C:\> dsmove <생성되어있는 DN> -newparent <변경할 DN> => DN변경 (다른 컨테이너로 이동)
(ex) C:\> dsmove "cn=MSuser1,ou=it test,dc=nwtraders,dc=msft" -newname "Officer"
=> it test 조직 구성단위 안에 있는 MSuser라는 개체의 이름을 Officer로 변경
C:\> dsmove "cn=Officer.ou=it test,dc=nwtraders,dc=msft" -newparent
"ou=개발부,dc=nwtraders,dc=msft"
=> Officer라는 개체가 개발부 조직구성단위 안으로 이동한다.
★DSQUERY ( Directory Service Query)
=> 옵션을 이용해 개체 검색 (dsadd와 dsmod 명령어와 마찬가지로 같은 옵션값을 사용한다.)
▶ C:\> dsquery <개체 타입> <옵션>
● dsquery computer=> 컴퓨터 개체 검색
● dsquery contact=> 연락처 개체 검색
● dsquery subnet=> 서브넷 개체 검색
● dsquery group=> 그룹 개체 검색
● dsquery ou=> 조직 구성 단위 개체 검색
● dsquery site=> 사이트 개체 검색
● dsquery server=> 도메인 컨트롤러 검색
● dsquery user=> 사용자 개체 검색
● dsquery quota=> 디렉터리 파티션 할당량 지정 개체 검색
● dsquery partition=> 기존에 있던 파티션 개체 검색
● dsquery *=> 일반 LDAP 쿼리를 사용하여 모든 개체를 찾음
※ 타입별로 다른 옵션들이 존재하므로, 찾기 전에 자신이 찾고자하는 개체의 공통적인 속성값을 이용해 찾자~!!
(옵션에 대해 자세히 알고 싶으면"dsquery <개체타입> /?"을 이용하자~! (사용자 옵션 : dsquery user /?))
(ex) C:\> dsquery user -name *user => "user"로 끝나는 모든 사용자를 찾아 DN을 출력
C:\> dsquery group -name *manager => "manager"로 끝나는 모든 그룹을 찾아 DN을 출력
C:\> dsquery computer -name seoul* => "seoul"로 시작하는 모든 컴퓨터 개체를 찾아 DN 출력
※ 기본적으로 보여주는 검색 결과 수는 100개이지만,-limit 옵션을 이용하여 찾을 수 있는 갯수를 늘릴 수 있다.
★ DSGET ( Directory Service Get )
=> 지정한 개체의 속성을 출력 (옵션을 주지 않으면 기본적인 속성 값만 출력)
▶ dsget <개체 타입> <생성되어진 DN> [옵션]
● dsget computer=> 컴퓨터 개체 속성 출력
● dsget contact=> 연락처 개체 속성 출력
● dsget subnet=> 서브넷 개체 속성 출력
● dsget group=> 그룹 개체 속성 출력
● dsget ou=> 조직 구성 단위 개체 속성 출력
● dsget site=> 사이트 개체 속성 출력
● dsget server=> 도메인 컨트롤러 속성 출력
● dsget user=> 사용자 개체 속성 출력
● dsget quota=> 디렉터리 파티션 할당량 지정 개체 속성 출력
● dsget partition=> 기존에 있던 파티션 개체 속성 출력
※ 마찬가지로 dsget을 사용하면서 꼭 써야하는 옵션이 있다면"dsget <개체 타입> /?"를 이용하여 사용
(ex) C:\> dsget ou "ou=it test,dc=nwtraders,dc=msft" => it test 조직 구성 단위 개체의 일반 속성 출력
C:\> dsget user "cn=officer,ou=개발부,dc=nwtraders,dc=msft"
=> 개발부 조직 구성 단위 개체 안에 있는 officer 사용자에 대한 일반 속성 출력