Exécuter les scripts de démarrage de manière asynchrone
Vérifié avec Windows 11 25H2 — mis à jour le 30 juillet 2026
Pris en charge sur : Au minimum Windows 2000
Chemin dans la console GPO
Configuration ordinateur\Modèles d'administration\Système\Scripts Description
Ce paramètre de stratégie permet au système d’exécuter les scripts de démarrage simultanément. Les scripts de démarrage sont des fichiers de commandes qui sont exécutés avant que l’utilisateur ne soit invité à ouvrir une session. Par défaut, le système attend que chaque script de démarrage soit terminé avant d’exécuter le suivant. Si vous activez ce paramètre de stratégie, le système ne coordonne pas l’exécution des scripts de démarrage. En conséquence, ces scripts peuvent être exécutés simultanément. Si vous désactivez ou ne configurez pas ce paramètre de stratégie, un script de démarrage ne peut pas s’exécuter avant la fin du script précédent. Remarque : avec l’arrivée du système d’exploitation Windows Vista, les scripts configurés pour s’exécuter de manière asynchrone ne sont plus visibles au démarrage, que le paramètre de stratégie « Exécuter les scripts de démarrage en mode visible » soit activé ou non.
Registre
Software\Microsoft\Windows\CurrentVersion\Policies\System Nom de valeur : RunStartupScriptSync
Activé : RunStartupScriptSync = 0
Désactivé : RunStartupScriptSync = 1
MDM / Intune (CSP)
./Device/Vendor/MSFT/Policy/Config/ADMX_Scripts/Run_Startup_Script_Sync Documentation Microsoft Learn Données de correspondance : Microsoft Learn (CC BY 4.0)
Générateur d'exports
BETAConfigurez l'état, la portée et les options, puis générez les sorties .reg, PowerShell, Intune et SCCM — ou ajoutez le paramètre à une collection multi-paramètres.
Ces exports écrivent le registre — ce n'est pas une GPO managée. ⓘ
Fichier .reg
Windows Registry Editor Version 5.00
; Exported from gporais.com
; Policy: Exécuter les scripts de démarrage de manière asynchrone
; State: Enabled
; Supported on: Au minimum Windows 2000
[HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Policies\System]
"RunStartupScriptSync"=dword:00000000 Autres formats (PowerShell, Intune, SCCM)
PowerShell
# Exported from gporais.com
# Policy: Exécuter les scripts de démarrage de manière asynchrone
# State: Enabled
# Supported on: Au minimum Windows 2000
$path = 'HKLM:\Software\Microsoft\Windows\CurrentVersion\Policies\System'
New-Item -Path $path -Force | Out-Null
Set-ItemProperty -Path $path -Name 'RunStartupScriptSync' -Value 0 -Type DWord Intune XML
OMA-URI: ./Device/Vendor/MSFT/Policy/Config/ADMX_Scripts/Run_Startup_Script_Sync
Data type: String
Value:
<enabled/> Intune Remediation
# === Detection script ===
# Exported from gporais.com
# Policy: Exécuter les scripts de démarrage de manière asynchrone
# State: Enabled
# Supported on: Au minimum Windows 2000
function Test-RegistryValue {
param(
[Parameter(Mandatory = $true)][string]$Path,
[Parameter(Mandatory = $true)][string]$Name,
[object]$Expected,
[ValidateSet('String', 'DWord', 'MultiString')][string]$Kind = 'String',
[switch]$Absent
)
try {
$item = Get-ItemProperty -LiteralPath $Path -Name $Name -ErrorAction Stop
} catch {
return $Absent.IsPresent
}
if ($Absent.IsPresent) { return $false }
$actual = $item.$Name
if ($Kind -eq 'DWord') { return ([int64]$actual) -eq ([int64]$Expected) }
if ($Kind -eq 'MultiString') {
$actualValues = @($actual)
$expectedValues = @($Expected)
if ($actualValues.Count -ne $expectedValues.Count) { return $false }
for ($i = 0; $i -lt $expectedValues.Count; $i++) {
if ([string]$actualValues[$i] -ne [string]$expectedValues[$i]) { return $false }
}
return $true
}
return [string]$actual -eq [string]$Expected
}
$checks = @(
(Test-RegistryValue -Path 'HKLM:\Software\Microsoft\Windows\CurrentVersion\Policies\System' -Name 'RunStartupScriptSync' -Expected 0 -Kind DWord)
)
if ($checks -notcontains $false) {
Write-Output 'Compliant'
exit 0
}
Write-Output 'Non-compliant'
exit 1
# === Remediation script ===
# Exported from gporais.com
# Policy: Exécuter les scripts de démarrage de manière asynchrone
# State: Enabled
# Supported on: Au minimum Windows 2000
$path = 'HKLM:\Software\Microsoft\Windows\CurrentVersion\Policies\System'
New-Item -Path $path -Force | Out-Null
Set-ItemProperty -Path $path -Name 'RunStartupScriptSync' -Value 0 -Type DWord Scripts SCCM
# Exported from gporais.com
# Policy: Exécuter les scripts de démarrage de manière asynchrone
# State: Enabled
# Supported on: Au minimum Windows 2000
# SCCM Configuration Item guidance:
# Create a Configuration Item of type "Setting: Script".
# Discovery script: use the Detection script below.
# Remediation script: use the Remediation script below.
# Compliance rule: the Discovery script output equals 'Compliant'.
# === Detection script ===
# Exported from gporais.com
# Policy: Exécuter les scripts de démarrage de manière asynchrone
# State: Enabled
# Supported on: Au minimum Windows 2000
function Test-RegistryValue {
param(
[Parameter(Mandatory = $true)][string]$Path,
[Parameter(Mandatory = $true)][string]$Name,
[object]$Expected,
[ValidateSet('String', 'DWord', 'MultiString')][string]$Kind = 'String',
[switch]$Absent
)
try {
$item = Get-ItemProperty -LiteralPath $Path -Name $Name -ErrorAction Stop
} catch {
return $Absent.IsPresent
}
if ($Absent.IsPresent) { return $false }
$actual = $item.$Name
if ($Kind -eq 'DWord') { return ([int64]$actual) -eq ([int64]$Expected) }
if ($Kind -eq 'MultiString') {
$actualValues = @($actual)
$expectedValues = @($Expected)
if ($actualValues.Count -ne $expectedValues.Count) { return $false }
for ($i = 0; $i -lt $expectedValues.Count; $i++) {
if ([string]$actualValues[$i] -ne [string]$expectedValues[$i]) { return $false }
}
return $true
}
return [string]$actual -eq [string]$Expected
}
$checks = @(
(Test-RegistryValue -Path 'HKLM:\Software\Microsoft\Windows\CurrentVersion\Policies\System' -Name 'RunStartupScriptSync' -Expected 0 -Kind DWord)
)
if ($checks -notcontains $false) {
Write-Output 'Compliant'
exit 0
}
Write-Output 'Non-compliant'
exit 1
# === Remediation script ===
# Exported from gporais.com
# Policy: Exécuter les scripts de démarrage de manière asynchrone
# State: Enabled
# Supported on: Au minimum Windows 2000
$path = 'HKLM:\Software\Microsoft\Windows\CurrentVersion\Policies\System'
New-Item -Path $path -Force | Out-Null
Set-ItemProperty -Path $path -Name 'RunStartupScriptSync' -Value 0 -Type DWord Vous construisez une collection multi-paramètres ? Ajoutez ce paramètre et générez des exports combinés (.reg, PowerShell, GPO).