Ghost Solution Suite

 View Only
Expand all | Collapse all

WIM image doesn't boot with GSS 3.1 MP2 (it does with DS 6.9 SP5 MR1)

  • 1.  WIM image doesn't boot with GSS 3.1 MP2 (it does with DS 6.9 SP5 MR1)

    Posted Jun 29, 2016 06:06 AM

    Hello,

    I'm facing a very strange problem related to the deployment of a WIM image to a new computer using DS/GSS.

    If we deploy it using DS 6.9 SP5 MR1 it works as expected and boots correctly to Windows executing our post-configuration scripts.

    If we deploy it using GSS 3.1 MP2 it doesn't work. We see for some seconds the Windows logo and then stays in a black screen. It doesn't execute anything.

    This WIM image is captured using WAIK 8.1 Update 1 using this command:

    ..\waik81\x86\DISM\dism.exe /Capture-Image /CaptureDir:C:\ /ImageFile:i:\lcfib\wim81\x64\win81x64_v11.wim /Name:"win81x64 Enterprise ES-EN-CA v11" /Compress:fast /ScratchDir:i:\temp /Verify

    The image is a Windows 8.1 with all the latest updates and sysprepped using this command:

    sysprep /generalize /oobe /shutdown /unattend:unattend_x64.xml

    The job for deploy this image executes a lot of commands, but the main are these ones for applying the image, replace computer name in the XML for unattend installation, copy the drivers for this hardware model and inject them:

    .\inlab\WAIK81\x86\DISM\dism.exe /Apply-Image /ImageFile:.\inlab\wim81\x64\win81x64_v11.wim /Index:1 /ApplyDir:C:\
    REM ReplaceTokens .\lcfib\wim81\x64\unattend_x64.xml .\temp\unattend81_x64%ID%.xml
    copy /y .\temp\unattend81_x64%ID%.xml c:\windows\system32\sysprep\unattend_x64.xml
    copy /y .\temp\unattend81_x64%ID%.xml c:\windows\panther\unattend.xml
    set modelo=%#!computer@prod_name%
    robocopy  ".\inlab\drivers\%modelo%\x64" C:\Drivers /mir
    .\inlab\WAIK81\x86\DISM\dism.exe /Image:C:\ /SysDriveDir:C:\ /NoRestart /Apply-Unattend:C:\Drivers\drivers_x64.xml /LogPath:C:\Drivers\log_install.txt


    The main difference between the two environments is Windows PE version. DS uses WinPE 2.1 and GSS uses WinPE 5.x.

    We've changed our scripts to use the same ADK (8.1 Update 1) instead of relying in the commands available from the eXpress share under the different WinPE environments with no success.

    The problem is something related to the drivers injection. If we don't inject drivers, then the image boots properly and executes the hardware detection and all the configuration specified in our XML file. But, this is not a good solution because of missing drivers for the hardware.

    We've have tested changing the procedure for injecting the drivers after Windows boots (i.e. using some scripts in the XML unattend file calling pnputil) but this has problems with some unsigned drivers prompting for allowing the installation. So we need to inject them in offlineservicing pass (Microsoft-Windows-PnpCustomizationsNonWinPE).

    We've started having this problem during the setup of our new environment using GSS for replacing the old DS servers. GSS 3.0 had this problem. GSS 3.1 has it too. The upgrade to MP1 and MP2 also has the problem.

    Do you know how to investigate this behaviour? We've boot the problematic client machine using WinPE and look into the windows log files but we don't find anything interesting.

    We've also opened a case without success. It has been closed "because this is not a normal deployment method" :-(

    So, any idea would be very appreciated because we're stopped in the replacement of DS servers project.

    Thanks to all.

     



  • 2.  RE: WIM image doesn't boot with GSS 3.1 MP2 (it does with DS 6.9 SP5 MR1)

    Posted Jun 30, 2016 04:27 AM

    Hello,

    I'm testing to inject the drivers after the mini-setup phase.

    I have the following commands in my unattend XML sysprep file:

                <FirstLogonCommands>
                    <SynchronousCommand wcm:action="add">
                        <CommandLine>cscript //b c:\windows\system32\slmgr.vbs /skms kms_server:1688</CommandLine>
                        <Order>2</Order>
                        <Description>KMS Input</Description>
                    </SynchronousCommand>
                    <SynchronousCommand wcm:action="add">
                        <CommandLine>cscript //b c:\windows\system32\slmgr.vbs /ato</CommandLine>
                        <Description>MAK Activate</Description>
                        <Order>3</Order>
                    </SynchronousCommand>
                    <SynchronousCommand wcm:action="add">
                        <CommandLine>net user deleteme /delete</CommandLine>
                        <Description>Delete Initial User</Description>
                        <Order>1</Order>
                    </SynchronousCommand>
                    <SynchronousCommand wcm:action="add">
                        <Order>4</Order>
                        <Description>Script Setup Drivers</Description>
                        <CommandLine>C:\ADM\SETUP_DRIVERS.BAT</CommandLine>
                    </SynchronousCommand>
                </FirstLogonCommands>
    

    And this is the content of SETUP_DRIVERS.BAT:

    FOR /R C:\Drivers\certs %%G IN (*.cer) DO (
        certutil -addstore "TrustedPublisher" %%G > NUL
    )
    
    FOR /R C:\Drivers %%G IN (*.inf) DO (
        pnputil -i -a %%G > NUL
    )
    

    It seems to work (I see the instant change of the graphics card driver; I can connect a RFID reader without the user being prompted for a driver because it is already staged by this process, etc).

    I hope it helps to someone with the same problem than me.

    Best regards.