[PowerShell] Creer un fichier .Iso à partir d'un dossier d'installation Le sujet est résolu

Vous trouverez ici des scripts pour faciliter la gestion de votre ordinateur. Ils sont proposés tels quels par le rédacteur du message. La team ne vérifie pas la qualité de ces éléments et n'assure pas le support ni la maintenance. Vous les utilisez sous votre seule responsabilité.
Règles du forum
Pour les créateurs de scripts

Veuillez noter que les scripts que vous partagez ici sont proposés tels quels et la team ne vérifie pas leur qualité.
Nous vous rappelons que nous n'assurons ni le support ni la maintenance des scripts publiés.

Pour faciliter leur utilisation par les autres membres de la communauté, respectez ces consignes :
.
  • Utilisez les préfixes de langage pour taguer les messages.
  • Assurez-vous que vos scripts sont clairs et bien documentés
.
Merci de votre compréhension et de votre contribution.
Répondre
Avatar du membre
acideburn
Membre VIP
Membre VIP
Messages : 324
Enregistré le : lun. 6 mai 2024 14:05
A remercié : 97 fois
A été remercié : 129 fois
    Windows 10 Firefox

[PowerShell] Creer un fichier .Iso à partir d'un dossier d'installation

Message par acideburn »

S@lut à tous/tes

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)
Comment s'en servir ?
  1. 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"
  2. Mettre le fichier "oscdimg.exe" dans le meme dossier que le script
  3. Clic droit sur l'icône du fichier et commande Exécuter avec PowerShell
  4. Appuyez sur n'importe quelle touche pour fermer le script
Release v1.2
  • 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
Iso_creer_v1.2.7z
(58.29 Kio) Téléchargé 49 fois
Modifié en dernier par acideburn le mer. 25 déc. 2024 02:56, modifié 14 fois.
Il n'y a pas de problème, seulement des défis à relever, où chaque obstacle devient une opportunité de créer des solutions innovantes et sécurisées
╭══• ೋ•✧๑♡๑✧•ೋ •══╮
Apprendre et Explorer sans limites !
╰══• ೋ•✧๑♡๑✧•ೋ •══╯
Avatar du membre
ace_N_kelly
Membre VIP
Membre VIP
Messages : 1524
Enregistré le : sam. 13 oct. 2018 14:24
Localisation : Québécois ;)
A remercié : 75 fois
A été remercié : 567 fois
    Android Firefox

Re: [PowerShell] Creer un fichier .Iso à partir d'un dossier d'installation

Message par ace_N_kelly »

Comme les isos sont déjà bootable , à quoi sert le script ?
Rejoignable sur Telegram et Discord :116:
Avatar du membre
acideburn
Membre VIP
Membre VIP
Messages : 324
Enregistré le : lun. 6 mai 2024 14:05
A remercié : 97 fois
A été remercié : 129 fois
    Android Firefox

Re: [PowerShell] Creer un fichier .Iso à partir d'un dossier d'installation

Message par acideburn »

Les .isos ne sont pas forcément bootable si il n'y a pas le parametre udf pour la sortie.

Poweriso est un bon choix parmi les autres, de plus qu il intègre les outils Dism. Mais encore un peu lent sur ça. Le tout-en-un a parfois ces default.

De plus qu on gagne un peu en taille avec oscdimg.( la plupart des logiciels iso utilisent cela, mais la taille de sortie dépend de quelques paramètres, dont une amelioration du script pourra se faire encore pour gagner quelques centaines de Mo)

Le script sert apres avoir decompressé un iso windows et de travaillé sur les .wim etc...pour reconstruire un iso rapidement.

Surtout quand on travail en full -Offline qu 'avec des script sans autre outils, . 😊 (edit: j ai modifié le debut du post pour éclaircir un peu mieu ce qu est le script)

Et le fichier oscdimg.exe en prime qui pour le trouver faut installer l ' ADK windows etc...(un peu chia**) .
Il est necessaire aussi pour d autres taches. Donc il est ici now, ça peut servir :116:
Avatar du membre
acideburn
Membre VIP
Membre VIP
Messages : 324
Enregistré le : lun. 6 mai 2024 14:05
A remercié : 97 fois
A été remercié : 129 fois
    Windows 10 Firefox

Re: [PowerShell] Creer un fichier .Iso à partir d'un dossier d'installation

Message par acideburn »

Update v1.2
Avatar du membre
pboulanger
Administrateur du site
Administrateur du site
Messages : 1132
Enregistré le : mar. 17 mars 2020 11:49
A remercié : 108 fois
A été remercié : 111 fois
    Windows 10 Firefox

Re: [PowerShell] Creer un fichier .Iso à partir d'un dossier d'installation

Message par pboulanger »

Bonjour,

Merci pour le partage, c'est cool !

Où est la nouvelle version ? as-tu fait un annule et remplace dans le message initial ou ... ? (pense à expliquer ou la nouvelle version se trouve)

Dans le script à télécharger, si c'est le nouveau, il manque (par rapport au code publié) :

Code : Tout sélectionner

[Console]::WindowWidth = 80
[Console]::WindowHeight = 20
$ver = "1.2"

Bonne journée et de belles fêtes à venir ...
Amicalement,

Pierre
Avatar du membre
acideburn
Membre VIP
Membre VIP
Messages : 324
Enregistré le : lun. 6 mai 2024 14:05
A remercié : 97 fois
A été remercié : 129 fois
    Windows 10 Firefox

Re: [PowerShell] Creer un fichier .Iso à partir d'un dossier d'installation

Message par acideburn »

pboulanger a écrit : sam. 21 déc. 2024 12:28 Bonjour,

Merci pour le partage, c'est cool !

Où est la nouvelle version ? as-tu fait un annule et remplace dans le message initial ou ... ? (pense à expliquer ou la nouvelle version se trouve)

Dans le script à télécharger, si c'est le nouveau, il manque (par rapport au code publié) :

Code : Tout sélectionner

[Console]::WindowWidth = 80
[Console]::WindowHeight = 20
$ver = "1.2"

Bonne journée et de belles fêtes à venir ...
Merci pour le retour, en effet j'avais oublié de joindre la v1.2 au thread a jour :$*

Belles fetes de fins d'années a vous également
Répondre