FirstLogonCommands

Applies To: Windows 7, Windows 8, Windows 8.1, Windows Server 2008, Windows Server 2008 R2, Windows Server 2012, Windows Server 2012 R2, Windows Vista

FirstLogonCommands specifies commands to run the first time a user logs on to the computer. These commands run only once.

When a user with administrative privileges logs in for the first time, these commands are run with elevated access privileges.

Note

In Windows 8 and Windows 8.1, oobe.cmd and Setupcomplete.cmd are disabled if an OEM product key is used. This is to ensure that end users reach Start as quickly as possible. Any tools or services that use this infrastructure need to be moved to post Out-Of-Box Experience (OOBE) tasks.

Note

If you create a user account that does not include administrative privileges, the commands may not be executed:

  • 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 are not executed.

  • If User Account Control is disabled, these commands are not executed.

The commands run after logon, prior to showing the desktop.

The commands run in the order specified. Each command must finish before the next command runs.

If the command launches a separate system process, the system process will run independently of the commands. This enables you to create commands that terminate quickly, allowing the user to reach the desktop faster.

Other processes, such as services, are not restricted by FirstLogonCommands and will continue to start or to terminate independently.

To start a command that needs to finish before other commands can start, use FirstLogonCommands. To run services or commands that can start at the same time, use LogonCommands instead.

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.

Child Elements

SynchronousCommand

Specifies a command to run the first time a user logs on to the computer, its description, and the order in which it is run.

Valid Configuration Passes

oobeSystem

Parent Hierarchy

Microsoft-Windows-Shell-Setup | FirstLogonCommands

Applies To

For a list of the supported Windows® editions and architectures that this component supports, see Microsoft-Windows-Shell-Setup.

XML Example

The following XML output shows how to specify two commands to run after first logon.

<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>

See Also

Concepts

RunSynchronous
LogonCommands
Microsoft-Windows-Shell-Setup