Registry value "iTimePrefix" reverts to it's default value

Version 1

    Verified Product Versions

    Environment Manager 10.0Environment Manager 8.6Environment Manager 8.5Environment Manager 10.1


    Environment Manager reverts the "iTimePrefix" value back to it's default value.



    When trying to change the default value for "HKCU\Control Panel\International\iTimePrefix" via a Registry Set Value Action in Environment Manager you may notice the value is not being changed and remains as the default value.


    Upon investigation Environment Manager does successfully change the value via the Registry Set Value Action, but immediately reverts the value back to it's default value.


    The cause of this is due to the DesktopSettings registry snapshot which is taken during logon, the snapshot is used to detect changes in the registry for particular keys and values, "iTimePrefix" is one of these values. When the "iTimePrefix" value is changed as part of the Registry Set Value Action, Environment Manager detects the value has changed from the value which was captured in the DesktopSettings registry snapshot, Environment Manager proceeds to revert the registry value back to the snapshot state. The detection can be seen in the following log lines.

    L4 T5332 12:05:10.617 [DesktopSettings::CRegKeyData::operator ==] Different [S-1-5-21-2763190493-1049971358-43289177-1191\Control Panel\International] != [S-1-5-21-2763190493-1049971358-43289177-1191\Control Panel\International], value [iTimePrefix] different

    L3 T5332 12:05:10.617 [Internal_CompareSnapshots] Keys [S-1-5-21-2763190493-1049971358-43289177-1191\Control Panel\International] and [S-1-5-21-2763190493-1049971358-43289177-1191\Control Panel\International] differ - refresh list has [1] items

    L4 T5332 12:05:10.618 [Internal_CallRefreshes] [ENTER]

    L3 T5332 12:05:10.618 [RefreshInvoker::invoke] Refreshing [Locale Refresh], calling [RefreshLocale] with [0] payload

    L4 T5332 12:05:10.618 [LoadAllLocaleValues] [ENTER]


    The current workaround is to move the Registry Set Value Action to the Pre-Session Trigger under Logon, this allows Environment Manager to change the value before the DesktopSettings registry snapshot is taken, thus preventing the revert.