SoftwareCentral · Configuration

Task Sequence Configuration

When you import or reinstall a computer, SoftwareCentral lets the operator choose an operating system without ever mentioning a task sequence. This page shows how to prepare your OSD task sequences so they read the choices SoftwareCentral makes.

Machine variables Software Groups Organizational Unit USMT and rename

1 How it works

A task sequence only shows up in SoftwareCentral when it is deployed to a collection, and only one task sequence should be deployed to each collection. The operator does not see the task sequence: the Operating System list in Import Computer and Reinstall Computer shows the name of the collection it is deployed to.

Configuration Manager console with the task sequence Deploy Windows 8.1 Enterprise x64 selected and its deployment to a collection of the same name
In Configuration Manager the task sequence Deploy Windows 8.1 Enterprise x64 is deployed to a collection of the same name. That collection name is what SoftwareCentral shows.
Import Computer page with the Select computer template box, Required computer settings (name generation series, Computer Name, MAC Address, SMBIOS GUID and Operating System), and the collapsed Optional computer settings and User Device Affinity sections
Import Computer. The Operating System under the required settings is the task sequence; the optional settings below it become machine variables.

Import Computer has two groups of settings. The required computer settings are the name and the MAC address, which SoftwareCentral uses to create the computer in Configuration Manager on the site selected at the top right, and the Operating System. The optional computer settings are written to the computer object as machine variables. Your task sequence reads those variables to customise each installation, so one task sequence can serve many kinds of computer.

Scripts The scripts used in this guide are in the installation folder under Uploads\TsVbScripts\. The button Update Scripts under Settings › General Settings › Maintenance updates the ‘SoftwareCentral Tasksequence Scripts’ package in Configuration Manager; use it when the scripts have changed, instead of editing copies by hand.

2 The machine variables

Each optional setting becomes one variable. The names live in the SoftwareCentral database, in the table MachineVariableType, column VariableName. You may rename a variable there; change nothing else in that table. The standard variables are:

Optional computer settings expanded on Import Computer: Variable Format, Keyboard, System Locale, User Locale, Time Zone, Organizational Unit, Software Group with its list of groups, Computer Association and Username
The optional computer settings, as shown when you import a computer.
The MachineVariableType table with the columns MachineVariableTypeID, Name, DisplayName, Visible, Type and VariableName, listing LAB_OperatingSystem, LAB_InputLocale, LAB_SystemLocale, LAB_UserLocale, LAB_TimeZone with VariableName OSDTimeZone, LAB_OrganizationUnit, LAB_SoftwareGroup and LAB_LanguageCode
The MachineVariableType table. Only VariableName may be changed. Note that LAB_TimeZone is written under the variable name OSDTimeZone.
Setting in the interfaceVariableHow the task sequence reads it
Operating SystemLAB_OperatingSystemDecides the format of the other variables, because Windows XP uses a different kind. SoftwareCentral converts the values for XP itself; you do not need to handle this variable.
KeyboardLAB_InputLocaleThrough an unattended answer file, see section 3.
System LocalLAB_SystemLocaleThrough the answer file.
User LocalLAB_UserLocaleThrough the answer file.
Time ZoneOSDTimeZone (type LAB_TimeZone)Through the answer file, as %OSDTimeZone%.
Organizational UnitLAB_OrganizationUnitIn the Apply Network Settings step, section 4.
Software GroupsLAB_SoftwareGroup001, 002 …, plus the package and application variablesWith the Install Package and Install Application steps, section 5.
Language codeLAB_LanguageCodeCurrently not used.

3 Locale, keyboard and time zone

These four are read through an unattended answer file, for instance Unattend.xml.

  1. In the task sequence open the step Apply Operating System Image and set it to use an unattended or sysprep answer file.
  2. In that answer file, use the task sequence variables in the places Windows expects them: InputLocale = %LAB_InputLocale% (keyboard), SystemLocale = %LAB_SystemLocale%, UserLocale and UILanguage = %LAB_UserLocale%, and TimeZone = %OSDTimeZone%.
Task Sequence Editor, Apply Operating System Image step, with Use an unattended or Sysprep answer file for a custom installation ticked, a package and the file name Unattend.xml
The Apply Operating System Image step uses an unattended answer file (File name Unattend.xml).
Part of Unattend.xml with InputLocale, SystemLocale, UserLocale, UILanguage and TimeZone set to the variables %LAB_InputLocale%, %LAB_SystemLocale%, %LAB_UserLocale% and %OSDTimeZone%
The relevant part of Unattend.xml.
Time zone format The setting Use .Net Time zones under Settings › Variables decides whether SoftwareCentral writes the time zone as a Microsoft .NET time zone when it adds the variable. Make sure the format matches what your answer file and operating system expect.

4 Organizational Unit

  1. Add an Apply Network Settings step to the task sequence.
  2. In its Domain OU field enter the variable %LAB_OrganizationUnit%. The step then reads the OU from the machine variables of the computer.
  3. After the Configuration Manager client has been installed, add a Run Command Line step that runs the script MoveClientToCorrectOU.vbs with the OU variable as its argument: cscript.exe MoveClientToCorrectOU.vbs "%LAB_OrganizationUnit%". It moves the client to the assigned OU.
Task Sequence Editor, Apply Network Settings step, Join a domain selected, Domain OU set to %LAB_OrganizationUnit%
Apply Network Settings: Domain OU is %LAB_OrganizationUnit%.
Task Sequence Editor, Run Command Line step named Move Client to Variable assigned OU, with the command line cscript.exe MoveClientToCorrectOU.vbs %LAB_OrganizationUnit%
The Run Command Line step that moves the client.

5 Software Groups

A Software Group is a set of packages or applications that are installed in a given order. A group can be deployed to an existing computer, or used while a computer is imported or reinstalled. To make your task sequence install the groups, add three things after the operating system has been installed and configured.

StepAdd to the task sequenceSet it up like this
1Install PackageChoose Install software packages according to a dynamic variable list. SoftwareCentral adds the packages of the group as variables on the computer. Use as Base variable name the name you have under Software Group Package Base Variable Name.
2Install Application, after the Install Package stepUse as Base variable name the name you have under Software Group Application Base Variable Name.
3Run Command LineRun the script AddToSoftwareInstallCollectionSccm2012.vbs. It adds the computer to the individual install collection of each package and application, so they stay installed and managed afterwards.
Task Sequence Editor, Install Package step with Install software packages according to dynamic variable list selected and Base variable name LAB_SoftwareGroupApp
Step 1, Install Package: Base variable name LAB_SoftwareGroupApp.
Task Sequence Editor, Install Application step with Install applications according to dynamic variable list selected and Base variable name LAB_ApplicationBaseVariable
Step 2, Install Application: Base variable name LAB_ApplicationBaseVariable.
Task Sequence Editor, Run Command Line step named Add Client to Software Install, command line cscript.exe AddToSoftwareInstallCollectionSccm2012.vbs, package SoftwareCentral Tasksequence Scripts
Step 3, Run Command Line: the script comes from the SoftwareCentral Tasksequence Scripts package.

Both base variable names are under Settings › SCCM › Packages. The names used in the screenshots above, and the usual values, are LAB_SoftwareGroupApp for packages and LAB_ApplicationBaseVariable for applications. SoftwareCentral appends a three-digit number to the base name for each item (001, 002 and so on), which is what the dynamic variable list reads.

Step 3 needs the right collection structure The script adds computers to the install collections of your packages and applications, so those collections must follow a structure SoftwareCentral understands. See Mend Packages and Applications.

The setting Add non-Software Group packages as Machine Variables under Settings › Variables makes SoftwareCentral also install the computer's individual packages from the task sequence, and remove the computer from their individual install collections. Turn it on only when every package and application can be installed by a task sequence.

6 Reinstall options

Option in Reinstall ComputerWhat SoftwareCentral does, and what to do
Migrate User StateWhen ticked, SoftwareCentral adds the variable LAB_USMT with the value True to the computer. Change your task sequence so it migrates the user state (USMT) when that variable exists. The tick box is shown when Show USMT is on under Settings › SoftwareCentral › Interface Settings.
A naming schema (rename)SoftwareCentral sets the variable OSDComputerName on the computer to the next name in the schema. The task sequence applies it in its Apply Windows Settings step: the step uses the variable as the computer name.

If you have followed the steps above, your task sequence is fully compatible with the default import and reinstall settings of SoftwareCentral. For the full list of variables and what they contain, see Machine Variable Names.

7 Best practice

  • Work on a copy. Duplicate the task sequence, add the SoftwareCentral steps to the copy, and keep the original as a fallback.
  • One task sequence, one collection. Give each collection a clear, operator-friendly name: that is what the operator sees in the Operating System list.
  • Keep the variable names in step. If you rename a variable in MachineVariableType or change a base variable name in Settings, change the same name in every task sequence, answer file and script that uses it.
  • Leave the scripts alone. Use Update Scripts rather than editing copies of the scripts in the task sequence package.
  • Test on a virtual machine first. Import a test computer, deploy, and check that locale, OU, software groups, USMT and the computer name all arrive as expected before you let operators use it.
  • Make the account rights match. The accounts the task sequence uses to join the domain and move the client need rights on the target OU.
  • Check the log. SoftwareCentral writes what it did for each import and reinstall to its log.

8 Troubleshooting

You seeCheck
An operating system is missing from the Operating System listThe task sequence is not deployed to a collection, or the collection does not follow SoftwareCentral's structure.
The computer installs with the wrong keyboard, locale or time zoneThe answer file does not use the variables, or is not set on the Apply Operating System Image step.
The computer lands in the default OUThe Apply Network Settings step does not have %LAB_OrganizationUnit% in Domain OU, or MoveClientToCorrectOU.vbs was not run.
No software from the Software Group is installedThe base variable names in the Install Package and Install Application steps differ from the names in Settings.
User data is not migratedThe task sequence does not test for LAB_USMT.
The computer keeps its old nameThe step that applies the name does not read OSDComputerName.

See also: Machine Variable Names · Import Computer · Reinstall Computers