C'est un script Powershell qui reconstruit un fichier .ISO bootable depuis un Dvd ,dossier ou Iso d'installation windows que l'on aurait décompressé (avec 7zip ou autres..), ou simplement creer depuis un dossier.
Le code
Code : Tout sélectionner
[Console]::WindowWidth = 80
[Console]::WindowHeight = 20
$ver = "1.2"
Write-Host "====================== Création d'un ISO v $ver ======================="
# Vérification de la présence de oscdimg.exe
$oscdimgPath = Join-Path -Path $PSScriptRoot -ChildPath "oscdimg.exe"
if (-not (Test-Path $oscdimgPath)) {
Write-Host "Erreur : La création de l'ISO ne peut pas s'exécuter sans le fichier oscdimg.exe." -ForegroundColor Red
Write-Host "Veuillez vous assurer que oscdimg.exe est présent à l'emplacement : $oscdimgPath"
Write-Host "Appuyez sur une touche pour quitter..." -ForegroundColor Green
[System.Console]::ReadKey() | Out-Null
exit 1
}
# Demander le chemin du dossier source
$sourcePath = Read-Host "Veuillez entrer ou glisser-déposer le chemin complet du dossier d'installation et appuyer sur Entrée"
# Vérifier si le chemin est valide
if (-not (Test-Path $sourcePath)) {
Write-Host "Erreur : Le chemin du dossier source est invalide ou introuvable." -ForegroundColor Red
exit 1
}
Write-Host "Appuyer sur la touche "Entrée" pour continuer"
# Variables
$outputIso = Join-Path -Path $PSScriptRoot -ChildPath "output.iso" # Création de l'ISO dans le même répertoire que le script
$etfsboot = "$sourcePath\boot\etfsboot.com"
$efisys = "$sourcePath\efi\microsoft\boot\efisys.bin"
# Vérification des fichiers nécessaires
if (-not (Test-Path $etfsboot)) {
Write-Host "Erreur : Le fichier de démarrage etfsboot.com est introuvable à l'emplacement : $etfsboot" -ForegroundColor Red
exit 1
}
if (-not (Test-Path $efisys)) {
Write-Host "Erreur : Le fichier de démarrage efisys.bin est introuvable à l'emplacement : $efisys" -ForegroundColor Red
exit 1
}
# Commande à exécuter
$command = "-m -o -u2 -udfver102 -bootdata:2#p0,e,b$etfsboot#pEF,e,b$efisys $sourcePath $outputIso"
# Démarrer le processus
Write-Host "Début de la création de l'ISO ..."
# Créer un processus pour exécuter oscdimg
$process = Start-Process -FilePath $oscdimgPath -ArgumentList $command -NoNewWindow -Wait -PassThru
# Vérifier le code de sortie
if ($process.ExitCode -eq 0) {
Write-Host "Création de l'ISO terminée avec succès !"
# Vérifier si le fichier ISO a été créé
if (Test-Path $outputIso) {
Write-Host "Chemin de l'ISO créé : $outputIso" -ForegroundColor Green
} else {
Write-Host "Erreur : Le fichier ISO n'a pas été trouvé à l'emplacement : $outputIso" -ForegroundColor Red
}
} else {
Write-Host "Échec de la création de l'ISO avec le code de sortie $($process.ExitCode)." -ForegroundColor Red
}
# Message de fermeture pour PowerShell standard
if (-not $psISE) {
Write-Host "Appuyez sur une touche pour fermer..." -ForegroundColor Yellow
[System.Console]::ReadKey() | Out-Null
}
Que fait le script :
- Vérifie la présence du fichier "oscdimg.exe"
- Demande ou se situe le dossier
- Possibilité de glisser-déposer le dossier directement
- Vérifie la présence des fichiers "etfsboot"et "efisys" nécessaire pour recreer un iso windows
- Creer un fichier .Iso nommé "output.iso" dans le meme dossier que le script
- Utilise la dernière version de oscdimg.exe (v.2.56)
- Creer un fichier texte .txt peu importe le nom et enregistrer le code dedans en modifiant l'extension par .ps1 par exemple "creer_iso.ps1"
- Mettre le fichier "oscdimg.exe" dans le meme dossier que le script
- Clic droit sur l'icône du fichier et commande Exécuter avec PowerShell
- Appuyez sur n'importe quelle touche pour fermer le script
- Diminution du cadre du script pour ne pas prendre toute la place de l'écran
- Ajout du numéro de version
- Modification de la couleur de la destination du fichier outpout.iso de sortie
J'ai joint directement le script et le fichier oscdimg.exe (v 2.56) qui provient de l' ADK windows 10 et 11 de mai 2024