Dateien nach "/" hochladen

This commit is contained in:
Peter Reichart 2024-12-04 11:13:18 +00:00
parent 7baa848965
commit 7ad5ed602b

View File

@ -1,131 +1,137 @@
# #
# Treiber in ein Windows # Treiber in ein Windows
# #
# Diese Variablen jeweils anpassen: # Diese Variablen jeweils anpassen:
# Installationspfad # Installationspfad
$droot = "C:\win11_slipstream" $droot = "C:\win11_slipstream"
# Name und Ort der Qeull-ISO Datei # Name und Ort der Qeull-ISO Datei
$isoFile = "${droot}\Win11_24H2_German_x64.iso" $isoFile = "${droot}\Win11_24H2_German_x64.iso"
# Name und Ort der neu zu erstellenden .ISO
# ------------------------------------------------------------------------------- $isoOutfile = "c:\public\Win11_24H2_AE-Edition_x64.iso"
# Ab hier nichts mehr ändern, außer Du weisst was Du tust!
# ------------------------------------------------------------------------------- # -------------------------------------------------------------------------------
$workPath = "${droot}\mount\work" # Ab hier nichts mehr ändern, außer Du weisst was Du tust!
$toolPath = "${droot}\tools" # -------------------------------------------------------------------------------
$isoPath = "${droot}\mount\ISO" $workPath = "${droot}\mount\work"
$addFiles = "${droot}\addfiles" $toolPath = "${droot}\tools"
$wimPath = "${addFiles}\Sources" $isoPath = "${droot}\mount\ISO"
$addFiles = "${droot}\addfiles"
$wimPath = "${addFiles}\Sources"
function CreateDirs {
New-Item -ItemType Directory -Force -Path "${isoPath}" > $null
New-Item -ItemType Directory -Force -Path "${workPath}" > $null function CreateDirs {
New-Item -ItemType Directory -Force -Path "${addfiles}" > $null New-Item -ItemType Directory -Force -Path "${isoPath}" > $null
New-Item -ItemType Directory -Force -Path "${addfiles}\Updates" > $null New-Item -ItemType Directory -Force -Path "${workPath}" > $null
New-Item -ItemType Directory -Force -Path "${addfiles}\Sources" > $null New-Item -ItemType Directory -Force -Path "${addfiles}" > $null
New-Item -ItemType Directory -Force -Path "${wimpath}" > $null New-Item -ItemType Directory -Force -Path "${addfiles}\Updates" > $null
New-Item -ItemType Directory -Force -Path "${droot}\mount\boot" > $null New-Item -ItemType Directory -Force -Path "${addfiles}\Sources" > $null
New-Item -ItemType Directory -Force -Path "${droot}\mount\install" > $null New-Item -ItemType Directory -Force -Path "${wimpath}" > $null
New-Item -ItemType Directory -Force -Path "${droot}\drivers\boot" > $null New-Item -ItemType Directory -Force -Path "${droot}\mount\boot" > $null
New-Item -ItemType Directory -Force -Path "${droot}\drivers\install" > $null New-Item -ItemType Directory -Force -Path "${droot}\mount\install" > $null
} New-Item -ItemType Directory -Force -Path "${droot}\drivers\boot" > $null
function DiscardMounts { New-Item -ItemType Directory -Force -Path "${droot}\drivers\install" > $null
Write-Host "Lösche eventuelle Mounts" }
DISM /Unmount-Wim /MountDir:${droot}\mount\boot /Discard function DiscardMounts {
DISM /Unmount-Wim /MountDir:${droot}\mount\install /Discard Write-Host "Lösche eventuelle Mounts"
} DISM /Unmount-Wim /MountDir:${droot}\mount\boot /Discard
function CopyIso { DISM /Unmount-Wim /MountDir:${droot}\mount\install /Discard
Write-Host "Es wird die Datei ${isoFile} als Vorlage verwendet!" }
# mountet eine Windows .ISO Datei und merkt sich den Laufwerksbuchstaben ----------------------------- function CopyIso {
$mountResult = Mount-DiskImage -ImagePath $isoFile -PassThru Write-Host "Es wird die Datei ${isoFile} als Vorlage verwendet!"
$driveLetter = ($mountResult | Get-Volume).DriveLetter # mountet eine Windows .ISO Datei und merkt sich den Laufwerksbuchstaben -----------------------------
Write-Host "Mounte .ISO Datei nach ${driveLetter}: ..." $mountResult = Mount-DiskImage -ImagePath $isoFile -PassThru
$driveLetter = ($mountResult | Get-Volume).DriveLetter
# Kopiert die ISO auf das lokale Laufwerk ------------------------------------------------------------ Write-Host "Mounte .ISO Datei nach ${driveLetter}: ..."
Write-Host "Kopiere Inhalt der .ISO ..."
New-Item -ItemType Directory -Force -Path "$isoPath" > $null # Kopiert die ISO auf das lokale Laufwerk ------------------------------------------------------------
Copy-Item -Path "${driveLetter}:\*" -Destination "$isoPath" -Recurse -Force Write-Host "Kopiere Inhalt der .ISO ..."
New-Item -ItemType Directory -Force -Path "$isoPath" > $null
if(-not(Test-Path "${wimPath}\boot.wim")) Copy-Item -Path "${driveLetter}:\*" -Destination "$isoPath" -Recurse -Force
{
Write-Host "Kopiere boot.wim ..." if(-not(Test-Path "${wimPath}\boot.wim"))
cp ${driveLetter}:\sources\boot.wim ${wimPath} {
attrib -R ${wimPath}\boot.wim Write-Host "Kopiere boot.wim ..."
} else { cp ${driveLetter}:\sources\boot.wim ${wimPath}
Write-Host "boot.wim ist bereits vorhanden und wird übersprungen." attrib -R ${wimPath}\boot.wim
} } else {
if(-not(Test-Path "${wimPath}\install.wim")) Write-Host "boot.wim ist bereits vorhanden und wird übersprungen."
{ }
Write-Host "Kopiere install.wim..." if(-not(Test-Path "${wimPath}\install.wim"))
cp ${driveLetter}:\sources\install.wim ${wimPath} {
attrib -R ${wimPath}\install.wim Write-Host "Kopiere install.wim..."
} else { cp ${driveLetter}:\sources\install.wim ${wimPath}
Write-Host "install.wim ist bereits vorhanden und wird übersprungen." attrib -R ${wimPath}\install.wim
} } else {
Write-Host "install.wim ist bereits vorhanden und wird übersprungen."
Write-Host "Kopieren abgeschlossen." }
# Trenne .ISO Datei ---------------------------------------------------------------------------------- Write-Host "Kopieren abgeschlossen."
Write-Host "Trenne .ISO Datei..."
Dismount-DiskImage -ImagePath $isoFile # Trenne .ISO Datei ----------------------------------------------------------------------------------
} Write-Host "Trenne .ISO Datei..."
function ConvertEsd { Dismount-DiskImage -ImagePath $isoFile
# Achtung! Funktion ist unfertig! }
Write-Host "Konvertiere install.esd nach install.wim..." function ConvertEsd {
dism /get-wiminfo /wimfile:${droot}\install.esd # Achtung! Funktion ist unfertig!
dism /export-image /SourceImageFile:${droot}\install.esd /SourceIndex:5 /DestinationImageFile:${droot}\install.wim /Compress:max /CheckIntegrity Write-Host "Konvertiere install.esd nach install.wim..."
attrib -R ${droot}\install.wim dism /get-wiminfo /wimfile:${droot}\install.esd
} dism /export-image /SourceImageFile:${droot}\install.esd /SourceIndex:5 /DestinationImageFile:${droot}\install.wim /Compress:max /CheckIntegrity
function ModifiyBoot { attrib -R ${droot}\install.wim
# füge Treiber in das boot.wim Image ein }
Write-Host "Mounte die boot.wim..." function ModifiyBoot {
Write-Host "Füge die Treiber unterhalb von drivers\boot in die boot.wim ein..." # füge Treiber in das boot.wim Image ein
#dism /get-wiminfo /wimfile:${wimPath}\boot.wim Write-Host "Mounte die boot.wim..."
DISM /Mount-Wim /WimFile:${wimPath}\boot.wim /Index:1 /MountDir:${droot}\mount\boot Write-Host "Füge die Treiber unterhalb von drivers\boot in die boot.wim ein..."
DISM /Image:${droot}\mount\boot /Add-Driver /Driver:${droot}\drivers\boot /recurse /forceunsigned #dism /get-wiminfo /wimfile:${wimPath}\boot.wim
Write-Host "Trenne boot.wim..." DISM /Mount-Wim /WimFile:${wimPath}\boot.wim /Index:1 /MountDir:${droot}\mount\boot
DISM /Unmount-Wim /MountDir:${droot}\mount\boot /Commit DISM /Image:${droot}\mount\boot /Add-Driver /Driver:${droot}\drivers\boot /recurse /forceunsigned
} Write-Host "Trenne boot.wim..."
function ModifyInstall { DISM /Unmount-Wim /MountDir:${droot}\mount\boot /Commit
# füge Treiber und Updates in das install.wim Image ein }
Write-Host "Mounte die install.wim..." function ModifyInstall {
Write-Host "Füge die Treiber unterhalb von drivers\install in die install.wim ein..." # füge Treiber und Updates in das install.wim Image ein
#dism /get-wiminfo /wimfile:${addFiles}\Sources\install.wim Write-Host "Mounte die install.wim..."
DISM /Mount-Wim /WimFile:${addFiles}\Sources\install.wim /Index:1 /MountDir:${droot}\mount\install Write-Host "Füge die Treiber unterhalb von drivers\install in die install.wim ein..."
DISM /Image:${droot}\mount\install /Add-Driver /Driver:${droot}\drivers\install /recurse /forceunsigned #dism /get-wiminfo /wimfile:${addFiles}\Sources\install.wim
DISM /Image:${droot}\mount\install /add-package /PackagePath:${droot}\addfiles\updates DISM /Mount-Wim /WimFile:${addFiles}\Sources\install.wim /Index:1 /MountDir:${droot}\mount\install
Write-Host "Trenne install.wim..." DISM /Image:${droot}\mount\install /Add-Driver /Driver:${droot}\drivers\install /recurse /forceunsigned
DISM /Unmount-Wim /MountDir:${droot}\mount\install /Commit DISM /Image:${droot}\mount\install /add-package /PackagePath:${droot}\addfiles\updates
} Write-Host "Trenne install.wim..."
function CreateISO { DISM /Unmount-Wim /MountDir:${droot}\mount\install /Commit
Write-Host "Erstelle neues Windows-Image ..." }
Write-Host " kopiere originale ISO Dateien ..." function CreateISO {
cp ${isoPath}\* ${workPath} -Recurse -Force Write-Host "Erstelle neues Windows-Image ..."
Write-Host " kopiere zusäzliche Dateien ..." Write-Host " lösche Work-Verzeichnis ..."
cp ${addFiles}\* ${workPath} -Recurse -Force Remove-Item -Path "${workPath}\*" -Force -Recurse
Write-Host "Erstelle bootable.iso ..." Write-Host " kopiere originale ISO Dateien ..."
# $toolPath\oscdimg.exe -b"${toolPath}\efisys.bin" -udfver102 -u2 -h -m -o ${workPath} ${droot}\bootable.iso cp ${isoPath}\* ${workPath} -Recurse -Force
Start-Process -Filepath "$toolPath\oscdimg.exe" -ArgumentList "-b`"${toolPath}\efisys.bin`" -udfver102 -u2 -h -m -o ${workPath} ${droot}\bootable.iso"
} Write-Host " kopiere zusäzliche Dateien ..."
function CleanUp { cp ${addFiles}\* ${workPath} -Recurse -Force
Write-Host "Räume auf..."
# HKLM\SOFTWARE\Microsoft\WIMMount\mounted images\ Write-Host "Erstelle ${isoOutfile} ..."
DISM /Cleanup-Wim # $toolPath\oscdimg.exe -b"${toolPath}\efisys.bin" -udfver102 -u2 -h -m -o ${workPath} ${droot}\bootable.iso
DISM /Get-MountedImageInfo Start-Process -Filepath "$toolPath\oscdimg.exe" -ArgumentList "-b`"${toolPath}\efisys.bin`" -udfver102 -u2 -h -m -o ${workPath} ${isoOutfile}" -Wait -WindowStyle Minimized
DISM /Get-MountedWimInfo }
} function CleanUp {
Write-Host "Räume auf..."
<# # HKLM\SOFTWARE\Microsoft\WIMMount\mounted images\
DISM /Cleanup-Wim
DiscardMounts DISM /Get-MountedImageInfo
CreateDirs DISM /Get-MountedWimInfo
CopyIso }
ModifyBoot
ModifyInstall <#
CleanUp
CreateISO DiscardMounts
CreateDirs
#> CopyIso
ModifyBoot
ModifyInstall
CleanUp
CreateISO
#>