Autoriser le démarrage distant de programmes non répertoriés
Vérifié avec Windows Server 2025 — mis à jour le 10 juillet 2026
Pris en charge sur : Au minimum Windows Server 2008
Chemin dans la console GPO
Configuration ordinateur\Modèles d'administration\Composants Windows\Services Bureau à distance\Hôte de la session Bureau à distance\Connexions Description
Ce paramètre de stratégie permet de spécifier si des utilisateurs distants peuvent démarrer tout programme sur le serveur Hôte de session Bureau à distance lorsqu'ils ouvrent une session des services Bureau à distance, ou s'ils peuvent uniquement démarrer les programmes répertoriés dans la liste des programmes RemoteApp. Vous pouvez déterminer quels sont les programmes sur un serveur Hôte de session Bureau à distance qui peuvent être démarrés à distance en utilisant le Gestionnaire RemoteApp sur Windows Server 2008 R2 et Windows Server 2008. Si vous utilisez Windows Server 2012, vous pouvez configurer cet aspect dans la feuille de propriétés Collection à l'aide du Gestionnaire de serveur. Par défaut, seuls les programmes figurant dans la liste Programmes RemoteApp peuvent être démarrés lorsqu'un utilisateur ouvre une session des services Bureau à distance. Si vous activez ce paramètre de stratégie, les utilisateurs distants peuvent démarrer n'importe quel programme sur le serveur Hôte de session Bureau à distance lorsqu'ils ouvrent une session des services Bureau à distance. Par exemple, un utilisateur distant peut le faire en spécifiant le chemin d'accès de l'exécutable du programme au moment de la connexion à l'aide du client Connexion Bureau à distance. Si vous désactivez ce paramètre de stratégie ou que vous ne le configurez pas, les utilisateurs distants peuvent uniquement démarrer les programmes répertoriés dans la liste des programmes RemoteApp lorsqu'ils ouvrent une session des services Bureau à distance.
Registre
SOFTWARE\Policies\Microsoft\Windows NT\Terminal Services Nom de valeur : fAllowUnlistedRemotePrograms
Activé : fAllowUnlistedRemotePrograms = 1
Désactivé : fAllowUnlistedRemotePrograms = 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: Autoriser le démarrage distant de programmes non répertoriés
; State: Enabled
; Supported on: Au minimum Windows Server 2008
[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows NT\Terminal Services]
"fAllowUnlistedRemotePrograms"=dword:00000001 Autres formats (PowerShell, Intune, SCCM)
PowerShell
# Exported from gporais.com
# Policy: Autoriser le démarrage distant de programmes non répertoriés
# State: Enabled
# Supported on: Au minimum Windows Server 2008
$path = 'HKLM:\SOFTWARE\Policies\Microsoft\Windows NT\Terminal Services'
New-Item -Path $path -Force | Out-Null
Set-ItemProperty -Path $path -Name 'fAllowUnlistedRemotePrograms' -Value 1 -Type DWord Intune XML
Aucune correspondance directe Policy CSP / OMA-URI pour cette stratégie. Utilisez l'onglet Intune Remediation, ou importez l'ADMX dans Intune. Intune Remediation
# === Detection script ===
# Exported from gporais.com
# Policy: Autoriser le démarrage distant de programmes non répertoriés
# State: Enabled
# Supported on: Au minimum Windows Server 2008
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 'fAllowUnlistedRemotePrograms' -Expected 1 -Kind DWord)
)
if ($checks -notcontains $false) {
Write-Output 'Compliant'
exit 0
}
Write-Output 'Non-compliant'
exit 1
# === Remediation script ===
# Exported from gporais.com
# Policy: Autoriser le démarrage distant de programmes non répertoriés
# State: Enabled
# Supported on: Au minimum Windows Server 2008
$path = 'HKLM:\SOFTWARE\Policies\Microsoft\Windows NT\Terminal Services'
New-Item -Path $path -Force | Out-Null
Set-ItemProperty -Path $path -Name 'fAllowUnlistedRemotePrograms' -Value 1 -Type DWord Scripts SCCM
# Exported from gporais.com
# Policy: Autoriser le démarrage distant de programmes non répertoriés
# State: Enabled
# Supported on: Au minimum Windows Server 2008
# 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: Autoriser le démarrage distant de programmes non répertoriés
# State: Enabled
# Supported on: Au minimum Windows Server 2008
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 'fAllowUnlistedRemotePrograms' -Expected 1 -Kind DWord)
)
if ($checks -notcontains $false) {
Write-Output 'Compliant'
exit 0
}
Write-Output 'Non-compliant'
exit 1
# === Remediation script ===
# Exported from gporais.com
# Policy: Autoriser le démarrage distant de programmes non répertoriés
# State: Enabled
# Supported on: Au minimum Windows Server 2008
$path = 'HKLM:\SOFTWARE\Policies\Microsoft\Windows NT\Terminal Services'
New-Item -Path $path -Force | Out-Null
Set-ItemProperty -Path $path -Name 'fAllowUnlistedRemotePrograms' -Value 1 -Type DWord Vous construisez une collection multi-paramètres ? Ajoutez ce paramètre et générez des exports combinés (.reg, PowerShell, GPO).