Secret task sequence variable value Exposed
We have the need to run a command line in the task sequence and leverage a secret value TS variable ADMACCTPW set with the local admin account password. Example Run Command Line "net user admin %ADMACCTPW%
The issue is in the SMSTS.log the variables are all expanded like the ProgramName = 'net user admin mynewadminpassword' InstallSoftware 7/1/2016 12:58:58 PM 4468 (0x1174)
Thereby exposing the secret value TS variable
Updating to completed – this item is addressed in our 1806 release. Thanks for the suggestions and feedback
Sassan Fanai commented
Agree with Mike D this doesn't really work you would expect.
OSDDoNotLogCommand should mask the Command line in smsts.log, as the hidden TS variable is expanded and shown in clear text, masking the program name doesn't really make sense imo.
TS Variable configured with "Do not display this value" and it's value set to "secret1" in this
example. OSDDoNotLogCommand also set to True.
In smsts.log you see this lines:
- ProgramName is not shown in log since task sequence variable 'OSDDoNotLogCommand' is set to 'True'
- ProgramName = '*******************'
- Command line cmd /C echo secret1 >> C:\TEMP\hidden.txt returned 0
"Secret1" being the masked TS variable value.
There also seems to be a bug, where the masked TS variable is changed to a string/guid IF you change the TS after you've set the masked value. Following the example above, you'd see the following in smsts.log AND in the "hidden.txt" file in this example.
Command line cmd /C echo fee4457b-e6c3-4618-81f8-f26885e49866 >> C:\TEMP\hidden.txt returned 0
mike d commented
This still doesn't work as expected based upon the original requester's intentions in CB1806.
The SMSTS.log still contains the full command line and plain-text variable when using both "Do not display this value" when setting/creating the TS Variable and setting "OSDDoNotLogCommand" to TRUE prior to running the step.
A. G. commented
Workaround for the time beeing
Use a powershell wrapper: SMSTSEnvironment doesn't expose the task sequence variable in smsts.log.
But nevertheless, Microsoft, please fix this behaviour.
Michael Kenntenich commented
Your workaround works, but the basic issue is that "secret" values for Task sequence variables are exposed in smsts.log although it is protected in the console and database. The tool smsswd.exe should really be changed so that it won't expose the full program name including all parameters when a secret task sequence variable is used.