Active Directory를 설치할 때 데이터베이스를 기본(C:\Windows\NTDS, C:\Windows\SYSVOL)으로 설치한 경우

하드디스크 공간이 부족해 졌다든가, 또는 정책상의 이유로 경로를 바꿔야 할 경우가 있다.


조금 복잡하다.


1. NTDS(데이터베이스 및 로그) 경로를 변경하려면 DSRM(디렉터리 서비스 복원 모드)로 부팅해서 작업해야 한다.

  그러나 Windows 2008 이상에서는 그럴 필요가 없다. NTDS서비스만 중지해도 된다.

2. NTDS 경로를 옮길 때는 ntdsutil.exe 유틸리티를 사용해서 작업해야 하는데, 정해진 순서가 있다.

3. SYSVOL 경로를 바꾸는 것은 일반 서비스 상태에서도 가능한데, 몇 가지 서비스를 중지하고 작업해야 한다.

4. SYSVOL 경로는 ROBOCOPY.exe로 기존 폴더들을 보안 설정까지 몽땅 복사해주어야 한다.

5. 작업이 끝난 후 기존 SYSVOL 경로를 삭제할 때 특별한 보안 설정이 필요하다.


순서대로 가 보자.



먼저, NTDS 경로를 옮기는 방법에 대한 전체적인 가이드는 아래 URL에 나와 있다.


>> 참조: https://technet.microsoft.com/en-us/library/cc782948(v=ws.10).aspx


여기서 핵심은 DSRM 모드로 재부팅해서 ntdsutil 명령어로 NTDS 폴더를 옮겨주는 것이다.


그런데 가이드 문서는 Windows Server 2003 기준으로 되어 있어, Windows Server 2008 이상의 버전에서는 DSRM 모드로 재부팅하는 것에서부터 참조하기 어렵다. 전혀 메뉴 구조나 실행해야 할 도구가 다르기 때문이다. Windows Server 2008 이상에서는 아래 URL을 참조한다.


>> 참조: https://technet.microsoft.com/ko-kr/library/cc794729(v=ws.10).aspx


로컬에서 DSRM 모드로 재부팅하는 것은 간단하다. 그냥 껐다 켜서 부팅 옵션에서 디렉터리 서비스 복원 모드로 진입하면 되니까. 위 URL은 원격으로 작업하는 것 기준이다.


요약하면, 관리도구의 시스템 구성(System Configuration)을 실행해서 부팅 탭에서 Active Directory repair를 선택하는 것이다. 바로 재부팅할 것이냐고 묻는데, 재부팅하면 DSRM 모드로 부팅된다.




작업이 끝나면 일반(General) 탭에서 normal startup을 선택하여 정상 부팅을 하면 된다.




Windows 2008 이상에서는 굳이 위와 같이 DSRM 모드로 재부팅 할 필요가 없다. 아래 URL을 참조한다.


>> 참조: https://technet.microsoft.com/ko-kr/library/cc816720(v=ws.10).aspx


(그렇지만, DSRM 모드로 재부팅하는 것이 더 확실하고 안전하게 되는 방법이다.)




다음은, SYSVOL 경로를 옮기는 방법이다.


>> 참조: https://technet.microsoft.com/ko-kr/library/cc816594(v=ws.10).aspx


절차가 상당히 복잡하다.

그러나 핵심은 몇 가지 안되니 복잡하게 생각할 필요 없다.


1. 서비스 몇 개 중지한 다음,

2. 레지스트리 값 몇 개 수정하고,

3. ADSI Edit로 도메인 컨트롤러 속성 값 몇 개 수정하고,

4. 파일 복사하면 끝난다.

5. 마지막으로 레지스트리 값 하나 더 수정하고,

6. 중지한 서비스들 시작해주면 완전 끝. 


그런데, 여기서 문제가 있다.


원격으로 위 작업을 하려면 번개처럼 빨리 끝내야 한다. 그렇지 않으면 서비스 중지의 여파로 원격 세션이 끊어지고 다시 연결할 수 없는 상태가 되기 십상. 문제의 서비스 중 하나가 컴퓨터에 로그온하는 세션을 관리하는 서비스인 netlogon 서비스이기 때문이다. 그래서 시간을 끌면 안 된다.

(혹시나 중간에 연결이 끊어지면, 같은 도메인 소속 서버에서 원격으로 재부팅하고 다시 처음부터 작업하면 된다.)




그래서 위 작업을 간단하게 하기 위해 몇 가지 스크립트를 만들어 봤다.


아래 파일들은 모두 D:\Temp에 생성해서 실행한다고 가정하고,

SYSVOL을 옮길 경로는 D:\AD_DB\SYSVOL 이라는 가정하에 작성된 스크립트이다.


[moveSYSVOL.cmd]

@echo off

@set DOMAIN="contoso.com"

net stop dfsr

net stop netlogon


cd /d D:\Temp

regedit /S 1.reg

robocopy C:\WINDOWS\SYSVOL D:\AD_DB\SYSVOL /copyall /mir /b /r:0 /xd "DfsrPrivate" %DOMAIN% /xf "DfsrPrivate"

cd /d "D:\AD_DB\SYSVOL\sysvol"

mklink /J %DOMAIN% "D:\AD_DB\SYSVOL\domain"

cd /d "D:\AD_DB\SYSVOL\staging areas"

mklink /J %DOMAIN% "D:\AD_DB\SYSVOL\staging\domain"


@echo "run ADSI edit to edit sysvol location..."

@pause


net start netlogon

net start dfsr


cd /d D:\Temp

regedit /S 2.reg

net share


[1.reg]

Windows Registry Editor Version 5.00


[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Netlogon\Parameters]

"SysvolReady"=dword:00000000

"SysVol"="D:\\AD_DB\\SYSVOL\\sysvol"


[2.reg]

Windows Registry Editor Version 5.00


[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Netlogon\Parameters]

"SysvolReady"=dword:00000001



위 파일 세 개를 복사해서 메모장에 붙여넣어 각각 moveSYSVOL.cmd, 1.reg, 2.reg로 저장한 뒤

moveSYSVOL.cmd를 실행하면 된다.


그러면 중간에 "run ADSI edit to edit sysvol location..." 메시지가 표시되고 잠시 멈추었을 때,

ADSI Edit를 실행해서 아래와 같이 해당 도메인 컨트롤러의 속성을 수정해 준 다음, 계속 실행하면 된다.


>> 참조: https://technet.microsoft.com/ko-kr/library/cc794821(v=ws.10).aspx


아예 위 스크립트를 실행하기 전에 ADSI Edit를 실행해 놓고 값을 수정할 준비를 해 두면 더 빠르게 진행할 수 있다.


마지막으로 net share 명령을 쳐서 SYSVOL과 NETLOGON 공유가 정상적으로 보이면 성공.



이상. 끝.








Posted by 떼르미
,


자바스크립트를 허용해주세요!
Please Enable JavaScript![ Enable JavaScript ]