-
Notifications
You must be signed in to change notification settings - Fork 0
/
FSMOtransfer.cmd
167 lines (141 loc) · 5.47 KB
/
FSMOtransfer.cmd
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
@ECHO OFF
:: ### FSMORoles Transfer-Script
::
:: ### Moves Active Directory FSMO Roles of one Domaincontroller to another, using the NTDSUTIL.EXE
:: ### Transfer Schema master
:: ### Transfer domain naming master
:: ### Transfer infrastructure master
:: ### Transfer PDC
:: ### Transfer RID master
::
:: Author: Roland Schoen
:: Create Date: 2006-03-21
:: Change Date: 2017-07-01
::
SETLOCAL
:START
SET viewdomain=%1
::Catch emptry runtime parameters
If Not Defined viewdomain (
ECHO.
ECHO Move Active Directory FSMO Roles using NTDSUTIL.EXE
ECHO.
ECHO %~n0 [DNSDOMAIN]
ECHO.
ECHO DNSDOMAIN Must be a Fully Qualified Domain name ^(FQDN^) of a
ECHO existing Microsoft Active Directory Domain
ECHO.
ECHO The script works only if you are logged on as a administrator
ECHO.
GOTO END
)
GOTO CHOICES
:CHOICES
ECHO **************************************************
ECHO ----------- FSMORoles Transfer Script ------------
ECHO **************************************************
ECHO # #
ECHO ######### What do you want to do today? #########
ECHO # #
ECHO ######### Make your choices #########
ECHO # #
ECHO # A) Transfer Schema Master Role #
ECHO # B) Transfer Domain Naming Master Role #
ECHO # C) Transfer Infrastructure Master Role #
ECHO # D) Transfer PDC Master Role #
ECHO # E) Transfer RID Master Role #
ECHO # #
ECHO # O) Overview - current role holders #
ECHO # Q) Quit the Script #
ECHO # #
ECHO ##################################################
CHOICE /C:abcdeoq /M "Choose your task: "
CLS
IF ERRORLEVEL 7 GOTO END
IF ERRORLEVEL 6 GOTO OVERVIEW
IF ERRORLEVEL 5 GOTO RID
IF ERRORLEVEL 4 GOTO PDC
IF ERRORLEVEL 3 GOTO INFRASTRUCTURE
IF ERRORLEVEL 2 GOTO DOMAIN
IF ERRORLEVEL 1 GOTO SCHEMA
::Create and Display Overview
:OVERVIEW
IF EXIST %TEMP%\temp.log DEL %TEMP%\temp.log
IF EXIST %TEMP%\fsmoroles.log DEL %TEMP%\fsmoroles.log
ntdsutil "roles" "Connections" "Connect to domain %viewdomain%" "Quit" "Select operation target" "List roles for connected server" "Quit" "Quit" "Quit" >> %TEMP%\temp.log
FOR /F "tokens=*" %%a IN (%TEMP%\temp.log) DO Echo %%a | find /I "Schema -" >> %TEMP%\fsmoroles.log
FOR /F "tokens=*" %%a IN (%TEMP%\temp.log) DO Echo %%a | find /I "Naming Master -" >> %TEMP%\fsmoroles.log
FOR /F "tokens=*" %%a IN (%TEMP%\temp.log) DO Echo %%a | find /I "Infrastructure -" >> %TEMP%\fsmoroles.log
FOR /F "tokens=*" %%a IN (%TEMP%\temp.log) DO Echo %%a | find /I "PDC -" >> %TEMP%\fsmoroles.log
FOR /F "tokens=*" %%a IN (%TEMP%\temp.log) DO Echo %%a | find /I "RID -" >> %TEMP%\fsmoroles.log
ECHO **************************************************
ECHO ----------- Current FSMO Role Holders ------------
ECHO **************************************************
TYPE %TEMP%\fsmoroles.log
:: DELETE TEMP Logfiles
IF EXIST %TEMP%\temp.log DEL %TEMP%\temp.log
IF EXIST %TEMP%\fsmoroles.log DEL %TEMP%\fsmoroles.log
ECHO.
ECHO.
GOTO CHOICES
::Transfer of Schema master
:SCHEMA
ECHO Wich Domaincontroller should become SCHEMA MASTER?
SET /P SCHEMAMASTER="Enter Servername: "
ECHO Transfering the Schema Master Role to %SCHEMAMASTER%
ECHO Please Wait...
ntdsutil "roles" "Connection" "Connect to Server %SCHEMAMASTER%" "Quit" "Transfer Schema master" "Quit" "Quit"
ECHO.
ECHO.
GOTO CHOICES
::Transfer of domain naming master
:DOMAIN
ECHO Wich Domaincontroller should become DOMAIN NAMING MASTER?
SET /P DOMAINMASTER="Enter Servername: "
ECHO Transfering the Domain Naming Master Role to %DOMAINMASTER%
ECHO Please Wait... Check for running OS
systeminfo | findstr /B /C:"OS Name" | find /I "Windows Server 2016"
IF "%ERRORLEVEL%"=="0" (
ECHO ### Running Windows Server 2016 compatibility
ntdsutil "roles" "Connection" "Connect to Server %DOMAINMASTER%" "Quit" "Transfer naming master" "Quit" "Quit"
) ELSE (
ECHO ### Running regular OS mode...
ntdsutil "roles" "Connection" "Connect to Server %DOMAINMASTER%" "Quit" "Transfer domain naming master" "Quit" "Quit"
)
ECHO.
ECHO.
GOTO CHOICES
::Transfer of infrastructure master
:INFRASTRUCTURE
ECHO Wich Domaincontroller should become INFRASTRUCTURE MASTER?
SET /P INFRASTRUCTUREMASTER="Enter Servername: "
ECHO Transfering the Infrastructure Master Role to %INFRASTRUCTUREMASTER%
ECHO Please Wait...
ntdsutil "roles" "Connection" "Connect to Server %INFRASTRUCTUREMASTER%" "Quit" "Transfer infrastructure master" "Quit" "Quit"
ECHO.
ECHO.
GOTO CHOICES
::Transfer of pdc master
:PDC
ECHO Wich Domaincontroller should become PDC MASTER?
SET /P PDCMASTER="Enter Servername: "
ECHO Transfering the PDC Master Role to %PDCMASTER%
ECHO Please Wait...
ntdsutil "roles" "Connection" "Connect to Server %PDCMASTER%" "Quit" "Transfer PDC" "Quit" "Quit"
ECHO.
ECHO.
GOTO CHOICES
::Transfer of rid master
:RID
ECHO Wich Domaincontroller should become RID MASTER?
SET /P RIDMASTER="Enter Servername: "
ECHO Transfering the RID Master Role to %RIDMASTER%
ECHO Please Wait...
ntdsutil "roles" "Connection" "Connect to Server %RIDMASTER%" "Quit" "Transfer RID master" "Quit" "Quit"
ECHO.
ECHO.
GOTO CHOICES
:END
EcHO.
ECHO Done!
ENDLOCAL