I have a GPO (configured with loopback replace) that runs a logon script (.vbs) and linked it to an OU containing a W2012R2 RDS host.
I have made these (question related) changes to the policy:
Computer Configuration -> Policies -> Administrative Templates -> System -> Group Policy -> Configure Logon Script Delay -> Enabled -> minute: 0
User Configuration -> Policies -> Windows Settings -> Scripts (Logon/Logoff) -> MyScript.vbs
User Configuration -> Policies -> Administrative Templates -> System -> Run legacy logon scripts hidden -> Enabled
User Configuration -> Policies -> Administrative Templates -> System -> Display instructions in logon scripts as they run -> Disabled
When a user logs on, the script runs perfectly in the foreground, but according to the settings I have made, I would have expected the command prompt not to pop-up at all. So what am I doing wrong here, and what exactly is Microsoft's definition of a "legacy script"?
I am aware that I can write a small "wrapper-script" that calls cscript.exe
with the hidden parameter, but I would like to keep this as clean as possible and would like to understand why my settings don't work.
Best Answer
I figured out what's causing this, as my GPO settings are correct. The script that I need to run uses a function to force the 32bit version of the scripting host.
So replacing this call to
cmd.exe
......with this made it run hidden. Mission completed.