Question Windows Installation Script - Detect SSD

Apr 25, 2019
2
0
10
Okay so, I bought a laptop, installed an additional SSD (now running 1 HDD, 1 SSD), and now I'm trying to install the Manufacturer's customized Windows version. The problem is that that Windows version comes with its own installation script created by the manufacturer. When you try to install that Windows from USB, it opens up a script that then, without ANY input from the user whatsoever, formats your HDD and installs Windows there.

The problem I have is that that script does NOT install Windows to my SSD. I have tried contacting the manufacturer about adjusting the script, but they refuse to even just consider a solution, saying I should just "clone" the OS, which in my case only results in the laptop then not starting up at all anymore. In the script there are even comments about how it detects what drive to install to, so it can't be that difficult, right? Since I have no idea about programming myself, the internet is my only hope.

How do I adjust the following script ("Main.cmd") to make it install Windows to my SSD instead of the HDD?


Code:
@echo off
@rem  This script is called by x:\Windows\System32\Startnet.cmd - WinPE
@echo.
@echo.
@echo.
@echo.
@echo Running Intel Optimization powercfg for improved imaging times
@echo.
@echo call powercfg /s 8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c
call powercfg /s 8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c
@echo.
@echo.
@echo.
@rem  *****************************************************************
@rem  List all the disks, then search the volumes of each one to see
@rem  which disks may have "Winpe" in the label. We will ignore that
@rem  disk and use the first disk without the Winpe label that we find.
@rem  *****************************************************************
@echo.>x:\Listdisk.txt
@echo list disk>>x:\Listdisk.txt
@echo exit>>x:\Listdisk.txt
@echo call diskpart /s x:\Listdisk.txt
call diskpart /s x:\Listdisk.txt>x:\Disks.txt
@echo.
@rem Set Disk equal to blank to start
set disk=
@echo.
@rem
@rem  This line will write a diskpart script to select the disk and detail                     it's contents.
@rem  We use this output to find a disk that does NOT have Winpe as the volume label.
@rem  That disk will have the OS installed to it. This way you can exclude USB from diskpart.
@rem
@rem  This works around the issue where the USB key is sometimes enumerated as disk 0 and the
@rem  SSD is disk 1.
@rem
for /f "skip=8 tokens=2" %%A in (x:\Disks.txt) do (
@echo sel disk %%A>x:\Par.txt
@echo det disk>>x:\Par.txt
@echo exit>>x:\Par.txt
if NOT "%%A"=="DiskPart..." call :ListPar %%A
)
if %Disk%=="" echo No disk found without a volume label of "Winpe"&& set     disk=0
@echo Using Disk "%Disk%"
@echo.
@echo *****************************************************************
@rem  Map drive letter for Install.wim and Winre.wim
@echo *****************************************************************
@rem Create an output file containing all the drive letters
@echo.>x:\listVol.txt
@echo list volume>>x:\listVol.txt
@echo exit>>x:\listVol.txt
@echo call diskpart /s x:\listVol.txt
call diskpart /s x:\Listdisk.txt>x:\Output.txt
@echo call diskpart /s x:\listVol.txt>x:\Output.txt
diskpart /s x:\listVol.txt>x:\Output.txt
@echo.
@rem Go through each drive letter, looking for the images\Install.txt file
for /f "skip=8 tokens=3" %%A in (x:\Output.txt) do (
if exist %%A:\images\install.txt set InstallPath=%%A:\images&& echo "Found device with images folder and install.txt file"
)
@echo.
@echo.
@echo.
@echo.
@rem ************************
@rem UEFI SECTION
@rem ************************
@echo The PC is booted in UEFI mode
@echo.>x:\winpart.txt
@echo select disk "%Disk%">>x:\winpart.txt
@echo clean>>x:\winpart.txt
@echo convert gpt>>x:\winpart.txt
@echo create partition efi size=100>>x:\winpart.txt
@echo format quick fs=fat32 label="System">>x:\winpart.txt
@echo assign letter="S">>x:\winpart.txt
@echo create partition msr size=16>>x:\winpart.txt
@echo create partition primary>>x:\winpart.txt
@echo format quick fs=ntfs label="Windows">>x:\winpart.txt
@echo assign letter="W">>x:\winpart.txt
@echo shrink desired=450>>x:\winpart.txt
@echo create partition primary>>x:\winpart.txt
@echo format quick fs=ntfs label="Recovery">>x:\winpart.txt
@echo assign letter="R">>x:\winpart.txt
@echo set id="de94bba4-06d1-4d40-a16a-bfd50179d6ac">>x:\winpart.txt
@echo gpt attributes=0x8000000000000001>>x:\winpart.txt
@echo exit>>x:\WinPart.txt
@echo Winpart.txt now contains.....
@echo.
type x:\winpart.txt
@echo.
@echo.
@echo *****************************************************************
@echo  Setting up the partition table
@echo *****************************************************************
@echo call diskpart /s x:\winpart.txt
diskpart /s x:\winpart.txt
@echo.
@echo.
@echo.
@echo.
@rem Check InstallPath was found and there are images in it.
if NOT EXIST %InstallPath%\Install.swm echo "Install.swm Hassen Test NOT     found." && goto :Error
@echo Install.swm FOUND at %InstallPath%\install.swm
@echo.
@echo.
@echo.
@echo *****************************************************************
@rem  Switches to the USB disk
@rem  Create folders on local (eMMC) disk and copy files from USB disk
@echo *****************************************************************
@echo.
@echo Making directories...
md w:\recycler\scratch
if %errorlevel% NEQ 0 echo "Failed to make w:\recycler\scratch directory" &&     goto :error
@echo.
md r:\recovery\windowsre
if %errorlevel% NEQ 0 echo "Failed to make m:\recovery\windowsre directory" && goto :error
@echo.
@echo.
@echo *****************************************************************
@echo  Applying the Windows image from the USB
@echo *****************************************************************
@echo call dism /apply-image /imagefile:"%InstallPath%\Install.swm"     /swmfile:"%InstallPath%\install*.swm" /index:1 /applydir:w:\ /compact     /scratchdir:"w:\recycler\SCRATCH
call dism /apply-image /imagefile:"%InstallPath%\Install.swm"     /swmfile:"%InstallPath%\install*.swm" /index:1 /applydir:w:\ /compact     /scratchdir:"w:\recycler\SCRATCH
if %errorlevel% NEQ 0 echo "Failed to apply image to w:" && goto :error
call dism.exe /Apply-CustomDataImage     /CustomDataImage:"w:\Recovery\Customizations\usmt.ppkg" /ImagePath:w:\     /SingleInstance
if %errorlevel% NEQ 0 echo "Failed to apply image to w:" && goto :error
@echo.
@echo *****************************************************************
@rem  Move WinRE to Recovery Partition
@echo *****************************************************************
@echo.
@echo copy %InstallPath%\Recovery\Winre.wim" "r:\recovery\windowsre
copy "%InstallPath%\Recovery\Winre.wim" "r:\recovery\windowsre"
if %errorlevel% NEQ 0 echo "Failed to copy winre.wim to     r:\recovery\windowsre" && goto :error
@echo.
@echo reset attributes now
attrib r:\Recovery\Windowsre\winre.wim +s +h +a +r
@echo.
@echo.
@echo *****************************************************************
@echo  Setting the boot environment
@echo *****************************************************************
@echo call w:\WINDOWS\SYSTEM32\BCDBOOT w:\WINDOWS /s s: /f all
w:\WINDOWS\SYSTEM32\BCDBOOT w:\WINDOWS /s s: /f all
if %errorlevel% NEQ 0 echo "Failed to set boot information" && goto :error
@echo.
@echo.
@echo.
@echo *****************************************************************
@echo  Setting the recovery environment
@echo *****************************************************************
@echo %InstallPath%\reagentc\reagentc /SetREImage /Path     "r:\RECOVERY\WINDOWSRE" /target w:\windows
%InstallPath%\reagentc\reagentc /SetREImage /Path "r:\RECOVERY\WINDOWSRE"     /target w:\windows
if %errorlevel% NEQ 0 echo "Failed to set recovery information" && goto     :error
@echo.
@echo.
@echo.
attrib +H +R W:\Recovery
rmdir /s /q w:\recycler
@echo *****************************************************************
@echo  WIMboot image deployment COMPLETE. Type EXIT from Command
@echo  Prompt to restart or turn off device.
@echo *****************************************************************
color 2f
Goto :END

:ERROR
@echo.
@echo An error has been detected.
color 4f
@echo.
goto :END

:ListPar
@REM This section is to bring a disk number and use it to List Partitions
@echo.
set TempDisk=%1
diskpart /s x:\Par.txt>x:\ParOutput.txt
for /f "skip=24 tokens=3" %%A in (x:\ParOutput.txt) do (
if /i "%%A"=="no" set Disk=%TempDisk%
)
for /f "skip=26 tokens=4" %%A in (x:\ParOutput.txt) do (
if /i NOT "%%A"=="Winpe" set Disk=%TempDisk%
)
Goto :EOF

:END
@rem
@rem  Get finish time so we can evaluate total WinPE phase time.
@rem
call |time>x:\StopTime.txt
@rem
@rem  Now parse both files to display the Start and Finish Time
@rem
@echo.
@echo.
for /f "tokens=5" %%A in (x:\starttime.txt) do echo Script Start Time is %%A
for /f "tokens=5" %%A in (x:\stoptime.txt) do echo  Script Stop Time is %%A
@echo.`
 
Apr 25, 2019
2
0
10
Unfortunately I don't have access to the HDD, for that I would have to remove the entire backplate of the laptop, which isn't something I feel comfortable doing.