Démarrer un programme à la connexion
Vérifié avec Windows 11 25H2 — mis à jour le 30 juillet 2026
Pris en charge sur : Au minimum Windows Server 2003
Chemin dans la console GPO
Configuration ordinateur\Modèles d'administration\Composants Windows\Services Bureau à distance\Hôte de la session Bureau à distance\Environnement de session à distance Description
Configure les services Bureau à distance pour qu’ils exécutent automatiquement un programme spécifié lors de la connexion. Vous pouvez utiliser ce paramètre pour spécifier un programme à exécuter automatiquement quand un utilisateur se connecte à un ordinateur distant. Par défaut, les sessions de services Bureau à distance fournissent un accès à la totalité du Bureau Windows, sauf si l’administrateur du serveur ou l’utilisateur, lors de la configuration de la connexion client, spécifie le contraire à l’aide de ce paramètre. L’activation de ce paramètre annule les paramètres « Démarrer le programme » définis par l’administrateur du serveur ou l’utilisateur. Le menu Démarrer et le Bureau Windows ne sont pas affichés, et quand l’utilisateur quitte le programme, la session est automatiquement déconnectée. Pour utiliser ce paramètre, dans Chemin d’accès au programme et nom du fichier, tapez le chemin d’accès et le nom de fichier complets du fichier à exécuter quand l’utilisateur ouvre une session. Si nécessaire, dans Répertoire de travail, entrez le chemin complet du répertoire de démarrage du programme. Si vous n’indiquez rien dans Répertoire de travail, le programme est exécuté à partir de son répertoire de travail par défaut. Si le répertoire de travail, le nom de fichier ou le chemin du programme spécifié n’est pas le nom d’un répertoire valide, la connexion du serveur Hôte de la session Bureau à distance échoue en affichant un message d’erreur. Si vous activez ce paramètre, les sessions des services Bureau à distance exécutent automatiquement le programme spécifié et utilisent le répertoire de travail indiqué (ou, à défaut, le répertoire par défaut du programme). Si vous désactivez ce paramètre ou ne le configurez pas, les sessions des services Bureau à distance démarrent avec l’intégralité du Bureau, sauf si l’administrateur du serveur ou l’utilisateur en décident autrement. (Voir le paramètre « Configuration ordinateur\Modèles d’administration\Système\Ouverture de session\Exécuter ces programmes à l’ouverture de session utilisateur ».) Remarque : ce paramètre s’affiche à la fois dans Configuration de l’ordinateur et Configuration de l’utilisateur. Si les deux paramètres sont configurés, le paramètre Configuration de l’ordinateur est prioritaire.
Registre
SOFTWARE\Policies\Microsoft\Windows NT\Terminal Services MDM / Intune (CSP)
./Device/Vendor/MSFT/Policy/Config/ADMX_TerminalServer/TS_START_PROGRAM_2 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: Démarrer un programme à la connexion
; State: Enabled
; Supported on: Au minimum Windows Server 2003
[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows NT\Terminal Services]
"InitialProgram"=""
"WorkDirectory"="" Autres formats (PowerShell, Intune, SCCM)
PowerShell
# Exported from gporais.com
# Policy: Démarrer un programme à la connexion
# State: Enabled
# Supported on: Au minimum Windows Server 2003
$path = 'HKLM:\SOFTWARE\Policies\Microsoft\Windows NT\Terminal Services'
New-Item -Path $path -Force | Out-Null
Set-ItemProperty -Path $path -Name 'InitialProgram' -Value '' -Type String
Set-ItemProperty -Path $path -Name 'WorkDirectory' -Value '' -Type String Intune XML
OMA-URI: ./Device/Vendor/MSFT/Policy/Config/ADMX_TerminalServer/TS_START_PROGRAM_2
Data type: String
Value:
<enabled/>
<data id="TS_PROGRAM_NAME" value=""/>
<data id="TS_WORKDIR" value=""/> Intune Remediation
# === Detection script ===
# Exported from gporais.com
# Policy: Démarrer un programme à la connexion
# State: Enabled
# Supported on: Au minimum Windows Server 2003
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\Policies\Microsoft\Windows NT\Terminal Services' -Name 'InitialProgram' -Expected '' -Kind String)
(Test-RegistryValue -Path 'HKLM:\SOFTWARE\Policies\Microsoft\Windows NT\Terminal Services' -Name 'WorkDirectory' -Expected '' -Kind String)
)
if ($checks -notcontains $false) {
Write-Output 'Compliant'
exit 0
}
Write-Output 'Non-compliant'
exit 1
# === Remediation script ===
# Exported from gporais.com
# Policy: Démarrer un programme à la connexion
# State: Enabled
# Supported on: Au minimum Windows Server 2003
$path = 'HKLM:\SOFTWARE\Policies\Microsoft\Windows NT\Terminal Services'
New-Item -Path $path -Force | Out-Null
Set-ItemProperty -Path $path -Name 'InitialProgram' -Value '' -Type String
Set-ItemProperty -Path $path -Name 'WorkDirectory' -Value '' -Type String Scripts SCCM
# Exported from gporais.com
# Policy: Démarrer un programme à la connexion
# State: Enabled
# Supported on: Au minimum Windows Server 2003
# 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: Démarrer un programme à la connexion
# State: Enabled
# Supported on: Au minimum Windows Server 2003
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\Policies\Microsoft\Windows NT\Terminal Services' -Name 'InitialProgram' -Expected '' -Kind String)
(Test-RegistryValue -Path 'HKLM:\SOFTWARE\Policies\Microsoft\Windows NT\Terminal Services' -Name 'WorkDirectory' -Expected '' -Kind String)
)
if ($checks -notcontains $false) {
Write-Output 'Compliant'
exit 0
}
Write-Output 'Non-compliant'
exit 1
# === Remediation script ===
# Exported from gporais.com
# Policy: Démarrer un programme à la connexion
# State: Enabled
# Supported on: Au minimum Windows Server 2003
$path = 'HKLM:\SOFTWARE\Policies\Microsoft\Windows NT\Terminal Services'
New-Item -Path $path -Force | Out-Null
Set-ItemProperty -Path $path -Name 'InitialProgram' -Value '' -Type String
Set-ItemProperty -Path $path -Name 'WorkDirectory' -Value '' -Type String Vous construisez une collection multi-paramètres ? Ajoutez ce paramètre et générez des exports combinés (.reg, PowerShell, GPO).