My apologies, I figured that the XML file would have read on OS load (PE) rather than with the wpeinit command. I have tried your suggestion, outputting an XML file and changing the x and y values according to the screen size associated with the model detection, unfortunately it has not worked. So as part of my Startnet.cmd, I call my script, which now does a 1024x786 exe command first (my default setting) then outputs the unattended example listed in this post, and if it's 1366 model then output that res, and if it's a 1280 model then output that res. Startnet moved on past my script and runs the wpeinit command but the screen res doesn't change for either of the scenarios. I have confirmed that the unattend.xml file sitting in the root of X:\ is there and I have also confirmed that it is correct (with the correct quote marks in the correct places) as per the earlier post. I have also tried running wpeinit manually once I've confirmed that the xml file is created, but still nothing. Startnet.cmd: @echo off cscript .\CustomScripts\ScreenRes\ScreenRes.vbs wpeinit wpeutil DisableFirewall cscript autoscript.vbs (Note: autoscript.vbs is what I use to carry out my PE tasks) ScreenRes.vbs Option Explicit Dim objFSO, WshShell, objFile Const wshYes = 6 Const wshNo = 7 Const wshYesNoDialog = 4 Const wshQuestionMark = 32 Const wshExclamation = 48 '++++++++++++++++++++++++++++++++++++++++++++++ 'This is where the manufacturing information is found Dim ModelNumber, Manufacturer, strComputer, objWMIService, objItem, colItems strComputer = "." Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\CIMV2") Set colItems = objWMIService.ExecQuery( _ "SELECT * FROM Win32_BIOS",,48) For Each objItem in colItems Manufacturer = objItem.Manufacturer Next Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\CIMV2") Set colItems = objWMIService.ExecQuery( _ "SELECT * FROM Win32_ComputerSystem",,48) For Each objItem in colItems ModelNumber = objItem.Model Next '++++++++++++++++++++++++++++++++++++++++++++++ Dim AbsPath:AbsPath = Replace(WScript.ScriptFullName, WScript.ScriptName, "") 'has trailing '\' Set objFSO = CreateObject("Scripting.FileSystemObject") Set WshShell = WScript.CreateObject("WScript.Shell") Dim ModelSet1366, ModelSet1280, ModelSet1366Low, ModelSet1280Low, ModelNumberLow ModelSet1366 = "<model set here>" ModelSet1280 = "<model set here>" ModelSet1366Low = LCase(ModelSet1366) ModelSet1280Low = LCase(ModelSet1280) ModelNumberLow = LCase(ModelNumber) 'Set to 1024x768 first WshShell.Run AbsPath & "1024x768.exe", 1, True Dim Output If objFSO.FileExists ("x:\unattend.xml") Then objFSO.DeleteFile("x:\unattend.xml") End If Set Output = objFSO.CreateTextFile("x:\unattend.xml") If InStr(ModelSet1366Low, ModelNumberLow) Then 'Run 1366 Res Change Output.Write "<?xml version=" & Chr(34) & "1.0" & Chr(34) & " encoding=" & Chr(34) & "utf-8" & Chr(34) & "?>" & vbCrLf Output.Write "<unattend xmlns=" & Chr(34) & "urn:schemas-microsoft-com:unattend" & Chr(34) & ">" & vbCrLf Output.Write "<settings pass=" & Chr(34) & "windowsPE" & Chr(34) & ">" & vbCrLf Output.Write "<component name=" & Chr(34) & "Microsoft-Windows-Setup" & Chr(34) & " processorArchitecture=" & Chr(34) & _ "x86" & Chr(34) & " publicKeyToken=" & Chr(34) & "31bf3856ad364e35" & Chr(34) & " language=" & Chr(34) & "neutral" & Chr(34) & _ " versionScope=" & Chr(34) & "nonSxS" & Chr(34) & " xmlns:wcm=" & Chr(34) & "http://schemas.microsoft.com/WMIConfig/2002/State" & Chr(34) & ">" & vbCrLf Output.Write "<Display>" & vbCrLf Output.Write "<ColorDepth>16</ColorDepth>" & vbCrLf Output.Write "<HorizontalResolution>1366</HorizontalResolution>" & vbCrLf Output.Write "<RefreshRate>60</RefreshRate>" & vbCrLf Output.Write "<VerticalResolution>768</VerticalResolution>" & vbCrLf Output.Write "</Display>" & vbCrLf Output.Write "</component>" & vbCrLf Output.Write "</settings>" & vbCrLf Output.Write "</unattend>" & vbCrLf ElseIf InStr (ModelSet1280Low, ModelNumberLow) Then 'Run 1280 Res Change Output.Write "<?xml version=" & Chr(34) & "1.0" & Chr(34) & " encoding=" & Chr(34) & "utf-8" & Chr(34) & "?>" & vbCrLf Output.Write "<unattend xmlns=" & Chr(34) & "urn:schemas-microsoft-com:unattend" & Chr(34) & ">" & vbCrLf Output.Write "<settings pass=" & Chr(34) & "windowsPE" & Chr(34) & ">" & vbCrLf Output.Write "<component name=" & Chr(34) & "Microsoft-Windows-Setup" & Chr(34) & " processorArchitecture=" & Chr(34) & _ "x86" & Chr(34) & " publicKeyToken=" & Chr(34) & "31bf3856ad364e35" & Chr(34) & " language=" & Chr(34) & "neutral" & Chr(34) & _ " versionScope=" & Chr(34) & "nonSxS" & Chr(34) & " xmlns:wcm=" & Chr(34) & "http://schemas.microsoft.com/WMIConfig/2002/State" & Chr(34) & ">" & vbCrLf Output.Write "<Display>" & vbCrLf Output.Write "<ColorDepth>16</ColorDepth>" & vbCrLf Output.Write "<HorizontalResolution>1280</HorizontalResolution>" & vbCrLf Output.Write "<RefreshRate>60</RefreshRate>" & vbCrLf Output.Write "<VerticalResolution>800</VerticalResolution>" & vbCrLf Output.Write "</Display>" & vbCrLf Output.Write "</component>" & vbCrLf Output.Write "</settings>" & vbCrLf Output.Write "</unattend>" & vbCrLf Else 'Nothing - leave at 1024x768 End If Output.Close (Note: the 1024x786.exe is a VB6 command that I programmed up using some legacy VB6 screen res module) If I use my created 1280x800.exe it does work, but my 1366x768.exe doesn't. Neither mode in this xml try has worked. Thanks for you time so far.