Anavem
Languagefr
scriptsComputer ConfigurationNot configured

Specify script execution timeout for non-interactive logon

Sets timeout in seconds for scripts running during non-interactive system startup. Prevents runaway scripts from blocking boot.

10 May 20264 min
Policy path
Computer Configuration > Policies > Administrative Templates > System > Scripts
Supported on
Windows 10, Windows 11, Windows Server 2016 and later

Sets timeout in seconds for scripts running during non-interactive system startup. Prevents runaway scripts from blocking boot. Security baselines recommend setting it to 3600.

Description

Specify script execution timeout for non-interactive logon is a Windows Group Policy setting located under Computer Configuration > Policies > Administrative Templates > System > Scripts. It applies to the Computer Configuration branch and is classified as a Warning-level policy in the Startup & Shutdown Scripts category.

Sets timeout in seconds for scripts running during non-interactive system startup. Prevents runaway scripts from blocking boot.

Microsoft sets the default value to 0 while industry security baselines (CIS, NIST, DISA STIG) recommend 3600.

Under the hood, this policy is enforced through the Windows registry at HKLM\Software\Policies\Microsoft\Windows\System\Scripts using the value name ExecTimeout. Modifying the value directly through regedit.exe or PowerShell produces the same effect as configuring the GPO, but going through Group Policy is preferred so that the setting is centrally managed and survives reboots, image rebuilds, and policy refresh cycles.

In-depth explanation

This setting has a meaningful impact on the security posture or operational stability of the system. Leaving it at the Microsoft default is acceptable for standalone or low-risk environments, but most security baselines (CIS, NIST, DISA STIG) explicitly call for hardening it before the device is exposed to untrusted users or networks.

The policy is grouped under Startup & Shutdown Scripts, which means it is typically applied through a domain-wide GPO linked at the OU level. In a multi-tenant MSP context, scope it through WMI filters or security group filtering rather than linking at the domain root, so that you can roll out progressively (pilot OU → wider rings → all production).

The setting takes effect after the next Group Policy refresh (gpupdate /force for immediate testing, or by default within ~90 minutes for workstations and ~5 minutes on domain controllers). For computer-side policies a reboot may be required; for user-side policies, a sign-off/sign-on cycle is enough.

Use cases

  • Apply organization-wide hardening of startup & shutdown scripts on all domain-joined Windows endpoints.
  • Roll out a CIS Benchmark-aligned baseline targeting 'Specify script execution timeout for non-interactive logon' via a dedicated GPO.
  • Reduce attack surface for accounts that handle privileged credentials or sensitive data.
  • Standardize the configuration across multiple customer tenants for an MSP-managed fleet.

Security implications

Leaving this policy at default does not directly grant an attacker access, but it widens the blast radius once initial access is obtained – passwords are easier to guess, lockout doesn't fire, audit trails are incomplete, or lateral movement is quieter. Most regulators and cyber-insurance underwriters now expect this control to be in place at least at the recommended level.

How to configure

  1. Open Group Policy Management Console (gpmc.msc) on a domain controller or a workstation with RSAT installed.
  2. Create or edit a GPO linked to the OU containing the target computer configurations. We recommend a dedicated baseline GPO (e.g. SEC – Startup & Shutdown Scripts) instead of editing Default Domain Policy.
  3. Navigate to Computer Configuration > Policies > Administrative Templates > System > Scripts.
  4. Open Specify script execution timeout for non-interactive logon and set it to 3600.
  5. Click OK and close the editor.
  6. On the target endpoint, run gpupdate /force (or wait for the next refresh cycle), then verify with rsop.msc or gpresult /h report.html.

Direct registry path: HKLM\Software\Policies\Microsoft\Windows\System\Scripts\ExecTimeout. You can apply the same change with PowerShell:

New-Item -Path 'HKLM\Software\Policies\Microsoft\Windows\System\Scripts' -Force | Out-Null
Set-ItemProperty -Path 'HKLM\Software\Policies\Microsoft\Windows\System\Scripts' -Name 'ExecTimeout' -Value <value> -Type DWord

Registry mapping

Registry pathHKLM\Software\Policies\Microsoft\Windows\System\Scripts
Value nameExecTimeout
Value typeREG_DWORD
Enabled value3600
Disabled value0

Frequently asked questions

What does the Specify script execution timeout for non-interactive logon Group Policy do?
Sets timeout in seconds for scripts running during non-interactive system startup. Prevents runaway scripts from blocking boot.
Where do I find this setting in the GPO editor?
Open <code>gpmc.msc</code>, then navigate to <code>Computer Configuration > Policies > Administrative Templates > System > Scripts</code> and look for <strong>Specify script execution timeout for non-interactive logon</strong>.
What is the Microsoft default value?
<code>0</code> on a fresh Windows install. Domain-joined machines may inherit a different value if a baseline GPO is already in place.
What value do security baselines recommend?
<code>3600</code> – aligned with CIS, NIST, and DISA STIG guidance for current Windows versions.
Can I configure this without a GPO?
Yes, by writing to <code>HKLM\Software\Policies\Microsoft\Windows\System\Scripts\ExecTimeout</code> directly via <code>regedit</code>, PowerShell, or Intune. A GPO is preferred for centrally managed environments because it survives reimaging and is easier to audit.