Installing Perkin Elmer Spectrum with an SCCM Task Sequence

Perkin Elmer Spectrum is an instrument control software that we deploy on several workstations connected to Spectrum 100 iR machines. I’m not a Chemist, and don’t entirely understand what the machines do, but here’s some information on automating the install process.

I could not get a silent installer to work properly, so I chose to use Auto-It. This is somewhat limiting, since you can only deploy through a Task Sequence, and that the deployment is really only reliable during OSD. For us, re-imaging these workstations isn’t a problem though.

Additional Software Information

There are three choices for the security module: no password, windows password, or PE password. The “Windows Password” feature has two important limitations: it does not support domain\username combinations greater than 31 characters in length, and it does not support passwords longer than 15 characters. In our environment, this makes the “Windows Password” feature useless.

The Process

  1. Download and Install AutoIt v3.
  2. Copy the manuals off of the separate manuals CD, and use WinRAR to create a self-extracting SFX. The manuals should extract to C:\PostInstall\Manuals. Save this SFX file in your package source directory.
  3. Copy the instrument’s .cfg file to your package source directory. The install batch file will copy this to C:\PostInstall.
  4. Copy setup.exe from the Installer CD to your package source directory. It should be about 800MB.
  5. Create the following AU3 script file and name it InstallSpectrumSoftware.au3.
    ;Run Setup
    ShellExecute("setup.exe");Welcome Screen
    WinWaitActive("PerkinElmer Spectrum - InstallShield Wizard","WARNING: This program is protected by copyright law")
    ControlClick("PerkinElmer Spectrum - InstallShield Wizard","WARNING: This program is protected by copyright law","Button1")
    
    ;License Agreement
    WinWaitActive("PerkinElmer Spectrum - InstallShield Wizard","I &do not accept the terms in the license agreement")
    ControlClick("PerkinElmer Spectrum - InstallShield Wizard","I &do not accept the terms in the license agreement","Button3")
    ControlClick("PerkinElmer Spectrum - InstallShield Wizard","I &do not accept the terms in the license agreement","Button5")
    
    ;Feature Selection
    WinWaitActive("PerkinElmer Spectrum - InstallShield Wizard","Choose an appropriate installation configuration for Spectrum")
    ControlCommand("PerkinElmer Spectrum - InstallShield Wizard","Choose an appropriate installation configuration for Spectrum","ComboBox1","selectString","Spectrum Series/Raman Series/Microscope")
    ControlClick("PerkinElmer Spectrum - InstallShield Wizard","Choose an appropriate installation configuration for Spectrum","Button2")
    
    ;Ready to Install Screen
    WinWaitActive("PerkinElmer Spectrum - InstallShield Wizard","The wizard is ready to begin installation.")
    ControlClick("PerkinElmer Spectrum - InstallShield Wizard","The wizard is ready to begin installation.","Button1")
    
    ;Perkin Elmer Directories
    WinWaitActive("Specify Directories","Common Sample Table Setups Directory")
    ControlClick("Specify Directories","Common Sample Table Setups Directory","[NAME:NextButton]")
    
    ;;Finish Screen
    WinWaitActive("PerkinElmer Spectrum - InstallShield Wizard","The InstallShield Wizard has successfully installed PerkinElmer Spectrum.")
    ControlClick("PerkinElmer Spectrum - InstallShield Wizard","The InstallShield Wizard has successfully installed PerkinElmer Spectrum.","Button5")
    ControlClick("PerkinElmer Spectrum - InstallShield Wizard","The InstallShield Wizard has successfully installed PerkinElmer Spectrum.","Button1")
    
    ;;Do not restart
    WinWaitActive("PerkinElmer Spectrum Installer Information","You must restart your system for")
    ControlClick("PerkinElmer Spectrum Installer Information","You must restart your system for","Button2")
  6. Compile the script and place it in your package source directory.
  7. Create the following AU3 script and name it ConfigureSpectrumSoftware.au3. This script will disable the Windows Authentication account used for the “Windows Password” security model, then set a new admin password for the spectrum software.
    ;Disable 21cfr account created by spectrum software
    ;This is used by 'windows logon' security, which we're not using.
     Run(@ComSpec & " /c net user 21Cfr /active:no")
    
    ;Run Spectrum Software
     ShellExecute("C:\Program Files (x86)\PerkinElmer\Spectrum\IRWinLab.exe")
    
    ;;Login at Password Screen
    WinWaitActive("PerkinElmer Login")
    ControlSetText("PerkinElmer Login","","[CLASS:Edit; INSTANCE:1]","administrator")
    ControlSetText("PerkinElmer Login","","[CLASS:Edit; INSTANCE:2]","administrator")
    ControlClick("PerkinElmer Login","","Button2")
    
    ;Open Users and Password Control
    WinWaitActive("PerkinElmer Spectrum","TwoDGraphWnd")
    Send("{ALT}+S")
    Send("{RIGHT}")
    Send("{ENTER}")
    
    ;Edit Admin User
    WinWaitActive("Users and Password Control")
    ControlCommand("Users and Password Control","","ComboBox1","selectString","Administrator")
    ControlClick("Users and Password Control","","Button7")
    
    ;Change Admin User Password
    WinWaitActive("Edit User")
    ControlSetText("Edit User","","[CLASS:Edit; INSTANCE:3]","YourNewPassword")
    ControlSetText("Edit User","","[CLASS:Edit; INSTANCE:4]","YourNewPassword")
    ControlClick("Edit User","","Button4")
    
    ;;Close Users and Password Control
    WinWaitActive("Users and Password Control")
    ControlClick("Users and Password Control","","Button3")
    
    ;;Edit PEService User
    ; WinWaitActive("Users and Password Control")
    ; ControlCommand("Users and Password Control","","ComboBox1","selectString","PEService")
    ; ControlClick("Users and Password Control","","Button7")
    
    ;Close Spectrum
    WinWaitActive("PerkinElmer Spectrum","TwoDGraphWnd")
    Send("{ALT}+F")
    Send("X")
    WinWaitActive("Save Options")
    ControlClick("Save Options","","[CLASS:WindowsForms10.Window.8.app.0.2004eee; INSTANCE:8]")
  8. Compile the script and place it in your package source directory.
  9. Create the following batch file to put all the pieces together. Name it “Install-Spectrum.cmd”.
    @ECHO OFF
    ECHO Installing Perkin Elmer Spectrum 10.3.7
    ECHO Do not close this window. It will close when the install is finished.
    REM Main Install
    InstallSpectrumSoftware.exe
    SpectrumManuals.exe
    ConfigureSpectrumSoftware.exe
    IF NOT EXIST C:\PostInstall MKDIR C:\PostInstall
    COPY /Y *.cfg C:\PostInstall

Congrats, enjoy your new mostly-automated install.

Advertisements

SCCM Client Install VBS Script (Advanced)

My coworker and I put this script together after a lot of labor. It’s a heavily modified version of the original made by Jason Sandy found here.

Downloads

New Features

  • For Windows XP and 2003 machines, the certificate auto-enrollment legacy hotfix (KB968730) can now be installed by the script. New options are defined in the xml file for the legacy hotfix.
  • Input arguments are more flexible.
  • Logs can be copied to a central share.
  • Additional SCCM client arguments can now be specified in the XML.
  • CU’s now scan and install properly according to architecture.

What does it do?

  • The script will:
    • Install the SCCM 2012 client.
    • Maintain the health of the SCCM client.
    • Install Client and necessary Legacy OS hotfixes if the client is outdated.
  • This script does not fix WMI problems at this time. That’s a feature we’re still working on.

XML Options

See the github readme for additional options available in this version of the script.

Thanks!

Deploying LiveScribe Desktop in an SCCM Task Sequence

LiveScribe is cool and all, but it has no silent install. GRUMBLE @ YOU PEOPLE. Here’s an AutoIt script to automate the install. This works as of LiveScribe Desktop v2.8.3 for Windows. This was put together by one of our student employees named ‘Jason’. Jason needs a higher-paying job; so if you want a good entry-level tech drop me a line!

Run("LivescribeDesktop_Install_Win_v2.8.3.exe")
WinWaitActive("Livescribe Desktop Setup", "&Back")
ControlClick("Livescribe Desktop Setup", "&Next", 100)
WinWaitActive("Livescribe Desktop Setup", "I agree")
ControlClick("Livescribe Desktop Setup", "I agree", 1300)
ControlClick("Livescribe Desktop Setup", "&Next", 100)
WinWaitActive("Livescribe Desktop Setup", "C&hange")
ControlClick("Livescribe Desktop Setup", "&Next", 100)
WinWaitActive("Livescribe Desktop Setup", "&Next")
ControlClick("Livescribe Desktop Setup", "&Next", 100)
WinWaitActive("Livescribe Desktop Setup", "&Next")
ControlClick("Livescribe Desktop Setup", "&Next", 100)
WinWaitActive("Livescribe Desktop Setup", "&Next")
ControlClick("Livescribe Desktop Setup", "&Next", 100)
WinWaitActive("Livescribe Desktop Setup", "&Finish")
ControlClick("Livescribe Desktop Setup", "Start", 1300)
ControlClick("Livescribe Desktop Setup", "&Finish", 100)

Compile this, put it in the same folder as your LiveScribe download, and you should be good to go. One note — if your PC doesn’t have internet access during the install, you’ll get a certificate warning which will hang your TS. If you feel like fixing this, please shoot me your new code and I’ll update this post and credit your work.

Deploy NetSupport School with SCCM

It’s not that bad at all — the firewall rules are a bit tricky though.

  1. Place the installation media in a folder.
  2. Make sure you have a customized ‘Client32.ini’ and ‘NSM.LIC’ file in the package folder containing your site’s licensing information.
  3. Use this script! Replace <CIDR-Net-Address> with your gateway address and netmask in slash-notation.
    @ECHO OFF
    ECHO Installing NetSupport School
    ECHO Do not close this window. It will close when the install is finished.
    
    REM Main Install
    msiexec /i "NetSupport School.msi" /qb
    
    REM Commands to Open ports
    netsh advfirewall firewall add rule name="Open Port 46200, smartsync-06" dir=in action=allow protocol=TCP localport=46200
    netsh advfirewall firewall add rule name="Open Port 5405, netschool" dir=in action=allow protocol=TCP localport=5405
    netsh advfirewall firewall add rule name="Open Port 5463, smartsync-01" dir=in action=allow protocol=TCP localport=5463
    netsh advfirewall firewall add rule name="Open Port 5485, smartsync-02" dir=in action=allow protocol=TCP localport=5485
    netsh advfirewall firewall add rule name="Open Port 5491, smartsync-04" dir=in action=allow protocol=TCP localport=5491
    netsh advfirewall firewall add rule name="Open Port 5493, smartsync-05" dir=in action=allow protocol=TCP localport=5493
    netsh advfirewall firewall add rule name="Open Port 5496, smartsync-03" dir=in action=allow protocol=TCP localport=5496
    
    REM Commands for Program Exceptions
    netsh advfirewall firewall add rule name="NetSupport School 2" dir=in action=allow program="%ProgramFiles%\Netsupport\Netsupport School\client32.exe" enable=yes remoteip=<CIDR-Net-Address>,LocalSubnet profile=domain
    netsh advfirewall firewall add rule name="NetSupport School 2" dir=in action=allow program="%ProgramFiles%\Netsupport\Netsupport School\client32.exe" enable=yes remoteip=<CIDR-Net-Address>,LocalSubnet profile=domain

It seems pretty straight-forward and plug-and-play. The firewall rules could (should?) be done through Group Policy instead.

Samsung 700T Non-INF Driver Installs for Win7 with SCCM

OK, so several Win7 drivers for the Samsung 700T slate PC don’t install via INF’s. Here’s how you get the last of ’em.

Downloads

  • From the Samsung Support Page, snag the following items.
    • Chipset Driver
    • Motion Sensor
    • Wacom Digitizer Pen
    • Graphics
    • Intel Management Engine
    • Intel WLAN

The Rest

Extract things such that your folder structure looks like this, adjusting version numbers as necessary.

  • C:\temp\
    • Chipset_9.2.0.1019\
    • Motion_Sensor_1.7.9.7\
    • Wacom_Digitizer_Pen_7.0.2.25\
    • Win7Vista_64_152254\
    • HECI_7.0.0.1144\
    • WLAN_Intel_64bit_15.0.0.75\

This is the batch file you’re looking for:

@ECHO OFF
ECHO Installing Samsung 700T Drivers
ECHO Do not close this window. It will close when the install is finished.

REM == Main Install ==

REM Chipset
.\Chipset_9.2.0.1019\infinst_autol.exe /s

REM Motion Sensor
.\Motion_Sensor_1.7.9.7\setup.exe /s

REM Wacom
.\Wacom_Digitizer_Pen_7.0.2.25\setup.exe /s

REM Graphics
.\Win7Vista_64_152254\setup.exe /s

REM Intel Management Engine
.\HECI_7.0.0.1144\setup.exe /s

REM Intel WLAN
.\WLAN_Intel_64bit_15.0.0.75\Install\Setup.exe /qb ADDLOCAL=WIFI_Driver REBOOT=ReallySuppress

Throw all this together in a package, and you’ll be good to go.

Enjoy!

Packaging Smart Notebook 10.8 with Galleries for SCCM

Hello again! Let’s get to it.

Downloads

Procedure

  1. Install the Smart Install Manager.
  2. Extract galleryessentials.zip to the folder C:\Temp\.
  3. Extract lat2_0_1en.zip (lesson activities zip) to the folder C:\Temp\.
  4. Verify that you now have 2 folders in C:\Temp. They should be named ‘Lesson Activity Toolkit’ and ‘SMART Essentials for Educators’.
  5. Using WinRAR, create a self-extracting zip file (EXE\SFX) named SNGallery.exe containing the 2 folders listed in the previous step. Use the following parameters:
    Add Recovery Record: True
    Mode: Fastest
    Advanced SFX Options -> Modes -> Hide start dialog
    Advanced SFX Options -> Update -> Extract and replace files.
  6. Place SNGallery.exe and “SMART Education Software 2011.msi” in your preferred package folder.
  7. Save the following code as SN_with_Gallery.xml, and add your license keys as necessary.
    <?xml version="1.0" encoding="utf-8" standalone="yes" ?>
    <AdminCustomization version="1.0" source="C:\temp\educationsoftwareinstaller2011adminwin2\SMART Education Software 2011.msi" lastSaveFile="" productVersion="10.8.205.0" productName="SMART Education Software 2011">
        <properties>
            <property name="$AI_CONTENT_TARGET_PATH" widget="localdestedit"></property>
            <property name="$AI_CONTENT_TARGET_PATH" widget="galleryedit"></property>
            <property name="$AI_GALLERY_SELECTION" widget="bg"></property>
            <property name="$AI_MATH_PROD_KEY" widget="math_prod_key">PRODUCT KEY HERE!</property>
            <property name="$AI_MIXED_PROD_KEY" widget="mixed_prod_key"></property>
            <property name="$AI_RESPONSE_MIXED_VE_MODE" widget="mixedvemode"></property>
            <property name="$AI_RESPONSE_MODE" widget="resp_setup_tool_mode">8</property>
            <property name="$AI_RESPONSE_MODE_TEMP" widget="setresponsemode_temp"></property>
            <property name="$AI_SCHOOLFILE" widget="schooledit"></property>
            <property name="$AI_SYNC_NAMINGSERVERLOC" widget="server_name"></property>
            <property name="$AI_VALID_CLASS_PROD_KEY" widget="valid_class_prod_key">1</property>
            <property name="$AI_VALID_MATH_PROD_KEY" widget="valid_math_prod_key">1</property>
            <property name="$AI_VALID_MR_PROD_KEY" widget="valid_mixed_prod_key">1</property>
            <property name="$AI_VALID_NB_PROD_KEY" widget="valid_nb_prod_key">1</property>
            <property name="$AI_VALID_RESP_PROD_KEY" widget="valid_resp_prod_key">1</property>
            <property name="$AI_VALID_SYNC_PROD_KEY" widget="valid_sync_prod_key">1</property>
            <property name="$PKG_INSTALL_SPU" widget="hiddencheckboxspu"></property>
            <property name="ACTIVATE_LICENSE" widget="nb_act_now">1</property>
            <property name="ADMIN_CONTENT" widget="ADMIN_CONTENT">1</property>
            <property name="AR" widget="AR"></property>
            <property name="ARTS_CONTENT" widget="ARTS_CONTENT">1</property>
            <property name="CA" widget="CA"></property>
            <property name="CERTIFICATE_FOLDER" widget="certificatefolder"></property>
            <property name="CLASS_PROD_KEY" widget="class_prod_key"></property>
            <property name="CONTENT_SOURCE_PATH" widget="localsourceedit">C:\Temp\Gallery</property>
            <property name="CONTENT_TARGET_PATH" widget="targetpath"></property>
            <property name="CS" widget="CS"></property>
            <property name="CUSTOMER_LOGGING" widget="customerlogging">2</property>
            <property name="CY" widget="CY"></property>
            <property name="DA" widget="DA"></property>
            <property name="DE" widget="DE"></property>
            <property name="DESKTOP_ICONS" widget="shortcuts">1</property>
            <property name="DISALLOW_DOWNLOAD" widget="DISALLOW_DOWNLOAD">1</property>
            <property name="EL" widget="EL"></property>
            <property name="ENABLE_ADMINISTERED_CLASSLIST" widget="admin_class_list">0</property>
            <property name="ENABLE_CONNECT_STUDENTS_USING_CLS" widget="server_ip">0</property>
            <property name="ENABLE_MATH_TRIAL" widget="mathInstall"></property>
            <property name="ENABLE_MR_TRIAL" widget="realityInstall"></property>
            <property name="ENABLE_STPCS" widget="tabletpc"></property>
            <property name="ENGLISH_CONTENT" widget="ENGLISH_CONTENT">1</property>
            <property name="EN_GB" widget="EN_GB"></property>
            <property name="ES" widget="ES"></property>
            <property name="ES_MX" widget="ES_MX"></property>
            <property name="ET" widget="ET"></property>
            <property name="EU" widget="EU"></property>
            <property name="FI" widget="FI"></property>
            <property name="FILE_PORT" widget="fileport"></property>
            <property name="FR" widget="FR"></property>
            <property name="FULL_GALLERY" widget="FULL_GALLERY">1</property>
            <property name="GA" widget="GA"></property>
            <property name="GD" widget="GD"></property>
            <property name="GEOGRAPHY_CONTENT" widget="GEOGRAPHY_CONTENT">1</property>
            <property name="GL" widget="GL"></property>
            <property name="HE" widget="HE"></property>
            <property name="HISTORY_CONTENT" widget="HISTORY_CONTENT">1</property>
            <property name="HI_IN" widget="HI_IN"></property>
            <property name="HR" widget="HR"></property>
            <property name="HU" widget="HU"></property>
            <property name="INSTALLDIR" widget="installdir"></property>
            <property name="INSTALL_BOARD" widget="pdInstall"></property>
            <property name="INSTALL_CLASSSUITE" widget="classInstall"></property>
            <property name="INSTALL_DOCCAM_DRIVERS" widget="DocumentCamera">1</property>
            <property name="INSTALL_NOTEBOOK" widget="notebookInstall">1</property>
            <property name="INSTALL_RESPONSE" widget="responseInstall"></property>
            <property name="INSTALL_SPU" widget="spu_option">1</property>
            <property name="INSTALL_SYNC" widget="syncInstall"></property>
            <property name="INSTALL_UNSIGNED_DRIVERS" widget="unsigneddrivers"></property>
            <property name="IS" widget="IS"></property>
            <property name="IT" widget="IT"></property>
            <property name="JA" widget="JA"></property>
            <property name="KK" widget="KK"></property>
            <property name="KO" widget="KO"></property>
            <property name="LAT_CONTENT" widget="LAT_CONTENT">1</property>
            <property name="LOSU_BRDTOOLS" widget="toolsstartupgroup">1</property>
            <property name="LOSU_RDM" widget="installdesktopmenu">1</property>
            <property name="LT" widget="LT"></property>
            <property name="LV" widget="LV"></property>
            <property name="MATH_CONTENT" widget="MATH_CONTENT">1</property>
            <property name="MATH_PROD_KEY" widget="real_math_key"></property>
            <property name="MI" widget="MI"></property>
            <property name="MIXED_PROD_KEY" widget="real_mr_key"></property>
            <property name="MK" widget="MK"></property>
            <property name="MS" widget="MS"></property>
            <property name="MY_CONTENT" widget="mycontentedit"></property>
            <property name="NB" widget="NB"></property>
            <property name="NBPLUGIN_INSTALLED" widget="NotebookPlugin">1</property>
            <property name="NB_PROD_KEY" widget="nb_prod_key">SMART NOTEBOOK PRODUCT KEY HERE!</property>
            <property name="NETWORK_CONTENT" widget="networkinstall"></property>
            <property name="NL" widget="NL"></property>
            <property name="PEOPLE_CONTENT" widget="PEOPLE_CONTENT">1</property>
            <property name="PL" widget="PL"></property>
            <property name="PRINT_CAPTURE" widget="printCapture">1</property>
            <property name="PRODUCT_NOTIFICATION" widget="productnotification">1</property>
            <property name="PT_BR" widget="PT_BR"></property>
            <property name="PT_PT" widget="PT_PT"></property>
            <property name="RESPONSE_ACTIVATION" widget="regfile"></property>
            <property name="RESPONSE_MODE" widget="setresponsemode">8</property>
            <property name="RESP_PROD_KEY" widget="resp_prod_key"></property>
            <property name="RO" widget="RO"></property>
            <property name="RU" widget="RU"></property>
            <property name="SCHOOLFILE" widget="real_schooledit"></property>
            <property name="SCIENCE_CONTENT" widget="SCIENCE_CONTENT">1</property>
            <property name="SECURE_BASE_PORT" widget="securebaseport"></property>
            <property name="SK" widget="SK"></property>
            <property name="SL" widget="SL"></property>
            <property name="SPECIAL_CONTENT" widget="SPECIAL_CONTENT">1</property>
            <property name="SPORTS_CONTENT" widget="SPORTS_CONTENT">1</property>
            <property name="SPU_TIME_FRAME" widget="checkdays">30</property>
            <property name="SQ" widget="SQ"></property>
            <property name="SR" widget="SR"></property>
            <property name="START_SNMP_SERVICE" widget="launchsnmp"></property>
            <property name="SV" widget="SV"></property>
            <property name="SW" widget="SW"></property>
            <property name="SYNC_NAMINGSERVERLOC" widget="real_server_name"></property>
            <property name="SYNC_PROD_KEY" widget="sync_prod_key"></property>
            <property name="TEAM_CONTENT_PATH" widget="teamcontentedit"></property>
            <property name="TR" widget="TR"></property>
            <property name="UK" widget="UK"></property>
            <property name="VA" widget="VA"></property>
            <property name="ZH_CN" widget="ZH_CN"></property>
            <property name="ZH_TW" widget="ZH_TW"></property>
        </properties>
    </AdminCustomization>
    
  8. Open Smart Install Manager and import the XML file saved in the previous step. Make any adjustments you deem important, then save the modifications as SN_with_Gallery.mst in your preferred package folder.
  9. Create a batch file with the following contents:
    @ECHO OFF
    ECHO Installing SMART Notebook 10.8 with Gallery
    ECHO Do not close this window. It will close when the install is finished.
    
    REM == Main Install ==
    SNGallery.exe
    msiexec /i "SMART Education Software 2011.msi" TRANSFORMS="SN_with_Gallery.mst" /qb
    

And…that should be all she wrote! Good luck ‘yall.

SCCM – Imaging a Dell Optiplex GX620 with XP

It turns out that Dell Optiplex GX620’s are a bit of a pain to image with XP.

Downloads

  • First, get all of your necessary drivers from the dell download page. Make sure you’ve got XP selected! Here are the drivers I needed:
  • Dell CCTK 2.1
  • R132539 – Intel Chipset Driver for GX620. Keep this driver separate — we need to turn it into a software package without importing it as a driver.

Overview

  • Generate BIOS Files
  • Modify NIC Driver
  • Create a Working Task Sequence

The Process

Generate BIOS Files

The first problem we need to overcome is that the Optiplex GX620 will -not- image if the CD drive is enabled in the BIOS. It’s due to some bug in the driver. Crazy! If you don’t disable the CD drive, XP will bluescreen on boot until the Intel Chipset driver is installed. How did I figure this out  you ask? Pain.

  1. Configure the GX620 BIOS the way you want it. Use the best SATA option available. From best to worst, the order is: RAID ON, AHCI, Optimized, or Normal. You should not use legacy.
  2. Boot the GX620 into a usable operating system (if this is no longer an option, you might be SOL — sorry).
  3. Install the Dell CCTK utility and capture the settings ‘from this machine’.
  4. Save two files — one with the CD drive enabled, and one without the CD drive enabled. Call these DellOptiGX620-CD.cctk and DellOptiGX620-NoCD.cctk.
    NOTE: I always uncheck ‘enabled’ next to SATA-0 through SATA-4 so that the cctk file does not contain instructions for the BIOS to enable or disable the SATA ports. Otherwise, the BIOS may force the ports to be enabled despite having no devices attached, which will cause an error on boot.
  5. Place these files in a package per the instructions here: Dell BIOS Settings with SCCM.

Modify NIC Driver

The NIC driver from Dell’s site doesn’t work when imported because of a bad reference in the .inf. The task sequence will crash once you get out of the WinPE phase because the system won’t be able to reach the SCCM server. Here’s the procedure to correct the issue.

  1. Extract the driver (R97582) to C:\Temp\GX620Nic
  2. Copy the file .\Win2K\v8.22.1\b57w2k.sys to .\WinXP\v8.22.1
  3. Place this file in your GX620 driver source directory on your sccm source share

You’re now ready to import the drivers! Go ahead and do this.

Create a Working Task Sequence

There are a couple challenges here too. Here are the basics:

  1. Disable the CD Drive
  2. Pick the correct mass storage driver
  3. Install the OS and use the original media since it requires an old HAL
  4. Apply a driver package
  5. Install the Intel Chipset Driver as a package
  6. Enable the CD Drive

Here are the TS actions; I’ll leave it up to you to do the actual implementation.

Disable the CD Drive

Use the following instructions to push the No-CD cctk file that you created: Dell BIOS Settings with SCCM. The WMI Query to target your TS will be the following:

select * from Win32_computersystem where Model like "Optiplex GX620%"

Pick the Correct Mass Storage Driver

You actually don’t need one. I put this section in so that people wouldn’t try for a while and get confused.

Install the OS using the original media or an image with an old HAL

If you ran a Build and Capture XP Task Sequence in VMWare, the resulting image will be incompatible with the GX620 and will bluescreen. I got around this by duplicating the Apply OS task sequence action, setting one of them to use the XP OS Installer instead of the XP Image, and scoping them with WMI queries. This isn’t awesome if you have a pretty customized image (again; thin images are best).

Apply a driver package

You’ll need to make a driver package with the Dell files above in the ‘Downloads’ section, copy them to a source folder, and import them. This is the same as for any other workstation model.

Install the Intel Chipset Driver as a Package

You’ll need to create a non-driver package (a regular package, as in like Acrobat Reader) for the Intel Chipset driver and install it or the system will lock up as soon as you enable the CD drive.

  1. Extract the contents of R132539 to a new folder in your SCCM server’s source folder.
  2. Create a new package, and a program. The command line to install is “setup.exe /s”. Not bad!
  3. Create an Install Package action and scope it with WMI queries to the GX620.

Enable the CD Drive

Same as ‘Disable the CD Drive’, but with the alternate cctk file.

That’s It!

Don’t forget that you can update the BIOS in the task sequence also. See these instructions: Updating Optiplex BIOS with SCCM.