SMSINST: %SystemRoot% Values Are Not Written to Registry Correctly

This article was previously published under Q185902
This article has been archived. It is offered "as is" and will no longer be updated.
When Windows NT environment variables (such as %SystemRoot%) are added tothe registry during a repackage, they are captured by a repackage process,but the resulting script does not write the correct value(s) to theregistry on the client during the Systems Management Server Installerinstallation routine.
Systems Management Server Installer uses the syntax %VARIABLENAME% todenote internal script variable values. For example, if the Installervariable USER is set to a value of 'John Smith', using the %USER% syntaxwould cause 'John Smith' to be substituted wherever %USER% appeared.

Windows NT utilizes the same syntax to denote the value of environmentvariables. When the Systems Management Server Installer run-time encountersthe value %SystemRoot% in an Edit Registry script item, it interprets thisas the Installer variable value for %SystemRoot%, rather than the WindowsNT environment variable value. Usually the Installer does not have aspecific value defined for this, so nothing is actually written to theregistry.
Using %SystemRoot% as an example, you would change the string %SystemRoot%to %%SystemRoot%% wherever it exists in the Installer script. This causesthe literal value %SystemRoot% to be written to the system, which allowsthe environment variable to be resolved correctly.
Microsoft has confirmed this to be a problem in Microsoft SystemsManagement Server Installer version 1.0. We are researching this problemand will post new information here in the Microsoft Knowledge Base as itbecomes available.

Article ID: 185902 - Last Review: 01/10/2015 11:23:49 - Revision: 1.2

  • Microsoft Systems Management Server 1.0 Standard Edition
  • kbnosurvey kbarchive kbbug kbpending KB185902