This commit is contained in:
Peter Reichart 2024-12-04 15:31:23 +01:00
parent 28250542b8
commit 75021ab06f

View File

@ -4,11 +4,11 @@
# Diese Variablen jeweils anpassen: # Diese Variablen jeweils anpassen:
# Installationspfad # Installationspfad
$droot = "C:\isobuilder" $droot = "F:\isobuilder"
# Name und Ort der Qeull-ISO Datei # Name und Ort der Qeull-ISO Datei
$isoFile = "${droot}\Win11_24H2_German_x64.iso" $isoFile = "F:\public\Win11_24H2_German_x64.iso"
# Name und Ort der neu zu erstellenden .ISO # Name und Ort der neu zu erstellenden .ISO
$isoOutfile = "c:\public\Win11_24H2_AE-Edition_x64.iso" $isoOutfile = "F:\public\Win11_24H2_AE-Edition_x64.iso"
# ------------------------------------------------------------------------------- # -------------------------------------------------------------------------------
# Ab hier nichts mehr ändern, außer Du weisst was Du tust! # Ab hier nichts mehr ändern, außer Du weisst was Du tust!
@ -19,6 +19,7 @@ $isoPath = "${droot}\mount\ISO"
$addFiles = "${droot}\addfiles" $addFiles = "${droot}\addfiles"
$wimPath = "${addFiles}\Sources" $wimPath = "${addFiles}\Sources"
$wimInstallIndex = 5
function CreateDirs { function CreateDirs {
New-Item -ItemType Directory -Force -Path "${isoPath}" > $null New-Item -ItemType Directory -Force -Path "${isoPath}" > $null
@ -79,24 +80,30 @@ function ConvertEsd {
dism /export-image /SourceImageFile:${droot}\install.esd /SourceIndex:5 /DestinationImageFile:${droot}\install.wim /Compress:max /CheckIntegrity dism /export-image /SourceImageFile:${droot}\install.esd /SourceIndex:5 /DestinationImageFile:${droot}\install.wim /Compress:max /CheckIntegrity
attrib -R ${droot}\install.wim attrib -R ${droot}\install.wim
} }
function ModifiyBoot { function ModifyBoot {
# füge Treiber in das boot.wim Image ein # füge Treiber in das boot.wim Image ein
Write-Host "Mounte die boot.wim..." Write-Host "Mounte die boot.wim..."
Write-Host "Füge die Treiber unterhalb von drivers\boot in die boot.wim ein..." Write-Host "Füge die Treiber unterhalb von drivers\boot in die boot.wim ein..."
#dism /get-wiminfo /wimfile:${wimPath}\boot.wim #dism /get-wiminfo /wimfile:${wimPath}\boot.wim
DISM /Mount-Wim /WimFile:${wimPath}\boot.wim /Index:1 /MountDir:${droot}\mount\boot DISM /Mount-Wim /WimFile:${wimPath}\boot.wim /Index:2 /MountDir:${droot}\mount\boot
DISM /Image:${droot}\mount\boot /Add-Driver /Driver:${droot}\drivers\boot /recurse /forceunsigned DISM /Image:${droot}\mount\boot /Add-Driver /Driver:${droot}\drivers\boot /recurse /forceunsigned
Write-Host "Trenne boot.wim..." Write-Host "Trenne boot.wim..."
DISM /Unmount-Wim /MountDir:${droot}\mount\boot /Commit DISM /Unmount-Wim /MountDir:${droot}\mount\boot /Commit
} }
function ModifyInstall { function ModifyInstall {
# füge Treiber und Updates in das install.wim Image ein # füge Treiber und Updates in das install.wim Image ein
Write-Host "Extrahiere Index: ${wimINstallIndex} nach install.wim..."
# Zeige die Enthaltenen Windows Editionen
#dism /get-wiminfo /wimfile:${addFiles}\Sources\install.wim
# Extrahiere Edition Windows 11 Pro (Index: 5)
# DISM /Export-Image /SourceImageFile:"${isoPath}\Sources\install.wim" /SourceIndex:${wimInstallIndex} /DestinationImageFile:"${addFiles}\Sources\install.wim"
Write-Host "Mounte die install.wim..." Write-Host "Mounte die install.wim..."
Write-Host "Füge die Treiber unterhalb von drivers\install in die install.wim ein..." Write-Host " Füge die Treiber unterhalb von drivers\install in die install.wim ein..."
#dism /get-wiminfo /wimfile:${addFiles}\Sources\install.wim # Mounte Extrahiertes Image
DISM /Mount-Wim /WimFile:${addFiles}\Sources\install.wim /Index:1 /MountDir:${droot}\mount\install DISM /Mount-Wim /WimFile:${addFiles}\Sources\install.wim /Index:${wimInstallIndex} /MountDir:${droot}\mount\install
DISM /Image:${droot}\mount\install /Add-Driver /Driver:${droot}\drivers\install /recurse /forceunsigned # Arbeite Treiber & Updates ein
DISM /Image:${droot}\mount\install /add-package /PackagePath:${droot}\addfiles\updates DISM /Image:${droot}\mount\install /Add-Driver /Driver:${droot}\drivers\install /recurse /forceunsigned
DISM /Image:${droot}\mount\install /add-package /PackagePath:${droot}\addfiles\updates
Write-Host "Trenne install.wim..." Write-Host "Trenne install.wim..."
DISM /Unmount-Wim /MountDir:${droot}\mount\install /Commit DISM /Unmount-Wim /MountDir:${droot}\mount\install /Commit
} }
@ -113,8 +120,10 @@ function CreateISO {
cp ${addFiles}\* ${workPath} -Recurse -Force cp ${addFiles}\* ${workPath} -Recurse -Force
Write-Host "Erstelle ${isoOutfile} ..." Write-Host "Erstelle ${isoOutfile} ..."
# $toolPath\oscdimg.exe -b"${toolPath}\efisys.bin" -udfver102 -u2 -h -m -o ${workPath} ${droot}\bootable.iso # use bootfile provided by oscdimg
Start-Process -Filepath "$toolPath\oscdimg.exe" -ArgumentList "-b`"${toolPath}\efisys.bin`" -udfver102 -u2 -h -m -o ${workPath} ${isoOutfile}" -Wait -WindowStyle Minimized Start-Process -Filepath "$toolPath\oscdimg.exe" -ArgumentList "-b`"${toolPath}\efisys.bin`" -udfver102 -u2 -h -m -o ${workPath} ${isoOutfile}" -Wait -WindowStyle Minimized
# use bootfile from ISO
Start-Process -Filepath "$toolPath\oscdimg.exe" -ArgumentList "-b`"${isoPath}\efi\microsoft\boot\efisys.bin`" -udfver102 -u2 -h -m -o ${workPath} ${isoOutfile}" -Wait -WindowStyle Minimized
} }
function CleanUp { function CleanUp {
Write-Host "Räume auf..." Write-Host "Räume auf..."
@ -123,15 +132,20 @@ function CleanUp {
DISM /Get-MountedImageInfo DISM /Get-MountedImageInfo
DISM /Get-MountedWimInfo DISM /Get-MountedWimInfo
} }
function CleanBuild {
Write-Host "Räume auf..."
Remove-Item -Path "${workPath}\*" -Force -Recurse
Remove-Item -Path "${isoPath}\*" -Force -Recurse
Remove-Item -Path "${wimPath}\*.wim" -Force
}
<# function RunAll {
CreateDirs
DiscardMounts
CopyIso
ModifyBoot
ModifyInstall
CleanUp
CreateISO
}
DiscardMounts
CreateDirs
CopyIso
ModifyBoot
ModifyInstall
CleanUp
CreateISO
#>