Problem:
Changes made to the "Userinit" registry value in the key shown below do not remain.
"HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon"
Symptoms:
Some third-party applications write to "Userinit" during installation, appending the original value in order to execute at user logon. ProfileUnity's client tools write to this key during installation as well, prepending the original value with, "C:\Program Files\ProfileUnity\Userinit.exe", as shown in the example below.
Default Windows Value:
C:\Windows\System32\userinit.exe,
Post Client Tools Installation:
6.8.4 and earlier - "C:\Program Files\ProfileUnity\Userinit.exe",
6.8.5 and later - "C:\Program Files\ProfileUnity\Client.Net\LwL.ProfileUnity.Client.Userinit.exe",
"LwL.ProfileUnity.Client.CmdService.exe" actively monitors for changes to "Userinit", reverting any that are made. To perform this operation, "LwL.ProfileUnity.Client.CmdService.exe" compares "Userinit" against values present in the two registry keys shown below. Both keys are created during the installation of the client tools.
Values:
"ExpectedUserinit" & "OriginalUserinit"
Keys:
"HKEY_LOCAL_MACHINE\SOFTWARE\Liquidware Labs\ProfileUnity"
"HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Liquidware Labs\ProfileUnity"
"OriginalUserinit" contains the data present in "Userinit" prior to client tools installation. Should the client tools be uninstalled, this data will be written back to "Userinit", restoring the value to its original state.
Possible Resolution(s):
In order to prevent the reverting of changes made to "Userinit" after the client tools are installs, append said changes to both "OriginalUserinit" and "ExpectedUserinit" in the ProfileUnity registry keys previously referenced.
Using third-party software vendor, "3rdParty", as an example, the string below is the data to be defined in both "ExpectedUserinit" and "OriginalUserinit" values.
6.8.4 and earlier - "C:\Program Files\ProfileUnity\Userinit.exe","C:\Program Files\3rdParty\app.exe",
6.8.5 and later- "C:\Program Files\ProfileUnity\Client.Net\LwL.ProfileUnity.Client.Userinit.exe","C:\Program Files\3rdParty\app.exe",
The method for changing these values will depend on your environment. For example, if your environment is comprised of non-persistent VDI, the most practical approach would likely be to simply change these values on your master image. Another option would be to define a registry preference within a domain GPO and push it to the desktops running ProfileUnity.
Product: ProfileUnity
Product Version: 6.8.x and newer