30 September 2011

Office 2010 Deployment Project Template

Microsoft originally created the Project 2007 template for the deployment of Office 2007 but has not created one for Office 2010. I am beginning the process of deploying Office 2010 and decided to convert the 2007 Project deployment template for an Office 2010 deployment, along with tweaks and changes made to it. I removed a lot of fields that pertain to It has been saved in Project 2010 format with compatibility mode enabled.

Click here to download the Project 2010 deployment template

Dell BIOS Switches

The Dell BIOS executables do have switches. Dell does not openly publish the list. There are snippets in obscure locations on their site of two of these. There maybe more switches than I have listed, and if so, please post them, or if you know what one of the switches I have not defined does, please let me know. Before I discovered there were switches, I had gone to the trouble of writing a BIOS Silent Flash script that pushed the extracted hdr file to the system.

Here is the list with definitions of the switches I have been able to define:
Switch Definition
-factory Resets the BIOS to factory settings
-forceit Forces the BIOS updates even if a laptop is not plugged into an AC power source
-forcetype Forces and BIOS file to any Dell model machine
-jabil Force the BIOS updated even though the system says it is the wrong BIOS version
-nopause Prevents the BIOS update from prompting when executing
-norburesults No remote BIOS update results (no-rbu-results)
-noreboot Prevents the PC from rebooting after the BIOS is flashed
-prgboot Most likely is used to disable windows features when flashing from a bootable DOS media
-rburesults Remote BIOS update results (rbu-results)
-reportstatus Writes a dat file containing the current installed BIOS version
-wipeall Cleans the DMI Data Area, Password, Service Tag, and Asset Tag
-wipeclean Clears the ESCD and DMI data tables. This is commonly used to resolve conflict issues and corrupted BIOS settings
-writehdrfile extracts the hdr (header) file to be flashed to the BIOS
-writehexfile extracts the hex (hexadecimal) format file to be flashed to the BIOS
-writeromfile extracts the ROM (Read Only Memory) file to be flashed to the BIOS

Command Line Execution Examples:

Used with MDT/SCCM as an application install allowing for the MDT/SCCM to reboot the machine upon completion:
T3400A11.EXE -nopause -noreboot

Writes a hdr, hex, and rom file
T3400A11.EXE -writehdrfile -writehexfile -writeromfile

Forces a BIOS update on a laptop without an AC power source
T3400A11.EXE -forceit -nopause

Creates a dat file in the same directory that contains the current installed BIOS version
T3400A11.EXE -reportstatus

NOTE: Not all of these switches work on all Dell BIOS updates executables. They vary by model. I have not confirmed these on all models, but I can tell you that the nopause, noreboot, writehdrfile, writehexfile, writeromfile, forceit, and reportstatus have worked on all 35 models that the company I work for has.

29 September 2011

Orca Tutorial -- Modifying an MSI file

In order to modify the installation process of an MSI file, you will need to use a program that can look at the MSI database. For that, I use Orca and Admin Studio. Both are great tools, but Orca is more in-depth and does not require an SCCM server.

The first thing is to download and install Orca. It is freeware and can be found in several places on the net. Second, make a copy of an MSI file to play around with.

There are usually three things we use Orca for. Those are: 1) the installation location, 2) Lookup properties to include in the command line argument, and/or 3) Answer all prompts.

When you first open up, I am using Quicktime.msi as an easy example, you will see the Tables on the left side. There are 4 primary tables that are most commonly dealt with in making changes. I have highlighted them in yellow and red, with red, Component and Property being the two that almost always will be used 95% of the time.

The property table is the table that has the most commonly changed properties. In my experience, the most common property I change is the INSTALLDIR, which sets the installation directory. The Component Table contains most of the conditions on each window. When you click on the component table, sort by the Condition column. This column contains most of the options in the installation windows. To make a change to one of these, go to the Property Table and add the condition as a property. Next, enter the preferred value for that condition. Checkboxes will be a 1 or 0 value, On or Off. You can also go to the Checkbox Table to see the list of all available checkboxes.

NOTE: The first thing you need to do before making changes is to click on the Transform--->New Transform. This sets the process up to generate the Transform file. This has to be done before you start making changes to the MSI file, otherwise you will lose all of the changes made. Second, unless you are absolutely sure that the changes you made are permanent, DO NOT CLICK FILE--->SAVE. This will permanently make changes to your MSI file and if you need to undo them, you will have to replace the file itself. Once you have created the new transform and made the changes, the last step is to click Transform-->Generate Transform. This creates the MST file that will be associated in the msiexec.exe command line argument.

There is also the option of not making a change inside the MSI and adding the Property to the command line.

So here are two examples of the msiexec.exe command line argument:
1) Including the transform file you generated
  • msiexec.exe /i QuickTime.msi TRANSFORMS=Transform.mst /qb- /norestart
2) Using the properties found inside the MSI Tables at the end of the command line argument
  • msiexec.exe /i QuickTime.msi /qb- /norestart INSTALLDIR="c:\temp"

I hope this helps in learning Orca. I pretty much learned all of my knowledge on my own and by messing around with installation files.

23 September 2011

MDT/SCCM 2010/2012 - Adding Optional Language Packs for Windows 7 to appear Optional in the Language Pack Window

There was little documentation on how to get a language pack to appear as an optional installation in the MDT 2010 process. You might first think to install it as an update as I did, but this is wrong unless you want it defined as a mandatory installation in the customsettings.ini file. So here is how to make the language pack window appear with all of the language packs you installed:
  1. In the customsettings.ini file, add the line SkipPackageDisplay=NO
  2. Create a folder under Applications names Language Packs
  3. Create a new application that installs the lp.cab file
    1. Quiet Install Command: pkgmgr.exe /ip /m:<Path to cab file>\lp.cab
You will need to create a separate application for each language pack that you want to make optional. That is all that's to it!

List of SCCM and MDT 2010/2012 Variables

There are three ways to get the list of variables that MDT uses:

  1. Technet has a comprehensive list of the SCCM/MDT variables located here.
  2. Michael Niehaus has a script that will dump all of the variables to a text file located here.
  3. This is the method I use. A SQL database will need to be created and linked to the MDT. Once done, click on the Roles subtab. Click New and select Details. All available variables will be listed.

20 September 2011

MDT/SCCM 2010 - Running Applications Installations under different credentials

You may have an application that needs special credentials when installing during the MDT deployment. As you have seen, there is no where to enter these credentials in the Applications section. There is the runas.exe, but the password cannot be passed through the command line as it demands manual entry. VBScript can be used in the installation package, but do you want to expose the password on the network?

You can use PsExec.exe to install the application under a specified credential. It is available for download here. Once it is downloaded, you can do one of the following: 1) add a task sequence in MDT to install the executable in the %SYSTEM32% directory on the target machine or 2) Place the PsExec.exe on a network share that will be accessible during the deployment.

So now that you have PsExec.exe available, here is how you use it in the build process:

  1. Create a new application in the Applications folder of MDT
  2. Fill in the Working directory with the location where the application resides
  3. The command line will be as follows:

<location of psexec.exe>\PsExec.exe \\%COMPUTERNAME% /accepteula -u <domain>\<username> -p <password> <installation commandline>

NOTE: The \\%COMPUTERNAME% is needed. You will continuously get an error 1 if it is not present. This uses the local computer name. The /accepteula is needed because if it is not accepted, it will prompt for acceptance during the silent install. The registry key is located under the HKCU, leaving this the easiest way to circumvent that. <location of psexec.exe> can be omitted if you have psexec.exe installed into the system32 directory.

VBScript NOTE: If you are running a VBscript for the , you do not need to put any of it in quotations.