-
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathSetupEN-US.bat
More file actions
363 lines (348 loc) · 21 KB
/
SetupEN-US.bat
File metadata and controls
363 lines (348 loc) · 21 KB
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
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
@chcp 65001
@echo off
@setlocal EnableDelayedExpansion
title ADMINISTRATOR PRIVILEGES REQUIRED
net session >nul
if %errorlevel% neq 0 (cls
echo ^|
echo ^| ╠══╦═══════════════════════════════════╦══╣
echo ^| ║ ADMINISTRATOR PRIVILEGES REQUIRED ║
echo ^| ╠══╩═══════════════════════════════════╩══╣
echo ^| && goto RunScriptAsAdmin
)
goto Start
:RunScriptAsAdmin
cd /d %~dp0
MSHTA "javascript: var shell = new ActiveXObject('shell.application'); shell.ShellExecute('%~nx0', '', '', 'runas', 1);close();"
echo ^| Exiting... && timeout 2 >nul && exit
:Start
rmdir /s /q "%TEMP%\OfficeSetupFiles\"
mkdir %TEMP%\OfficeSetupFiles
title Batch Office Installer v1.0.9 by MaximeriX && set DebugMode=0
cls
echo ^|
echo ^| ╠══╦════════════════════════════════════════════════════════════════════════╦══╣
echo ^| ║ Batch Office Installer v1.0.9 by ║
echo ^| ╠════════════════════════════════════════════════════════════════════════╣
echo ^| ║ ║
echo ^| ║ ███╗ ███╗ █████╗ ██╗ ██╗██╗███╗ ███╗███████╗██████╗ ██╗██╗ ██╗ ║
echo ^| ║ ████╗ ████║██╔══██╗╚██╗██╔╝██║████╗ ████║██╔════╝██╔══██╗██║╚██╗██╔╝ ║
echo ^| ║ ██╔████╔██║███████║ ╚███╔╝ ██║██╔████╔██║█████╗ ██████╔╝██║ ╚███╔╝ ║
echo ^| ║ ██║╚██╔╝██║██╔══██║ ██╔██╗ ██║██║╚██╔╝██║██╔══╝ ██╔══██╗██║ ██╔██╗ ║
echo ^| ║ ██║ ╚═╝ ██║██║ ██║██╔╝╚██╗██║██║ ╚═╝ ██║███████╗██║ ██║██║██╔╝╚██╗ ║
echo ^| ║ ╚═╝ ╚═╝╚═╝ ╚═╝╚═╝ ╚═╝╚═╝╚═╝ ╚═╝╚══════╝╚═╝ ╚═╝╚═╝╚═╝ ╚═╝ ║
echo ^| ║ ║
echo ^| ╠══╩════════════════════════════════════════════════════════════════════════╩══╣
echo ^|
timeout 2 >nul
goto OfficeInfo
:OfficeInfo
cls
echo ^|
echo ^| ╠══╦══════════════════════════════════════════════════════════════════════════╦══╣
echo ^| ║ Office includes - Access, Excel, OneDrive, OneNote, Outlook, PowerPoint, ║
echo ^| ║ Project, Publisher, Teams, Visio and Word. (Can be changed) ║
echo ^| ╠═══╦══════╗ ║
echo ^| ║ 1 ║ Okay ║ ║
echo ^| ║ 2 ║ Exit ║ ║
echo ^| ╠══╩═══╩══════╩═══╦═══════════════════════════════════════════════════════════╩══╣
echo ^| ║
choice /C:123 /M "| Enter your choice ╚→ :" /N
set OfficeInfo=%errorlevel%
if %OfficeInfo% == 1 timeout 1 >nul && goto OSArchitectureCheck
if %OfficeInfo% == 2 echo ^| && echo ^| Exiting... && echo ^| && timeout 1 >nul && exit
if %OfficeInfo% == 3 set DebugMode=1 && echo ^| V && timeout 2 >nul && goto OSArchitectureCheck
:OSArchitectureCheck
cls
echo ^|
echo ^| ╠══╦═════════════════════════╦══╣
echo ^| ║ Checking system type... ║
echo ^| ╠══╩═════════════════════════╩══╣
echo ^|
for /f "tokens=2 delims==" %%i in ('wmic os get osarchitecture /value') do (set OSArchitecture=%%i)
if "%OSArchitecture%"=="32-bit" (set OfficeEdition=32
) else (set OfficeEdition=64)
echo ^| OS is %OfficeEdition%-Bit
timeout 2 >nul && goto OfficeSelect
:OfficeSelect
cls && set Groove=1
echo ^|
echo ^| ╠══╦═══════════════════════════════════════════════════╦══╣
echo ^| ║ Select the version of Office you want to install. ║
echo ^| ╠═══╦═══════════════════════════╗ ║
echo ^| ║ 1 ║ Office LTSC Pro Plus 2024 ║ ║
echo ^| ║ 2 ║ Office LTSC Standart 2024 ║ ║
echo ^| ║ 3 ║ Office LTSC Pro Plus 2021 ║ ║
echo ^| ║ 4 ║ Office LTSC Standart 2021 ║ ║
echo ^| ║ 5 ║ Office Pro Plus 2019 ║ ║
echo ^| ║ 6 ║ Office Standart 2019 ║ ║
echo ^| ║ 7 ║ Office Pro Plus 2016 ║ ║
echo ^| ║ 8 ║ Office Standart 2016 ║ ║
echo ^| ╠══╩═══╩══════════╦════════════════╩═══════════════════╩══╣
echo ^| ║
choice /C:12345678 /M "| Enter your choice ╚→ :" /N
set SelectVer=%errorlevel%
if %SelectVer% == 1 (set UpdateChannel=PerpetualVL2024
set ProductID=ProPlus2024Volume
set ProductKey=XJ2XN-FW8RK-P4HMP-DKDBV-GCVGB
set OfficeVersion=Office LTSC Pro Plus 2024
set ProductIDVS=VisioPro2024Volume
set ProductKeyVS=B7TN8-FJ8V3-7QYCP-HQPMV-YY89G
set ProductIDPR=ProjectPro2024Volume
set ProductKeyPR=FQQ23-N4YCY-73HQ3-FM9WC-76HF4
) else if %SelectVer% == 2 (set UpdateChannel=PerpetualVL2024
set ProductID=Standard2024Volume
set ProductKey=V28N4-JG22K-W66P8-VTMGK-H6HGR
set OfficeVersion=Office LTSC Standart 2024
set ProductIDVS=VisioStd2024Volume
set ProductKeyVS=JMMVY-XFNQC-KK4HK-9H7R3-WQQTV
set ProductIDPR=ProjectStd2024Volume
set ProductKeyPR=PD3TT-NTHQQ-VC7CY-MFXK3-G87F8
) else if %SelectVer% == 3 (set UpdateChannel=PerpetualVL2021
set ProductID=ProPlus2021Volume
set ProductKey=FXYTK-NJJ8C-GB6DW-3DYQT-6F7TH
set OfficeVersion=Office LTSC Pro Plus 2021
set ProductIDVS=VisioPro2021Volume
set ProductKeyVS=KNH8D-FGHT4-T8RK3-CTDYJ-K2HT4
set ProductIDPR=ProjectPro2021Volume
set ProductKeyPR=FTNWT-C6WBT-8HMGF-K9PRX-QV9H8
) else if %SelectVer% == 4 (set UpdateChannel=PerpetualVL2021
set ProductID=Standard2021Volume
set ProductKey=KDX7X-BNVR8-TXXGX-4Q7Y8-78VT3
set OfficeVersion=Office LTSC Standart 2021
set ProductIDVS=VisioStd2021Volume
set ProductKeyVS=MJVNY-BYWPY-CWV6J-2RKRT-4M8QG
set ProductIDPR=ProjectStd2021Volume
set ProductKeyPR=J2JDC-NJCYY-9RGQ4-YXWMH-T3D4T
) else if %SelectVer% == 5 (set UpdateChannel=PerpetualVL2019
set ProductID=ProPlus2019Volume
set ProductKey=XJ2XN-FW8RK-P4HMP-DKDBV-GCVGB
set OfficeVersion=Office Pro Plus 2019
set ProductIDVS=VisioPro2019Volume
set ProductKeyVS=9BGNQ-K37YR-RQHF2-38RQ3-7VCBB
set ProductIDPR=ProjectPro2019Volume
set ProductKeyPR=B4NPR-3FKK7-T2MBV-FRQ4W-PKD2B
) else if %SelectVer% == 6 (set UpdateChannel=PerpetualVL2019
set ProductID=Standard2019Volume
set ProductKey=6NWWJ-YQWMR-QKGCB-6TMB3-9D9HK
set OfficeVersion=Office Standart 2019
set ProductIDVS=VisioStd2019Volume
set ProductKeyVS=7TQNQ-K3YQQ-3PFH7-CCPPM-X4VQ2
set ProductIDPR=ProjectStd2019Volume
set ProductKeyPR=C4F7P-NCP8C-6CQPT-MQHV9-JXD2M
) else if %SelectVer% == 7 (set UpdateChannel=Broad
set ProductID=ProPlusRetail
set ProductKey=CYC3N-BHX8G-QJVJV-H2WWP-BTDRB
set OfficeVersion=Office Pro Plus 2016
set ProductIDVS=VisioProXVolume
set ProductKeyVS=69WXN-MBYV6-22PQG-3WGHK-RM6XC
set ProductIDPR=ProjectProXVolume
set ProductKeyPR=WGT24-HCNMF-FQ7XH-6M8K7-DRTW9
) else if %SelectVer% == 8 (set UpdateChannel=Broad
set ProductID=StandardRetail
set ProductKey=PCCXN-7MKB3-F986V-V6HV4-CR4MR
set OfficeVersion=Office Standart 2016
set ProductIDVS=VisioStdXVolume
set ProductKeyVS=NY48V-PPYYH-3F4PX-XJRKJ-W4423
set ProductIDPR=ProjectStdXVolume
set ProductKeyPR=D8NRQ-JTYM3-7J2DX-646CT-6836M
)
timeout 2 >nul && goto AppsInstall
:AppsInstall
cls && set Access=0 && set Excel=0 && set OneDrive=0 && set OneNote=0 && set Outlook=0 && set PowerPoint=0 && set Project=0 && set Publisher=0 && set Teams=0 && set Visio=0 && set Word=0
echo ^|
echo ^| ╠══╦══════════════════════════════════════════════╦══╣
echo ^| ║ Choice the applications you want to install. ║
echo ^| ╠═══╦════════════╦════╦═══════════╗ ║
echo ^| ║ 1 ║ Access ║ 7 ║ Project ║ ║
echo ^| ║ 2 ║ Excel ║ 8 ║ Publisher ║ ║
echo ^| ║ 3 ║ OneDrive ║ 9 ║ Teams ║ ║
echo ^| ║ 4 ║ OneNote ║ 10 ║ Visio ║ ║
echo ^| ║ 5 ║ Outlook ║ 11 ║ Word ║ ║
echo ^| ║ 6 ║ PowerPoint ║ A ║ Keep all ║ ║
echo ^| ╠══╩═══╩════════════╩════╩═══╦═══════╩════════════╩══╣
echo ^| ║
set /p AppsInstall="| Enter your choices (2 6 etc) ╚→ : "
for %%i in (%AppsInstall%) do (
if %%i==1 (set Access=1
) else if %%i==2 (set Excel=1
) else if %%i==3 (set OneDrive=1
) else if %%i==4 (set OneNote=1
) else if %%i==5 (set Outlook=1
) else if %%i==6 (set PowerPoint=1
) else if %%i==7 (set Project=1
) else if %%i==8 (set Publisher=1
) else if %%i==9 (set Teams=1
) else if %%i==10 (set Visio=1
) else if %%i==11 (set Word=1
) else if %%i==A (set Access=1 && set Excel=1 && set OneDrive=1 && set OneNote=1 && set Outlook=1 && set PowerPoint=1 && set Project=1 && set Publisher=1 && set Teams=1 && set Visio=1 && set Word=1
) else if %%i==a (set Access=1 && set Excel=1 && set OneDrive=1 && set OneNote=1 && set Outlook=1 && set PowerPoint=1 && set Project=1 && set Publisher=1 && set Teams=1 && set Visio=1 && set Word=1
) else (
echo ^|
echo ^| Invalid choice: %%i
echo ^| Exiting...
echo ^| && timeout 3 >nul && exit
)
)
if %DebugMode% == 1 (timeout 1 >nul && goto Debug
) else (timeout 1 >nul && goto ConfigGen)
:Debug
cls && echo ^| Current variable values: && echo ^| Access: %Access% && echo ^| Excel: %Excel% && echo ^| Groove: %Groove% && echo ^| OneDrive: %OneDrive% && echo ^| OneNote: %OneNote% && echo ^| Outlook: %Outlook% && echo ^| PowerPoint: %PowerPoint% && echo ^| Project: %Project% && echo ^| Publisher: %Publisher% && echo ^| Teams: %Teams% && echo ^| Visio: %Visio% && echo ^| Word: %Word% && echo ^| && echo ^| ProductIDPR: %ProductIDPR% && echo ^| ProductKeyPR: %ProductKeyPR% && echo ^| ProductIDVS: %ProductIDVS% && echo ^| ProductKeyVS: %ProductKeyVS% && echo ^| ConfigurationID: %ConfigurationID% && echo ^| UpdateChannel: %UpdateChannel% && echo ^| ProductID: %ProductID% && echo ^| ProductKey: %ProductKey% && echo ^| OfficeVersion: %OfficeVersion% && echo ^| Bits: %OfficeEdition% && echo ^| && echo ^| Press any key to continue...
pause >nul && goto ConfigGen
:ConfigGen
cls
set ConfigPath=%TEMP%\OfficeSetupFiles\Config.xml
echo ^|
echo ^| ╠══╦══════════════════════════════════════╦══╣
echo ^| ║ Generating XML configuration file... ║
echo ^| ╠══╩══════════════════════════════════════╩══╣
echo ^|
(
echo ^<Configuration^>
echo ^<Add OfficeClientEdition="%OfficeEdition%" Channel="%UpdateChannel%"^>
echo ^<Product ID="%ProductID%" PIDKEY="%ProductKey%"^>
echo ^<Language ID="MatchOS" /^>
echo ^<Language ID="en-us" /^>
if %Access%==0 echo ^<ExcludeApp ID="Access"/^>
if %Excel%==0 echo ^<ExcludeApp ID="Excel"/^>
if %Groove%==0 echo ^<ExcludeApp ID="Groove"/^>
echo ^<ExcludeApp ID="Lync"/^>
if %OneDrive%==0 echo ^<ExcludeApp ID="OneDrive"/^>
if %OneNote%==0 echo ^<ExcludeApp ID="OneNote"/^>
if %Outlook%==0 echo ^<ExcludeApp ID="Outlook"/^>
if %PowerPoint%==0 echo ^<ExcludeApp ID="PowerPoint"/^>
if %Publisher%==0 echo ^<ExcludeApp ID="Publisher"/^>
if %Word%==0 echo ^<ExcludeApp ID="Word"/^>
echo ^</Product^>
if %Project%==1 (echo ^<Product ID="%ProductIDPR%" PIDKEY="%ProductKeyPR%"^>
echo ^<Language ID="MatchOS" /^>
echo ^<Language ID="en-us" /^>
if %Access%==0 echo ^<ExcludeApp ID="Access"/^>
if %Excel%==0 echo ^<ExcludeApp ID="Excel"/^>
if %Groove%==0 echo ^<ExcludeApp ID="Groove"/^>
echo ^<ExcludeApp ID="Lync"/^>
if %OneDrive%==0 echo ^<ExcludeApp ID="OneDrive"/^>
if %OneNote%==0 echo ^<ExcludeApp ID="OneNote"/^>
if %Outlook%==0 echo ^<ExcludeApp ID="Outlook"/^>
if %PowerPoint%==0 echo ^<ExcludeApp ID="PowerPoint"/^>
if %Publisher%==0 echo ^<ExcludeApp ID="Publisher"/^>
if %Word%==0 echo ^<ExcludeApp ID="Word"/^>
echo ^</Product^>)
if %Visio%==1 (echo ^<Product ID="%ProductIDVS%" PIDKEY="%ProductKeyVS%"^>
echo ^<Language ID="MatchOS" /^>
echo ^<Language ID="en-us" /^>
if %Access%==0 echo ^<ExcludeApp ID="Access"/^>
if %Excel%==0 echo ^<ExcludeApp ID="Excel"/^>
if %Groove%==0 echo ^<ExcludeApp ID="Groove"/^>
echo ^<ExcludeApp ID="Lync"/^>
if %OneDrive%==0 echo ^<ExcludeApp ID="OneDrive"/^>
if %OneNote%==0 echo ^<ExcludeApp ID="OneNote"/^>
if %Outlook%==0 echo ^<ExcludeApp ID="Outlook"/^>
if %PowerPoint%==0 echo ^<ExcludeApp ID="PowerPoint"/^>
if %Publisher%==0 echo ^<ExcludeApp ID="Publisher"/^>
if %Word%==0 echo ^<ExcludeApp ID="Word"/^>
echo ^</Product^>)
echo ^</Add^>
echo ^<Property Name="SharedComputerLicensing" Value="0" /^>
echo ^<Property Name="FORCEAPPSHUTDOWN" Value="FALSE" /^>
echo ^<Property Name="DeviceBasedLicensing" Value="0" /^>
echo ^<Property Name="SCLCacheOverride" Value="0" /^>
echo ^<Property Name="AUTOACTIVATE" Value="1" /^>
echo ^<Updates Enabled="TRUE" /^>
echo ^<AppSettings^>
echo ^<User Key="software\microsoft\office\16.0\excel\options" Name="defaultformat" Value="51" Type="REG_DWORD" App="excel16" Id="L_SaveExcelfilesas" /^>
echo ^<User Key="software\microsoft\office\16.0\powerpoint\options" Name="defaultformat" Value="27" Type="REG_DWORD" App="ppt16" Id="L_SavePowerPointfilesas" /^>
echo ^<User Key="software\microsoft\office\16.0\word\options" Name="defaultformat" Value="" Type="REG_SZ" App="word16" Id="L_SaveWordfilesas" /^>
echo ^</AppSettings^>
echo ^<Display Level="Full" AcceptEULA="TRUE" /^>
echo ^</Configuration^>
) > %ConfigPath%
if exist %ConfigPath% (echo ^| Configuration saved to ^> %ConfigPath%
) else (
echo ^| Error saving configuration
echo ^| Exiting...
timeout 7 >nul && exit
)
if %DebugMode% == 1 (pause >nul && goto FilesDownload
) else (timeout 1 >nul && goto FilesDownload)
:FilesDownload
set PATH=%TEMP%\OfficeSetupFiles\
set ExtractorPath=%TEMP%\OfficeSetupFiles\OfficeExtracter.exe
set TeamsPath=%TEMP%\OfficeSetupFiles\MSTeamsSetup.exe
set SetupPath=%TEMP%\OfficeSetupFiles\setup.exe
if %DebugMode% == 0 (if %Teams%==1 (cls
echo ^|
echo ^| ╠══╦═════════════════════════════════╦══╣
echo ^| ║ Downloading MSTeamsSetup.exe... ║
echo ^| ╠══╩═════════════════════════════════╩══╣
echo ^|
curl -L -s -o %TeamsPath% https://go.microsoft.com/fwlink/?linkid=2281613&clcid=0x409
if exist %TeamsPath% (echo ^| Successfully downloaded to %TeamsPath%
timeout 1 >nul
start %TeamsPath%
cls
echo ^|
echo ^| ╠══╦══════════════════════╦══╣
echo ^| ║ Downloading Teams... ║
echo ^| ╠══╩══════════════════════╩══╣
echo ^| && timeout 1 >nul && goto TeamsCheckLoop
) else (echo ^| Error downloading MSTeamsSetup.exe.
echo ^| Exiting...
timeout 7 >nul && exit)
) else (timeout 1 >nul && goto OfficeExtracterDownload)
) else (timeout 1 >nul && goto OfficeExtracterDownload)
:TeamsCheckLoop
tasklist /fi "imagename eq MSTeamsSetup.exe" | find /i "MSTeamsSetup.exe" >nul
if errorlevel 1 (taskkill /f /im ms-teams.exe >nul
timeout 2 >nul && del /f %TeamsPath%
goto OfficeExtracterDownload
) else (timeout 1 >nul && goto TeamsCheckLoop)
:OfficeExtracterDownload
cls
echo ^|
echo ^| ╠══╦════════════════════════════════════╦══╣
echo ^| ║ Downloading OfficeExtracter.exe... ║
echo ^| ╠══╩════════════════════════════════════╩══╣
echo ^|
curl -L -s -o %ExtractorPath% https://download.microsoft.com/download/2/7/A/27AF1BE6-DD20-4CB4-B154-EBAB8A7D4A7E/officedeploymenttool_18129-20030.exe
if exist %ExtractorPath% (echo ^| Successfully downloaded to %ExtractorPath%
timeout 1 >nul && goto Extracting
) else (echo ^| Error downloading OfficeExtracter.exe
echo ^| Exiting...
timeout 10 >nul && exit)
:Extracting
cls
echo ^|
echo ^| ╠══╦════════════════════════════╦══╣
echo ^| ║ Extracting Office Files... ║
echo ^| ╠══╩════════════════════════════╩══╣
echo ^|
start %ExtractorPath% /extract:%PATH% /passive /norestart /quiet && goto ExtractingLoop
:ExtractingLoop
tasklist /fi "imagename eq OfficeExtracter.exe" | find /i "OfficeExtracter.exe" >nul
if errorlevel 1 (
timeout 1 >nul && del /f %TEMP%\OfficeSetupFiles\configuration-Office365-x64.xml
timeout 1 >nul && del /f %ExtractorPath%
goto OfficeInstallerStart
) else (
timeout 1 >nul && goto ExtractingLoop)
:OfficeInstallerStart
cls
echo ^|
echo ^| ╠══╦══════════════════════════════╦══╣
echo ^| ║ Starting Office installer... ║
echo ^| ╠══╩══════════════════════════════╩══╣
echo ^|
echo ^| Installer for %OfficeVersion% %OfficeEdition%-Bit has started...
if %DebugMode% == 1 (echo ^| ** && echo start %SetupPath% /configure %ConfigPath% && echo ^| **
) else (start %SetupPath% /configure %ConfigPath%)
timeout 3 >nul
echo ^|
echo ^| Thank you for using my script. Please consider donating to me on Ko-fi: https://ko-fi.com/MaximeriX
echo ^| Press 1 to open the link
echo ^| Press 2 to exit
choice /C:12 /M "| >" /N
set Donation=%errorlevel%
if %Donation% == 1 (start https://ko-fi.com/MaximeriX
) else ( echo ^| Exiting... && timeout 2 >nul && exit)
@endlocal