Interdire les installations par les utilisateurs
Vérifié avec Windows 11 25H2 — mis à jour le 30 juillet 2026
Pris en charge sur : Microsoft Windows XP ou Windows 2000 avec Windows Installer version 2
Chemin dans la console GPO
Configuration ordinateur\Modèles d'administration\Composants Windows\Windows Installer Description
Ce paramètre de stratégie vous permet de configurer les installations utilisateur. Pour configurer ce paramètre de stratégie, activez-le et utilisez la liste déroulante pour sélectionner le comportement voulu. Si vous ne configurez pas ce paramètre de stratégie, ou s’il est activé et que l’option « Autoriser l’installation par l’utilisateur » est sélectionnée, le programme d’installation autorise et utilise les produits installés par utilisateur et les produits installés par ordinateur. Si le programme d’installation trouve une installation par utilisateur d’une application, l’installation par ordinateur de ce même produit est alors masquée. Si vous activez ce paramètre de stratégie et si l’option « Masquer l’installation par l’utilisateur » est sélectionnée, le programme d’installation ignore les applications par utilisateur. Une application installée par ordinateur est alors visible par les utilisateurs, même si ceux-ci ont une installation par utilisateur du produit inscrite dans leur profil d’utilisateur.
Registre
Software\Policies\Microsoft\Windows\Installer MDM / Intune (CSP)
./Device/Vendor/MSFT/Policy/Config/ADMX_MSI/MSI_DisableUserInstalls 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: Interdire les installations par les utilisateurs
; State: Enabled
; Supported on: Microsoft Windows XP ou Windows 2000 avec Windows Installer version 2
[HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows\Installer]
"DisableUserInstalls"=dword:00000001 Autres formats (PowerShell, Intune, SCCM)
PowerShell
# Exported from gporais.com
# Policy: Interdire les installations par les utilisateurs
# State: Enabled
# Supported on: Microsoft Windows XP ou Windows 2000 avec Windows Installer version 2
$path = 'HKLM:\Software\Policies\Microsoft\Windows\Installer'
New-Item -Path $path -Force | Out-Null
Set-ItemProperty -Path $path -Name 'DisableUserInstalls' -Value 1 -Type DWord Intune XML
OMA-URI: ./Device/Vendor/MSFT/Policy/Config/ADMX_MSI/MSI_DisableUserInstalls
Data type: String
Value:
<enabled/>
<data id="MSI_DisableUserInstallsBox" value="1"/> Intune Remediation
# === Detection script ===
# Exported from gporais.com
# Policy: Interdire les installations par les utilisateurs
# State: Enabled
# Supported on: Microsoft Windows XP ou Windows 2000 avec Windows Installer version 2
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\Installer' -Name 'DisableUserInstalls' -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: Interdire les installations par les utilisateurs
# State: Enabled
# Supported on: Microsoft Windows XP ou Windows 2000 avec Windows Installer version 2
$path = 'HKLM:\Software\Policies\Microsoft\Windows\Installer'
New-Item -Path $path -Force | Out-Null
Set-ItemProperty -Path $path -Name 'DisableUserInstalls' -Value 1 -Type DWord Scripts SCCM
# Exported from gporais.com
# Policy: Interdire les installations par les utilisateurs
# State: Enabled
# Supported on: Microsoft Windows XP ou Windows 2000 avec Windows Installer version 2
# 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: Interdire les installations par les utilisateurs
# State: Enabled
# Supported on: Microsoft Windows XP ou Windows 2000 avec Windows Installer version 2
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\Installer' -Name 'DisableUserInstalls' -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: Interdire les installations par les utilisateurs
# State: Enabled
# Supported on: Microsoft Windows XP ou Windows 2000 avec Windows Installer version 2
$path = 'HKLM:\Software\Policies\Microsoft\Windows\Installer'
New-Item -Path $path -Force | Out-Null
Set-ItemProperty -Path $path -Name 'DisableUserInstalls' -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).