Deploying .iso files for Win Upgrade



  • Wei

    You can push the .ISO to the target and mount it with Mount-DiskImage -ImagePath "$:\$path\$yourISO.iso" then pull the drive letter with (Get-DiskImage "$:\$path\$yourISO.iso" | Get-Volume).DriveLetter and use it in your installation script.

    If you can't push the .ISO out easily with PDQ, you can put it on a web server and use 'Start-BitsTransfer' to pull the file.

    Comment actions Permalink
  • Patrick Pierce

    If you don't want to use .ISO, you should be able to extract the contents and copy those files to the machine. Then run "setup.exe /auto upgrade /quiet /compat IgnoreWarning"

    That will upgrade the machine without prompt, ignore out dated drivers, and reboot when finished.

    Comment actions Permalink
  • Timothy J Mccabe

    I have been using PDQ Deploy solely for Windows 10 upgrades and have a process that has been working very well for the 2500+ PCs I've deployed out to so far.

    Starts off by using the File Copy step to copy the ISO to the desired PC. Next I have a Powershell Step which opens the ISO and extracts the contents locally to the hard drive and set up the necessary file structure for the last step. The last step runs some switches off of the setup.exe to process the upgrade before initiating a Reboot Step. Essentially looks like this:

    Step 1: File Copy ISO from server share to workstation

    Step 2: Extract ISO files with Powershell and remove the ISO when extraction is complete.

    $MountISO = mount-diskimage -imagepath C:\upgrade\SW_DVD5_Win_Ent_10_1709_64BIT_English_MLF_X21-50143.ISO -passthru | get-volume

    $DriveLetter = $MountISO.DriveLetter

    New-Item -Path "C:\Upgrade" -Name "Files" -ItemType "directory"

    New-Item -Path "C:\Upgrade" -Name "Logs" -ItemType "directory"

    Copy-Item "${DriveLetter}:\*" -Destination C:\upgrade\files -recurse -force

    Dismount-DiskImage -Imagepath C:\upgrade\SW_DVD5_Win_Ent_10_1709_64BIT_English_MLF_X21-50143.ISO

    Remove-Item "C:\Upgrade\SW_DVD5_Win_Ent_10_1709_64BIT_English_MLF_X21-50143.ISO" -Force

    Step 3: Run the upgrade from CMD step.

    cd C:\Upgrade\Files

    setup.exe /Auto Upgrade /Quiet /showoobe none /noreboot /compat IgnoreWarning /InstallFrom C:\Upgrade\Files\sources\install.wim /DynamicUpdate enable /postoobe C:\Upgrade\SetupComplete.cmd /migratedrivers all /copylogs C:\Upgrade\Logs

    Step 4: Reboot step

    Step 5: Sleep for 900 seconds to allow the upgrade to fully complete. For really old systems, I recommend kicking the time out to 1200 seconds.

    Step 6: Check if the upgrade failed with Powershell step. Replace "1709" with whatever version you're upgrading based off the ISO you're using.

    $OSBuild = (Get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion" -Name ReleaseId).ReleaseId

    If ($OSBuild -eq "1709")

    {exit 0}


    {exit 999}

    Step 7: Delete upgrade files with Powershell step

    Remove-Item "C:\Upgrade" -Recurse -Force

    Comment actions Permalink
  • Colby Bouma

    I edited your post to fix a couple of formatting issues. For example, it ate {DriveLetter} in your copy step for some reason, so I escaped the troublesome characters with backslashes \.

    Comment actions Permalink
  • Timothy J Mccabe

    Thank you! I had caught a couple things that had formatted or not carried over well but thank you very much for fixing the other things I had missed.

    Comment actions Permalink
  • Tommy Anderson

    @TimMccabe-ETSD How long did this process take? I've tested other "methods" of upgrading and they seem to take way to long.

    Comment actions Permalink

Please sign in to leave a comment.