Aktualizace instalačního média IoT Enterprise
V tomto článku nastavíte prostředí aktualizace médií a shromáždíte všechny požadavky potřebné k aktualizaci prostředí WinPE i hlavního operačního systému, nainstalujte ovladače.
Příprava prostředí servisování médií
Spuštění PowerShellu s oprávněními správce.
Tuto instanci PowerShellu používáme pro kompletní proces údržby instalačního média k instalaci aktualizací a v případě potřeby začleníme požadované ovladače, které nejsou součástí instalačního média systému Windows.- Vyberte Spustit
- Zadejte PowerShell.
- Klikněte pravým tlačítkem myši na Windows PowerShell
- Vyberte Spustit jako správce
Vytvoření složek pro ukládání souborů během údržby médií
Pomocí příkazu PowerShellu New_Item vytvořte na počítači technika následující složky pro ukládání souborů potřebných během údržby médií.c:\MediaRefresh: Nadřazená složka pro ukládání souborů během údržby médií.
c:\MediaRefresh\Out: Kopie původního média aktualizována během údržby.
c:\MediaRefresh\Packages\LCU: Nejnovější kumulativní aktualizace c:\MediaRefresh\Packages\SSU: Aktualizace zásobníku údržby v případě potřeby
c:\MediaRefresh\Drivers: Ovladače třetích stran.
c:\MediaRefresh\Scripts: Vlastní instalační skripty. c:\MediaRefresh\WIM: Pracovní adresář pro aktualizaci boot.wim a install.wimmd c:\MediaRefresh\Drivers md c:\MediaRefresh\Out md c:\MediaRefresh\Packages\LCU md c:\MediaRefresh\Packages\SSU md c:\MediaRefresh\Scripts md c:\MediaRefresh\WIM
Kopírování souborů z původních médií
Zkopírujte všechny soubory z původního instalačního média doc:\MediaRefresh\Out
.Pokračujte krokem
b.
, pokud máte fyzické médium, jinak musíte nejprve připojit iso instalace Windows IoT Enterprise pomocí Mount-DiskImage a zobrazit výsledné připojené písmeno jednotky pomocí Get-Volume.Mount-DiskImage -ImagePath <ISO Path> | Get-Volume
Kde
<ISO Path>
je úplná cesta k vašemu ISOPoznamenejte si DriveLetter, protože ho budeme muset použít v dalším kroku.
Zkopírujte soubory z původního instalačního média označeného zde
<DriveLetter>
doc:\MediaRefresh\Out
složky pomocí Robocopy.robocopy <DriveLetter>:\ c:\MediaRefresh\Out /Copy:DT /e
Kde
<DriveLetter>
je písmeno jednotky přidružené k připojenému souboru ISOPřesuňte boot.wim a install.wim z
c:\MediaRefresh\Out\Sources
do složkyc:\MediaRefresh\WIM
, pracovní složku pro aktualizaci souborů WIM pomocí Robocopy.robocopy c:\mediarefresh\out\sources c:\MediaRefresh\WIM *.wim /Mov
Pokud jste pro předchozí příkaz nepřipojili ISO, přejděte k dalšímu kroku, jinak musíte nejprve odpojit instalační ISO Windows IoT Enterprise pomocí Dismount-Diskimage
Dismount-DiskImage -ImagePath <ISO Path>
Kde
<ISO Path>
je plně kvalifikovaná cesta k vašemu souboru ISO.
Shromáždění servisních balíčků
Stáhněte si nejnovější kumulativní soubor služby Microsoft Servicing Update (MSU) do složky
c:\MediaRefresh\Packages\LCU
.Pokud je vyžadována závislost aktualizace zásobníku údržby (MSU), stáhněte ji do
c:\MediaRefresh\Packages\SSU
složky. Následující tabulka vám pomůže najít aktualizace pro vaši konkrétní verzi Windows IoT Enterprise.Uvolnit Verze Historie aktualizací Aktualizovat katalog Windows 11 IoT Enterprise LTSC 2024 [24H2] 26100 Zobrazit historii aktualizací Zobrazit aktualizace x64
Zobrazit aktualizace Arm64Windows 10 IoT Enterprise LTSC 2021 19044 Zobrazit historii aktualizací Zobrazit aktualizace x64
Zobrazit aktualizace Arm64Windows 10 IoT Enterprise LTSC 2019 17763 Zobrazit historii aktualizací Zobrazit aktualizace x64
Zobrazit aktualizace Arm64Windows 10 IoT Enterprise LTSC 2016 14393 Zobrazit historii aktualizací Zobrazit aktualizace x64
Zobrazit aktualizace x86Windows 10 IoT Enterprise LTSC 2015 10240 Zobrazit historii aktualizací Zobrazit aktualizace x64
Zobrazit aktualizace x86[Volitelné] Shromážděte ovladače třetích stran
Umístěte ovladače třetích stran vyžadované pro vaše zařízení v nekomprimované podobě do kořenové složkyc:/MediaRefresh/drivers
nebo jako podsložky proc:/MediaRefresh/drivers
.[Volitelné] Shromáždění konfiguračních skriptů
UmístěteSetupcomplete.cmd
aErrorHandler.cmd
vlastní skripty, které běží během procesu instalace systému Windows nebo po jeho spuštění do složkyc:\MediaRefresh\Scripts
.Další informace najdete v tématu Přidání vlastního skriptu do instalačního programu systému Windows
Aktualizace předinstalačního prostředí Windows (WinPE)
Prostředí Windows Preinstallation Environment (WinPE) je obsaženo v boot.wim
na původním instalačním médiu ve složce \sources
. V této části si projdeme proces aktualizace boot.wim
s nejnovější kumulativní servisní aktualizací a v případě potřeby začleníme ovladače třetích stran do prostředí WinPE pomocí prostředí Media Servicing Environment.
Připojit winPE boot.wim
Prvním krokem při aktualizaci prostředí WinPE je vytvoření dočasné složky s názvem
mounted
podc:\mediarefresh
pomocí příkazu PowerShellu new-itemMD c:\MediaRefresh\mounted
Než budeme moct aktualizovat
boot.wim
, musíme se ujistit, že jeho atribut souboru není nastavený na ReadOnly. Pomocí příkazu PowerShellu Set-ItemProperty odeberte atribut ReadOnly.Set-ItemProperty -Path "c:\mediarefresh\wim\boot.wim" -Name IsReadOnly -Value $false
Teď můžeme připojit image WinPE uloženou v
boot.wim
na indexu 2 pomocí příkazu PowerShellu Mount-WindowsImageMount-WindowsImage -ImagePath "c:\mediarefresh\wim\boot.wim" -Index 2 -Path "c:\mediarefresh\Mounted"
Obsah image WinPE uloženého v
boot.wim
na indexu 2 je nyní možné zobrazit nac:\mediarefresh\mounted
.
použití ovladačů třetích stran na WinPE
Pomocí příkazu PowerShell Add-WindowsDrivernainstalujte do WinPE nac:\mediarefresh\mounted
ovladače třetích stran, které jste shromáždili ve složcec:\mediarefresh\drivers
.Poznámka
Pro účely testování můžete pomocí
-ForceUnsigned
přidat nepodepsané ovladače a přepsat požadavek, aby ovladače měly digitální podpis. Další informace o požadavcích na podepisování ovladačů najdete v tématu Přehled ovladačů zařízení a nasazení.Add-WindowsDriver -Path "c:\mediarefresh\Mounted" -Driver "c:\mediarefresh\drivers" -Recurse
Použití servisních aktualizací pro WinPE
Použijte nejnovější kumulativní aktualizaci a její závislosti, které jste stáhli do složkyc:\mediarefresh\packages
do prostředí WinPE vc:\mediarefresh\mounted
pomocí příkazu PowerShellu Add-WindowsPackage. Dokončení tohoto procesu bude trvat několik minut, ale zajistí, že vaše image Windows už obsahuje nejnovější aktualizaci údržby.Nejprve použijte závislost aktualizace zásobníku údržby.
Add-WindowsPackage -Path "c:\mediarefresh\mounted" -PackagePath "c:\mediarefresh\packages\SSU"
Nyní použijte nejnovější kumulativní aktualizaci.
Add-WindowsPackage -Path "c:\mediarefresh\mounted" -PackagePath "c:\mediarefresh\packages\LCU"
Spropitné
Pokud dojde k chybě 0x800f0823, může mít vaše servisní aktualizace závislost, která se musí použít jako první. Pokud jste si už stáhli její závislost, zkuste spustit předchozí Add-WindowsPackage podruhé. Pokud se tím problém nevyřeší, možná budete muset stáhnout další požadavek na aktualizaci.
- Poznamenejte si kb####### v názvu souboru aktualizace v c:\mediarefresh\packages.
- Vyhledejte na support.microsoft.com pomocí KB#######
- Otevřete první téma, které odpovídá výrazu "předpoklad", a vyhledejte ho.
- Stáhněte všechny uvedené požadavky a spusťte předchozí příkaz Add-WindowsPackage znovu. Mějte na paměti, že možná budete muset příkaz spustit dvakrát, aby se nejprve aplikovaly požadované předpoklady.
- Po vyřešení chyby pokračujte dalším krokem.
Zkopírujte aktualizované
Setup.exe
asetuphost.exe
Než budete pokračovat, zkopírujte aktualizovanésetup.exe
asetuphost.exe
z WinPE nac:\mediarefresh\mounted\sources
doc:\mediarefresh\out\sources
pomocí Robocopy.Nejprve musíme odebrat atribut ReadOnly pro
c:\mediarefresh\mounted\sources\setup.exe
ac:\mediarefresh\mounted\sources\setuphost.exe
pomocí příkazu PowerShell Set-ItemProperty.Set-ItemProperty -Path "c:\mediarefresh\out\sources\setup.exe" -Name IsReadOnly -Value $false Set-ItemProperty -Path "c:\mediarefresh\out\sources\setuphost.exe" -Name IsReadOnly -Value $false
Teď můžeme zkopírovat
setup.exe
asetuphost.exe
zc:\mediarefresh\mounted\sources
doc:\mediarefresh\out\sources
pomocí Robocopy.robocopy c:\mediarefresh\mounted\sources c:\mediarefresh\out\sources setup.exe robocopy c:\mediarefresh\mounted\sources c:\mediarefresh\out\sources setuphost.exe
Odpojte a uložte změny do WinPE
Pokud chcete dokončit proces údržby, uložte změny pomocí příkazu PowerShellu Dismount-WindowsImage.
Důležitý
Před spuštěním příkazu
Dismount-WindowsImage
se ujistěte, že nemáte žádná zobrazení Průzkumníka souborů ani okna příkazů, která zobrazují obsah vc:\mediarefresh\mounted
. Pokud tak neučiníte, dojde při pokusu o odpojení k chybě.Dismount-WindowsImage -path "c:\mediarefresh\mounted" -save
Odstranění dočasné složky
Po úspěšném odpojení souboru boot.wim teď můžeme odebrat dočasnou složku
c:\mediarefresh\mounted
pomocí příkazu PowerShellu Remove-ItemRD c:\MediaRefresh\mounted
Publikovat
Boot.wim
do složkyout
Teď zkopírujte aktualizované
boot.wim
zc:\mediarefresh\wim
doc:\mediarefresh\out\sources
pomocí Robocopy.robocopy c:\mediarefresh\wim c:\mediarefresh\out\sources boot.wim
Prostředí Windows Preinstall Environment (WinPE) uložené na boot.wim
a setup.exe
, obojí umístěné pod c:\mediarefresh\out\sources\
, je plně aktualizováno.
Aktualizace Windows IoT Enterprise
Obraz Windows IoT Enterprise je obsažen v install.wim
na původním instalačním médiu ve složce \sources
. V části Příprava prostředí údržby médií jsme přesunuli install.wim
do pracovní složky. V této části si projdeme proces aktualizace systému install.wim
pomocí nejnovější kumulativní servisní aktualizace a případně začleníme ovladače třetích stran pro cílové zařízení s využitím prostředí pro servis médií . Po dokončení aktualizace rozdělte install.wim
do menších *.swm
souborů, aby je bylo možné zkopírovat na flash disk formátovaný jako FAT32.
Připojte install.wim operačního systému
Prvním krokem při aktualizaci prostředí WinPE je vytvoření dočasné složky s názvem
mounted
vc:\mediarefresh
pomocí příkazu PowerShellu New-Item.MD c:\MediaRefresh\mounted
Než budeme moct aktualizovat soubor install.wim, musíme se ujistit, že jeho atribut souboru není nastavený na ReadOnly. Pomocí příkazu PowerShellu Set-ItemProperty odeberte atribut ReadOnly.
Set-ItemProperty -Path "c:\mediarefresh\wim\install.wim" -Name IsReadOnly -Value $false
Teď můžeme připojit image Windows IoT Enterprise uloženou v souboru install.wim v indexu 2 pomocí příkazu PowerShellu Mount-WindowsImage
Mount-WindowsImage -ImagePath "c:\mediarefresh\wim\install.wim" -Index 2 -Path "c:\mediarefresh\Mounted"
Obsah úložiště obrazů Windows IoT Enterprise v souboru install.wim na indexu 2 lze nyní zobrazit na
c:\mediarefresh\mounted
.
Instalace ovladačů třetích stran
Nainstalujte ovladače třetích stran, které jste shromáždili ve složcec:\mediarefresh\drivers
, do image operačního systému nac:\mediarefresh\mounted
pomocí příkazu PowerShellu Add-WindowsDriver. Parametr-recurse
umožňuje zpracování podsložek.Add-WindowsDriver -Path "c:\mediarefresh\mounted" -Driver "c:\mediarefresh\drivers" -Recurse
Poznámka
Pro účely testování můžete pomocí
-ForceUnsigned
přidat nepodepsané ovladače a přepsat požadavek, aby ovladače měly digitální podpis. Další informace o požadavcích na podepisování ovladačů najdete v tématu Přehled ovladačů zařízení a nasazení.přidání vlastních skriptů instalace
Před přidáním vlastních instalačních skriptů do image operačního systému nejprve vytvořte složku
scripts
podc:\mediarefresh\mounted\windows\setup\
pomocí příkazu PowerShellu New-Item .MD c:\mediarefresh\mounted\windows\setup\scripts
Kopírování skriptů z
c:\mediarefresh\scripts
doc:\mediarefresh\mounted\windows\setup\scripts
pomocí nástroje Robocopy.robocopy c:\mediarefresh\scripts c:\mediarefresh\mounted\windows\setup\scripts *.cmd
Použití servisních balíčků na image operačního systému
Použijte nejnovější kumulativní aktualizaci a její závislosti, které jste stáhli do složkyc:\mediarefresh\packages
do prostředí WinPE vc:\mediarefresh\mounted
pomocí příkazu PowerShellu Add-WindowsPackage.Nejprve použijte závislost aktualizace zásobníku údržby.
Add-WindowsPackage -Path "c:\mediarefresh\mounted" -PackagePath "c:\mediarefresh\packages\SSU"
Nyní použijte nejnovější kumulativní aktualizaci.
Add-WindowsPackage -Path "c:\mediarefresh\mounted" -PackagePath "c:\mediarefresh\packages\LCU"
Spropitné
Pokud dojde k chybě 0x800f0823, může mít vaše servisní aktualizace závislost, která se musí použít jako první. Pokud jste si už stáhli její závislost, zkuste znovu spustit předchozí příkaz Add-WindowsPackage. Pokud se tím problém nevyřeší, možná budete muset stáhnout další požadavek na aktualizaci.
- Poznamenejte si kb####### v názvu souboru aktualizace v c:\mediarefresh\packages.
- Vyhledat support.microsoft.com pomocí KB#######
- Otevřete první téma, které odpovídá výrazu "předpoklad", a vyhledejte ho.
- Stáhněte všechny uvedené požadavky a spusťte výše uvedený příkaz znovu. Mějte na paměti, že možná budete muset příkaz spustit dvakrát, aby se nejprve uplatnil předpoklad.
- Po vyřešení chyby pokračujte dalším krokem.
Uložení a odpojení aktualizované instalace.wim
Pokud chcete dokončit proces údržby, uložte změny pomocí příkazu PowerShellu Dismount-WindowsImage.Důležitý
Před spuštěním příkazu
Dismount-WindowsImage
se ujistěte, že nemáte žádná zobrazení Průzkumníka souborů ani okna příkazů, která zobrazují obsah vc:\mediarefresh\mounted
. Pokud to neuděláte, při pokusu o odpojení dojde k chybě.Dismount-WindowsImage -path "c:\mediarefresh\mounted" -save
Odstranění dočasné složky
mounted
Po úspěšném odpojení souboru boot.wim teď můžeme odebrat dočasnou složkuc:\mediarefresh\mounted
pomocí příkazu PowerShellu Remove-ItemRD c:\mediarefresh\mounted
Rozdělit WIM pro podporu systému souborů FAT32
Aby se zajistilo, že se nový soubor install.wim vejde na flash médium formátovaný jako FAT32, který má maximální velikost souboru 4 GB, rozdělíte soubor Image Systému Windows (install.wim) do sady menších souborů (.swm) s maximální velikostí 4 000 MB pomocí příkazu PowerShellu Split-WindowsImage. Výsledné*.swm
soubory se zapisují do složkyc:\mediarefresh\out\sources
.Split-WindowsImage -ImagePath "c:\mediarefresh\wim\install.wim" -SplitImagePath "c:\mediarefresh\out\sources\install.swm" -FileSize 4000 -CheckIntegrity
Instalační obraz operačního systému, původně uložený jako install.wim
, je nyní uložen pod c:\mediarefresh\out\sources\
jako install.swm
a install2.swm
, které instalační program používá, jako by to byly původní install.wim
.
Kopírování aktualizovaných médií na flash disk
Pokud jste nevytvořili spouštěcí flash disk, udělejte to předtím, než budete pokračovat podle kroků k Instalace Windows z flash disku.
Posledním krokem vytvoření aktualizovaného instalačního média je zkopírování obsahu c:\mediarefresh\out
na spouštěcí flash disk pomocí Robocopy.
robocopy c:\mediarefresh\out <DriveLetter>:\ /e
Kde <DriveLetter>
je písmeno disku přidružené k vašemu USB flash disku
Instalace Windows na nové zařízení
Připojte flash disk k cílovému zařízení.
Zapněte zařízení a stiskněte klávesu, která otevře nabídku výběru spouštěcího zařízení pro počítač, například klávesy Esc/F10/F12. Vyberte možnost, která zařízení spustí z flash disku.
Spustí se instalační program systému Windows. Postupujte podle pokynů k instalaci Windows.
Spropitné
Pokud tento proces na vašem zařízení nefunguje, může být nutné prostudovat si pokyny výrobce zařízení, abyste jej mohli nastavit pro spuštění z flash disku.
Po dokončení počáteční fáze instalace a restartování zařízení se instalační program může spustit znovu od začátku. Pokud se instalační program znovu spustí, zrušte instalaci a vypněte počítač, odeberte flash disk a zapněte zařízení a pokračujte další fází instalace.
Spropitné
Pokud z nějakého důvodu během procesu instalace dojde k chybě, přečtěte si následující články s pokyny k řešení potíží.
Úplný skript
Tato část obsahuje úplný skript, který automaticky provádí jednotlivé kroky údržby médií. Před použitím tohoto skriptu musíte dokončit sekci Příprava prostředí pro servis médií tohoto článku. Jakmile budete připraveni, zkopírujte následující skript PowerShellu do c:\mediarefresh\mediarefresh.ps1.
$LogFile = ".\MediaRefresh.log"
$LogDetail = ".\MediaRefreshDetail.log"
"================================================" >> $LogFile
(get-date).ToString("yyyy-MM-dd HH:mm:ss") + " | Starting MediaRefresh" >> $LogFile
"================================================" >> $LogFile
Write-Host "Updating Boot.wim" -ForegroundColor Blue
(get-date).ToString("yyyy-MM-dd HH:mm:ss") + " | Boot.wim Update Started" >> $LogFile
Write-Host " Preparing to mount boot.wim" -ForegroundColor Blue
(get-date).ToString("yyyy-MM-dd HH:mm:ss") + " | Checking for existing .\Mounted folder" >> $LogFile
if ( -not (Test-Path -Path 'c:\MediaRefresh\mounted' -PathType Container)) {
(get-date).ToString("yyyy-MM-dd HH:mm:ss") + " | Create .\Mounted folder" >> $LogFile
MD c:\MediaRefresh\mounted >> $LogDetail
(get-date).ToString("yyyy-MM-dd HH:mm:ss") + " | Created .\Mounted folder" >> $LogFile
}
else {
(get-date).ToString("yyyy-MM-dd HH:mm:ss") + " | .\Mounted folder already existed" >> $LogFile
}
Write-Host " Setting boot.wim file attributes to read-write" -ForegroundColor Blue
(get-date).ToString("yyyy-MM-dd HH:mm:ss") + " | Setting boot.wim file attributes to read-write" >> $LogFile
Set-ItemProperty -Path "c:\mediarefresh\wim\boot.wim" -Name IsReadOnly -Value $false | out-null
(get-date).ToString("yyyy-MM-dd HH:mm:ss") + " | Set boot.wim file attributes to read-write" >> $LogFile
Write-Host " Mounting boot.wim" -ForegroundColor Blue
(get-date).ToString("yyyy-MM-dd HH:mm:ss") + " | Mount-WindowsImage boot.wim Started" >> $LogFile
Mount-WindowsImage -ImagePath "c:\mediarefresh\wim\boot.wim" -Index 2 -Path "c:\mediarefresh\Mounted" >> $LogDetail
(get-date).ToString("yyyy-MM-dd HH:mm:ss") + " | Mount-WindowsImage boot.wim Completed" >> $LogFile
Write-Host " Installing Drivers" -ForegroundColor Blue
(get-date).ToString("yyyy-MM-dd HH:mm:ss") + " | Add-WindowsDrivers to boot.wim Started" >> $LogFile
Add-WindowsDriver -Path "c:\mediarefresh\mounted" -Driver "c:\mediarefresh\drivers" -Recurse >> $LogDetail
(get-date).ToString("yyyy-MM-dd HH:mm:ss") + " | Add-WindowsDrivers to boot.wim Completed" >> $LogFile
Write-Host " Installing Servicing Stack Update" -ForegroundColor Blue
(get-date).ToString("yyyy-MM-dd HH:mm:ss") + " | Add-WindowsPackage SSU to boot.wim Started" >> $LogFile
Add-WindowsPackage -Path "c:\mediarefresh\mounted" -PackagePath "c:\mediarefresh\packages\SSU" >> $LogDetail
(get-date).ToString("yyyy-MM-dd HH:mm:ss") + " | Add-WindowsPackage SSU to boot.wim Completed" >> $LogFile
Write-Host " Installing Latest Cumulative Update" -ForegroundColor Blue
Write-Host " Note: This process may take several minutes to complete." -ForegroundColor Cyan
(get-date).ToString("yyyy-MM-dd HH:mm:ss") + " | Add-WindowsPackage LCU to boot.wim Started" >> $LogFile
Add-WindowsPackage -Path "c:\mediarefresh\mounted" -PackagePath "c:\mediarefresh\packages\LCU" >> $LogDetail
(get-date).ToString("yyyy-MM-dd HH:mm:ss") + " | Add-WindowsPackage LCU to boot.wim Completed" >> $LogFile
Write-Host " Setting read-write attribute on \out\sources\setup.exe" -ForegroundColor Blue
(get-date).ToString("yyyy-MM-dd HH:mm:ss") + " | Setting \out\sources\setup.exe file attributes to read-write" >> $LogFile
Set-ItemProperty -Path "c:\mediarefresh\out\sources\setup.exe" -Name IsReadOnly -Value $false >> $LogDetail
(get-date).ToString("yyyy-MM-dd HH:mm:ss") + " | Set \out\sources\setup.exe file attributes to read-write" >> $LogFile
Write-Host " Copying updated setup.exe to \out\sources" -ForegroundColor Blue
(get-date).ToString("yyyy-MM-dd HH:mm:ss") + " | Copy updated setup.exe to .\out\sources Started" >> $LogFile
robocopy c:\mediarefresh\mounted\sources c:\mediarefresh\out\sources setup.exe | out-null
(get-date).ToString("yyyy-MM-dd HH:mm:ss") + " | Copy updated setup.exe to .\out\sources Completed" >> $LogFile
Write-Host " Saving and dismounting boot.wim" -ForegroundColor Blue
Write-Host " Note: This process may take several minutes to complete." -ForegroundColor Cyan
(get-date).ToString("yyyy-MM-dd HH:mm:ss") + " | Dismount-WindowsImage boot.wim Started" >> $LogFile
Dismount-WindowsImage -path "c:\mediarefresh\mounted" -save -CheckIntegrity -LogLevel 3 >> $LogDetail
(get-date).ToString("yyyy-MM-dd HH:mm:ss") + " | Dismount-WindowsImage boot.wim Completed" >> $LogFile
Write-Host " Removing \Mounted folder" -ForegroundColor Blue
(get-date).ToString("yyyy-MM-dd HH:mm:ss") + " | Removing .\mounted folder" >> $LogFile
RD c:\mediarefresh\mounted | out-null
(get-date).ToString("yyyy-MM-dd HH:mm:ss") + " | .\mounted folder removed" >> $LogFile
Write-Host " Copying updated boot.wim to \out\sources" -ForegroundColor Blue
(get-date).ToString("yyyy-MM-dd HH:mm:ss") + " | Copy boot.wim to .\out\sources Started" >> $LogFile
robocopy c:\mediarefresh\wim c:\mediarefresh\out\sources boot.wim | out-null
(get-date).ToString("yyyy-MM-dd HH:mm:ss") + " | Copy boot.wim to .\out\sources Completed" >> $LogFile
(get-date).ToString("yyyy-MM-dd HH:mm:ss") + " | Boot.wim Update Completed" >> $LogFile
Write-Host "Updating Boot.wim Complete" -ForegroundColor Blue
Write-Host "Updating Install.wim" -ForegroundColor Blue
(get-date).ToString("yyyy-MM-dd HH:mm:ss") + " | Install.wim Update Started" >> $LogFile
Write-Host " Preparing to mount install.wim" -ForegroundColor Blue
(get-date).ToString("yyyy-MM-dd HH:mm:ss") + " | Checking for existing .\Mounted folder" >> $LogFile
if ( -not (Test-Path -Path 'c:\MediaRefresh\mounted' -PathType Container)) {
(get-date).ToString("yyyy-MM-dd HH:mm:ss") + " | Create .\Mounted folder" >> $LogFile
MD c:\MediaRefresh\mounted >> $LogDetail
(get-date).ToString("yyyy-MM-dd HH:mm:ss") + " | Created .\Mounted folder" >> $LogFile
}
else {
(get-date).ToString("yyyy-MM-dd HH:mm:ss") + " | .\Mounted folder already existed" >> $LogFile
}
Write-Host " Setting read-write attribute on install.wim" -ForegroundColor Blue
(get-date).ToString("yyyy-MM-dd HH:mm:ss") + " | Setting install.wim file attributes to read-write" >> $LogFile
Set-ItemProperty -Path "c:\mediarefresh\wim\install.wim" -Name IsReadOnly -Value $false | out-null
(get-date).ToString("yyyy-MM-dd HH:mm:ss") + " | Set install.wim file attributes to read-write" >> $LogFile
Write-Host " Mounting install.wim" -ForegroundColor Blue
Write-Host " Note: This process may take several minutes to complete." -ForegroundColor Cyan
(get-date).ToString("yyyy-MM-dd HH:mm:ss") + " | Mount-WindowsImage install.wim Started" >> $LogFile
Mount-WindowsImage -ImagePath "c:\mediarefresh\wim\install.wim" -Index 2 -Path "c:\mediarefresh\Mounted" >> $LogDetail
(get-date).ToString("yyyy-MM-dd HH:mm:ss") + " | Mount-WindowsImage install.wim Completed" >> $LogFile
Write-Host " Installing Drivers" -ForegroundColor Blue
(get-date).ToString("yyyy-MM-dd HH:mm:ss") + " | Add-WindowsDrivers to install.wim Started" >> $LogFile
Add-WindowsDriver -Path "c:\mediarefresh\mounted" -Driver "c:\mediarefresh\drivers" -Recurse >> $LogDetail
(get-date).ToString("yyyy-MM-dd HH:mm:ss") + " | Add-WindowsDrivers to install.wim Completed" >> $LogFile
Write-Host " Creating folder \Windows\Setup\Scripts" -ForegroundColor Blue
(get-date).ToString("yyyy-MM-dd HH:mm:ss") + " | Checking for existing \windows\setup\scripts folder" >> $LogFile
if ( -not (Test-Path -Path 'c:\mediarefresh\mounted\windows\setup\scripts' -PathType Container)) {
(get-date).ToString("yyyy-MM-dd HH:mm:ss") + " | Create \windows\setup\scripts folder" >> $LogFile
MD c:\mediarefresh\mounted\windows\setup\scripts >> $LogDetail
(get-date).ToString("yyyy-MM-dd HH:mm:ss") + " | Created \windows\setup\scripts folder" >> $LogFile
}
else {
(get-date).ToString("yyyy-MM-dd HH:mm:ss") + " | \windows\setup\scripts already existed" >> $LogFile
}
Write-Host " Copying Scripts to \Windows\Setup\Scripts" -ForegroundColor Blue
(get-date).ToString("yyyy-MM-dd HH:mm:ss") + " | Copy scripts to \windows\setup\scripts Started" >> $LogFile
robocopy c:\mediarefresh\scripts c:\mediarefresh\mounted\windows\setup\scripts *.cmd | out-null
(get-date).ToString("yyyy-MM-dd HH:mm:ss") + " | Copy scripts to \windows\setup\scripts Completed" >> $LogFile
Write-Host " Installing Servicing Stack Update" -ForegroundColor Blue
(get-date).ToString("yyyy-MM-dd HH:mm:ss") + " | Add-WindowsPackage SSU to install.wim Started" >> $LogFile
Add-WindowsPackage -Path "c:\mediarefresh\mounted" -PackagePath "c:\mediarefresh\packages\SSU" >> $LogDetail
(get-date).ToString("yyyy-MM-dd HH:mm:ss") + " | Add-WindowsPackage SSU to install.wim Completed" >> $LogFile
Write-Host " Installing Latest Cumulative Update" -ForegroundColor Blue
Write-Host " Note: This process may take several minutes to complete." -ForegroundColor Cyan
(get-date).ToString("yyyy-MM-dd HH:mm:ss") + " | Add-WindowsPackage LCU to install.wim Started" >> $LogFile
Add-WindowsPackage -Path "c:\mediarefresh\mounted" -PackagePath "c:\mediarefresh\packages\LCU" >> $LogDetail
(get-date).ToString("yyyy-MM-dd HH:mm:ss") + " | Add-WindowsPackage LCU to install.wim Completed" >> $LogFile
Write-Host " Saving and dismounting install.wim" -ForegroundColor Blue
Write-Host " Note: This process may take several minutes to complete." -ForegroundColor Cyan
(get-date).ToString("yyyy-MM-dd HH:mm:ss") + " | Dismount-WindowsImage install.wim Started" >> $LogFile
Dismount-WindowsImage -path "c:\mediarefresh\mounted" -save -CheckIntegrity -LogLevel 3 >> $LogDetail
(get-date).ToString("yyyy-MM-dd HH:mm:ss") + " | Dismount-WindowsImage install.wim Completed" >> $LogFile
Write-Host " Removing \Mounted folder" -ForegroundColor Blue
(get-date).ToString("yyyy-MM-dd HH:mm:ss") + " | Removing .\mounted folder" >> $LogFile
RD c:\mediarefresh\mounted | out-null
(get-date).ToString("yyyy-MM-dd HH:mm:ss") + " | .\mounted folder removed" >> $LogFile
Write-Host "Updating Install.wim Complete" -ForegroundColor Blue
(get-date).ToString("yyyy-MM-dd HH:mm:ss") + " | Install.wim Update Completed" >> $LogFile
Write-Host "Splitting Install.wim" -ForegroundColor Blue
Write-Host " Note: This process may take several minutes to complete." -ForegroundColor Cyan
(get-date).ToString("yyyy-MM-dd HH:mm:ss") + " | Split-WindowsImage Started" >> $LogFile
Split-WindowsImage -ImagePath "c:\mediarefresh\wim\install.wim" -SplitImagePath "c:\mediarefresh\out\sources\install.swm" -FileSize 4000 -CheckIntegrity >> $LogDetail
(get-date).ToString("yyyy-MM-dd HH:mm:ss") + " | Split-WindowsImage Completed" >> $LogFile
Write-Host "Update Complete" -ForegroundColor Blue
Write-Host "Copy contents of c:\mediarefresh\out to your flash drive" -ForegroundColor Blue
Další zdroje informací
- instalační médium systému Windows Update pomocí dynamické aktualizace
- přehled spouštění a instalace windows
- Přidání jazyků do instalačního programu systému Windows