System Variables in Registry Bundle are incorrectly expanded to their values

  • 7014926
  • 17-Apr-2014
  • 08-May-2014

Environment

Novell ZENworks Configuration Management 11.2 Bundles

Situation

If a system variable such as %SystemRoot% is imported in to a Registry Bundle it will be expanded to Windows_System32.

Resolution

This is working as designed as this is the behaviour most administrative users of the product require.

The agent will try to evaluate any string placed between percentage signs as an environment variable which explains why %SystemRoot% is expanded to C:\Windows_system32.

If %SystemRoot% is required as a string rather than being evaluated then the following format, with double percent signs, should be used; e.g.
%%SystemRoot%%
Which will mean that the agent will strip out only one pair of percentage signs leaving the required string.

Additional Information

Test Scenario
  • Example Branch exported from the Windows Registry Editor, REGEDIT.EXE

    Windows Registry Editor Version 5.00
    [HKEY_CURRENT_USER\Console]

    [HKEY_CURRENT_USER\Console\%SystemRoot%_system32_cmd.exe]
    "WindowPosition"=dword:015e0000

    [HKEY_CURRENT_USER\Console\%SystemRoot%_System32_cscript.exe]
    "WindowPosition"=dword:015e0000
    "FontSize"=dword:000c0008
    "FontFamily"=dword:00000030
    "FontWeight"=dword:00000190

  • Example Branch imports directly in to the registry correctly, with the System Variables intact



  • Example Branch imports in to ZCC correctly, with the System Variables intact
    ZCC -> [Create New Windows Bundle] -> Actions -> Install -> Add ->
    Registry Edit -> General -> Import -> [Registry File, above]




  • The bundle is applied incorrectly, with the System Variables expanded to their values