Ghost Solution Suite

 View Only
  • 1.  DeployAnywhere issues

    Posted Jul 28, 2010 03:56 PM

    I'd like to find out what DA is doing in the background.  Sure, it's nice that it can apply a HAL and nic/storage drivers, but we've recently discovered some WMI-related issues that we can track back to being caused by DA.  for example: I can image a machine and use DA, and i won't be able to connect to that machine using WMIMGMT.msc, then i can image that same machine with the same image, only without using DA this time, and WMIMGMT.msc can connect to it just fine.  Before everyone jumps in and screams "firewall! antivirus! blah!" - windoze firewall is already disabled in our image, no AV is installed, and WMI works fine when connecting to itself and outbound to other machines.  the problem is trying to connect to a freshly imaged machine from the outside.

    I'm using DA via Altiris 6.9sp2 jobs, but i do not check the box in the image deployment job for "use deployanywhere".   I have tried adding the logPath switch to the command line, but that generated nothing at all - pretty useless.  I wish it had a verbose mode to detail everything it's doing - for troubleshooting, and to let users know the machine hasn't simply hung while it's retargeting.

    i also found that DA completely corrupts the nic drivers for a Toshiba Tecra M3 notebook, so i had to script in an exception for that model to never use DA.  on that toshiba, the machine would rarely get an IP address, and when it did, the connection was so flaky/crippled, i couldn't even ping to/from it, nevermind do anything else on the network.

    Can someone please detail everything that DA is doing in the background, such as regedits, system file changes/replacements, ini file changes/replacements, etc etc... i know it modifies sysprep.inf, and that's understandable, but it's not always necessary.  by adding the [SysprepMassStorage] section to the end of my sysprep.inf, it makes minisetup take a lot longer - up to a half an hour on some machines!  it shows the progress bar for detecting PnP devices, and stalls at about 50% for anywhere from 3-30 minutes no matter what model PC it is.  Thing is, if i image that same machine and skip step 7 below, i don't have that problem, and minisetup typically finishes in under 5 minutes, even on an old HP D530 machine.  Unfortunately, for some models, DA is needed, so I can't just ditch it.

    summary of my scripts just so you have an idea what i'm doing:

    1 - boot into WinPE 2.1 via PXE
    2 - create model.txt from an altiris token: echo %#!computer@prod_name% > x:\model.txt
    3 - distribute disk image (rdeploy, don't use DA HII)
    4 - firm copy sysprep (tokenized) and aclient installer
    5 - run vbscript to copy model-specific drivers to c:\drivers
    6 - inject DevicePath registry entry
    7 - if model not on exclusion list, run DA (full script below)
    8 - reboot, run minisetup unattended
    9 - on first boot, install other drivers that won't install via PnP (ie: HP Quicklaunch buttons, some bluetooth stuff, HP Protect Tools, etc)
    10 - join domain, reboot again

    below is the code i use to call/use DA inside the job:

     

    	rem DeployAnywhere NIC/MSD/HAL (If needed)
    echo off
    cls
    type x:\model.txt | find /i "hp d530"
    if %ERRORLEVEL%==0 exit 0
    type x:\model.txt | find /i "dc5000"
    if %ERRORLEVEL%==0 exit 0
    type x:\model.txt | find /i "dc5100"
    if %ERRORLEVEL%==0 exit 0
    type x:\model.txt | find /i "dc5750"
    if %ERRORLEVEL%==0 exit 0
    type x:\model.txt | find /i "dc7900"
    if %ERRORLEVEL%==0 exit 0
    type x:\model.txt | find /i "optiplex 755"
    if %ERRORLEVEL%==0 exit 0
    type x:\model.txt | find /i "optiplex 760"
    if %ERRORLEVEL%==0 exit 0
    type x:\model.txt | find /i "xw4600"
    if %ERRORLEVEL%==0 exit 0
    type x:\model.txt | find /i "z400"
    if %ERRORLEVEL%==0 exit 0
    type x:\model.txt | find /i "tecra m3"
    if %ERRORLEVEL%==0 exit 0
    type x:\model.txt | find /i "Latitude D530"
    if %ERRORLEVEL%==0 exit 0
    type x:\model.txt | find /i "Latitude D830"
    if %ERRORLEVEL%==0 exit 0
    type x:\model.txt | find /i "Latitude E5500"
    if %ERRORLEVEL%==0 exit 0
    type x:\model.txt | find /i "Latitude E6500"
    if %ERRORLEVEL%==0 exit 0
    type x:\model.txt | find /i "Precision M4300"
    if %ERRORLEVEL%==0 exit 0
    type x:\model.txt | find /i "Precision M4400"
    if %ERRORLEVEL%==0 exit 0
    type x:\model.txt | find /i "Vostro   1000"
    if %ERRORLEVEL%==0 exit 0
    type x:\model.txt | find /i "6530b"
    if %ERRORLEVEL%==0 exit 0
    type x:\model.txt | find /i "6730b"
    if %ERRORLEVEL%==0 exit 0
    type x:\model.txt | find /i "6710b"
    if %ERRORLEVEL%==0 exit 0
    type x:\model.txt | find /i "8510p"
    if %ERRORLEVEL%==0 exit 0
    type x:\model.txt | find /i "nc6230"
    if %ERRORLEVEL%==0 exit 0
    type x:\model.txt | find /i "nc8230"
    if %ERRORLEVEL%==0 exit 0
    type x:\model.txt | find /i "nc8430"
    if %ERRORLEVEL%==0 exit 0
    
    rem if not in above list of exclusions, continue and use DA
    
    echo Now injecting HAL and MSD drivers with DeployAnywhere
    del %SystemRoot%\inf\atrsdfw.inf"
    copy %ALTIRIS_SHARE%\Ghost\SMEUTIL.SYS %SystemRoot%\system32\drivers           
    %ALTIRIS_SHARE%
    cd\Ghost
    GhDplyAw32.exe /target=c:\windows /ddb=\driversdb
    cd\
    As you can see, I have a lot of different models to support - there are at least 5 more not in the exclusion list above that are critical right now because we're rolling out several thousand of them over the next 30 days.  I'd like to nip this problem in the bud before it becomes a widespread issue.