SynchronousCommand specifies a single command to run the first time a user logs on to the computer.
FirstLogonCommands are run after logon but before the user sees the desktop.
If you create a user account that does not include administrative privileges, the following commands may not run:
- If User Account Control is enabled, then when that user logs in for the first time, a dialog box appears, prompting the user with an option to allow an administrator to apply the commands. If the user selects Cancel, these commands don’t run.
- If User Account Control is disabled, these commands don’t run.
When you add a script using FirstLogonCommands, it will be triggered on the next boot, even if you boot into audit mode using Ctrl+Shift+F3. If you plan to use audit mode later, add the following setting to skip this script automatically: Microsoft-Windows-Deployment\Reseal\Mode = Audit.
These commands now run asynchronously with respect to the other work happening when a user logs on to the computer. However, each command is still run sequentially in the specified order. That is, unlike Microsoft-Windows-Shell-Setup-LogonCommands-AsynchronousCommand all commands using these unattend settings are not started at the same time, and still wait for the previous command to finish.
|CommandLine||Specifies the path to the command to run.|
|Description||Describes the command to run.|
|Order||Specifies the order in which the command is run.|
|RequiresUserInput||Specifies whether the first logon command launches a dialog box that requires input from the user. This can reduce the delay of the "Preparing Your Desktop" screen.|
FirstLogonCommands are not supported in Windows 10 in S mode.
Valid Configuration Passes
Microsoft-Windows-Shell-Setup | FirstLogonCommands | SynchronousCommand
For the list of the supported Windows editions and architectures that this component supports, see Microsoft-Windows-Shell-Setup.
The following XML output shows how to set first logon commands.
<FirstLogonCommands> <SynchronousCommand wcm:action="add"> <CommandLine>c:\synccommands\command1.exe</CommandLine> <Description>Description_of_command1</Description> <Order>1</Order> </SynchronousCommand> <SynchronousCommand wcm:action="add"> <CommandLine>c:\synccommands\command2.exe</CommandLine> <Description>Description_of_command2</Description> <Order>2</Order> </SynchronousCommand> </FirstLogonCommands>