offecho off & title MediaCreationTool.bat por AveYo
:: Invólucro universal para todas as versões “RedStone”: 1607, 1703, 1709, 1803 e 1809
:: Usando nada além de arquivos originais hospedados pela Microsoft para as versões atuais e passadas do Windows 10 MCT
:: Suporte completo engenhoso para a criação de canal de negócios (Enterprise) com linguagem personalizada, x86, x64 ou AIO!
:: Adicione / remova os parâmetros de inicialização abaixo, se necessário – é esperado o menor número de problemas ao fazer atualizações
defina “OPÇÕES = / Desativação de telemetria / Desativação dinâmica de atualização / MigrateDrivers all / ResizeRecoveryPartition disable / ShowOOBE none”
:: Não comentado para mostrar o log do console mct ao vivo para depuração
conjunto de opções “OPTIONS =% OPTIONS% / Console”
:: Descomente para ignorar a opção de diálogo da GUI e codificar a versão de destino: 1 = 1607, 2 = 1703, 3 = 1709, 4 = 1803, 5 = 1809
conjunto de rem / a MCT_VERSION = 5
:: Versões disponÃveis do MCT
definir versões = 1607 [ RedStone 1 ]1703 [ RedStone 2 ]1709 [ RedStone 3 ], 1803 [ RedStone 4 ], 1809 [ RedStone 5 ]
:: Mostrar diálogo da GUI% 1: tÃtulo% 2: cabeçalho% 3: escolhas% ​​4: variável de saÃda
se não definido, chamada MCT_VERSION: escolha “MediaCreationTool.bat by AveYo” “Escolha a versão do Windows 10” “%%%%” MCT_VERSION
se não definido MCT_VERSION eco Não MCT_VERSION selecionado, saindo .. & timeout / t 5 & exit / b
para a versão% MCT_VERSION%
: version1 1607 [RS1]
defina “V = 1607”
definir “D = 20170116”
defina “EULA = https: //wscont.apps.microsoft.com/winstore/OSUpgradeNotification/MediaCreationTool/prod”
definir “EULA_FIX = https: //download.microsoft.com/download/C/0/3/C036B882-9F99-4BC9-A4B5-69370C4E17E9”
defina “CAB = https: //wscont.apps.microsoft.com/winstore/OSUpgradeNotification/MediaCreationTool/prod/Products_20170116.cab”
definir “MCT = http: //download.microsoft.com/download/C/F/9/CF9862F9-3D22-4811-99E7-68CE3327DAE6/MediaCreationTool.exe”
eco Versão% V %% D% selecionada!
ir ao processo
: version2 1703 [RS2]
defina “V = 1703”
definir “D = 20170317”
defina “EULA = https: //wscont.apps.microsoft.com/winstore/OSUpgradeNotification/MediaCreationTool/prod”
definir “EULA_FIX = https: //download.microsoft.com/download/C/0/3/C036B882-9F99-4BC9-A4B5-69370C4E17E9”
definir “CAB = http: //download.microsoft.com/download/9/5/4/954415FD-D9D7-4E1F-8161-41B3A4E03D5E/products_20170317.cab”
definir “MCT = http: //download.microsoft.com/download/1/C/4/1C41BC6B-F8AB-403B-B04E-C96ED60474888/MediaCreationTool.exe”
:: 1703 O MCT também está com erros; portanto, use 1607
definir “MCT = http: //download.microsoft.com/download/C/F/9/CF9862F9-3D22-4811-99E7-68CE3327DAE6/MediaCreationTool.exe”
eco Versão% V %% D% selecionada!
ir ao processo
: version3 1709 [RS3]
defina “V = 1709”
definir “D = 20180105”
defina “EULA =”
definir “CAB = https: //download.microsoft.com/download/3/2/3/323D0F94-95D2-47DE-BB83-1D4AC3331190/products_20180105.cab”
configure “MCT = http: //download.microsoft.com/download/A/B/E/ABEE70FE-7DE8-472A-8893-5F69947DE0B1/MediaCreationTool.exe”
eco Versão% V %% D% selecionada!
ir ao processo
: version4 1803 [RS4]
defina “V = 1803”
definir “D = 20180420”
defina “EULA =”
definir “CAB = https: //download.microsoft.com/download/6/2/6/626729CF-8C1C-43DF-8C9C-AD2FD56948C3/products_20180420.cab”
defina “MCT = https: //software-download.microsoft.com/download/pr/MediaCreationTool1803.exe”
eco Versão% V %% D% selecionada!
ir ao processo
: version5 1809 [RS5]
defina “V = 1809”
definir “D = 20180924”
defina “EULA =”
definir “CAB = https: //download.microsoft.com/download/6/F/B/6FB97F08-E010-48A4-A9DC-18FCA920CEB4/products_20180924.cab”
defina “MCT = https: //software-download.microsoft.com/download/pr/MediaCreationTool1809.exe”
eco Versão% V %% D% selecionada!
ir ao processo
: processo
eco.
Aviso: O MCT depende do serviço BITS! Se houver algum problema, execute o script como Admin.
bitsadmin.exe / reset / allusers 2> nul
bits de parada lÃquida / y 2> nul
bits iniciais de rede / y 2> nul
:: cleanup – também pode incluir arquivos temporários, mas não é aconselhável, pois você não pode continuar via C: $ Windows. ~ WS Sources setuphost
pushd “% ~ dp0”
del / f / q produtos. * 2> n / e rd / s / q C: $ Windows. ~ WS 2> n / d / s / q C: $ WINDOWS. ~ BT 2> nul
:: baixar MCT
defina “WEBCLIENT =[Net.ServicePointManager]:: SecurityProtocol = “tls12, tls11, tls”; (novo objeto System.Net.WebClient) “
se não existir MediaCreationTool% V% .exe powershell -noprofile -c “% WEBCLIENT% .DownloadFile (‘% MCT%’, ‘MediaCreationTool% V% .exe’);”
se não existir MediaCreationTool% V% .exe color 0c & echo Erro! faltando MediaCreationTool% V% .exe e pausar e sair / b
:: baixar CAB
se não existir produtos_% D% .cab powerShell -noprofile -c “% WEBCLIENT% .DownloadFile (‘% CAB%’, ‘produtos_% D% .cab’);”
se não existir products_% D% .cab color 0c & echo Erro! produtos ausentes_% D% .cab & pause & exit / b
:: desembalar CAB
expand.exe -R produtos_% D% .cab -F: *. > nul 2> nul
se não existir products.xml color 0c & echo Erro! produtos ruins ou ausentes_% D% .cab & pause & exit / b
:: Patch XML para permitir a seleção de edições de canal de negócios (Enterprise) e uma pequena correção cosmética
defina “READ_XML = $ f =[System.IO.File]:: ReadAllText (‘produtos.xml’) “
defina “WRITE_XML =[System.IO.File]:: WriteAllText (‘produtos.xml’, $ f) “
set “r1 = $ f = $ f.Replace (‘IsRetailOnly> True< ','IsRetailOnly>Falso <') "
definir “r2 = .Replace (‘%% ENTERPRISE’, ‘Windows 10 Enterprise’)”
:: consertar links antigos do EULA quebrando o MCT em 1607 e 1703
se não definido EULA (conjunto “r3 =”) ou conjunto “r3 =. Substitua (‘% EULA%’, ‘% EULA_FIX%’)”
powershell -c “% READ_XML%;% r1 %% r2 %% r3%;% WRITE_XML%;”
:: reembalar XML no CAB
start “” / wait makecab products.xml products.cab
:: finalmente inicie o MCT com configuração local e opções de inicialização opcionais
start “” MediaCreationTool% V% .exe / Selfhost% OPTIONS%
exit / b
:: Serviços de utilidade pública
:: ——————————————————– ———————————————————- —————————-
: escolha% 1: tÃtulo% 2: cabeçalho% 3: escolhas% ​​4: output_variable [GUI radioboxes dialog snippet by AveYo] liberado sob licença MIT
setlocal & set “parâmetros = $ title =”% ~ 1 “; $ header =”% ~ 2 “; $ options =”% ~ 3 “; $ global: c =” “;”
definir “s1 =[void][System.Reflection.Assembly]:: LoadWithPartialName (‘System.Windows.Forms’); $ f = Novo Objeto System.Windows.Forms.Form “
set “s2 =; $ f.Text = $ title; $ f.Forecolor =” Neve “; $ f.BackColor = 0xff180052; $ f.StartPosition = ‘CenterScreen’; $ f.AutoSize = $ true;”
set “s3 = $ g = Novo sistema de objetos.Windows.Forms.GroupBox; $ g.Location = ’40, 10 ‘; $ g.Margin =’ 0,0,40,0 ‘; $ g.MinimumSize =” 280.100 “;”
set “s4 = $ g.AutoSize = $ true; $ g.text = $ header; $ f.Controls.Add ($ g);”
set “s5 = $ i = 1; foreach ($ l em $ options.split (‘,’)) {$ r = Novo sistema de objetos.Windows.Forms.RadioButton; $ r.Location = ’20, ‘+ ( 30 * $ i); “
set “s6 = $ r.Name = $ i; $ r.Text = $ l; $ r.AutoSize = $ true; $ r.add_Click (global $ global: c = $ this.Name}); $ g.Controls .Add ($ r); $ r.Checked = 1; $ i ++}; “
set “s7 = $ j = 1; foreach ($ t em @ (‘OK’, ‘Exit’)) {$ b = Novo sistema de objetos.Windows.Forms.Button; $ b.Location = ” + (120 * ($ j-1) +80) + ‘,’ + 40 * $ i; “
set “s8 = $ b.Name =” b “+ $ j; $ b.Text = $ t; $ b.DialogResult = $ j; if ($ j -eq 1) {$ f.AcceptButton = $ b}; $ f.Controls.Add ($ b); $ j ++}; “
set “s9 = $ f.Add_Shown ({$ f.Activate ()}); $ ret = $ f.ShowDialog (); if ($ ret-eq 2) {$ global: c =” “}; host de gravação $ global: c “
para / l %% # em (1,1,9) o conjunto de chamadas “ps_Choice = %% ps_Choice %%%%% s %% #:” = “%%”
para / f “tokens usebackq = * delims =” %% # in (`powershell -noprofile -c”% parâmetros %% ps_Choice% “` `)) configure” output_var = %% # #
endlocal e definir “% ~ 4 =% output_var%” e sair / b
:: ——————————————————– ———————————————————- —————————-