ANAVEM
Languageen
Comment déployer des applications à l'aide de Winget avec Microsoft Intune

Comment déployer des applications à l'aide de Winget avec Microsoft Intune

Apprenez à exploiter le Gestionnaire de Paquets Windows (winget) au sein de Microsoft Intune pour rationaliser les déploiements de logiciels d'entreprise, gérer les applications à grande échelle et automatiser les mises à jour dans votre organisation.

Evan MaelEvan Mael
26 mars 2026 15 min
mediumintune 7 étapes 15 min

Pourquoi déployer des applications en utilisant Winget avec Microsoft Intune ?

L'intégration de Windows Package Manager (winget) avec Microsoft Intune représente une avancée significative dans le déploiement et la gestion des applications d'entreprise. Cette combinaison puissante permet aux administrateurs informatiques de tirer parti du dépôt de paquets officiel de Microsoft tout en maintenant les avantages de sécurité, de conformité et d'évolutivité de la plateforme de gestion basée sur le cloud d'Intune.

Le déploiement traditionnel de logiciels d'entreprise implique souvent des processus de packaging complexes, des mises à jour manuelles et des expériences d'installation incohérentes entre différentes applications. Winget change ce paradigme en fournissant une approche standardisée en ligne de commande pour l'installation de logiciels qui fonctionne de manière cohérente sur des milliers d'applications. Lorsqu'il est combiné avec les capacités de gestion des appareils d'Intune, les organisations peuvent réaliser des déploiements automatisés et évolutifs qui réduisent la charge administrative tout en améliorant l'expérience utilisateur.

Qu'est-ce qui rend cette intégration puissante pour l'informatique d'entreprise ?

L'intégration winget-Intune offre plusieurs avantages clés par rapport aux méthodes de déploiement traditionnelles. Tout d'abord, elle élimine le besoin de packaging personnalisé pour de nombreuses applications populaires, car winget maintient un vaste dépôt de paquets préconfigurés avec les paramètres d'installation silencieuse appropriés. Deuxièmement, elle fournit des capacités de mise à jour automatique qui peuvent être gérées de manière centralisée via les politiques Intune, garantissant que les applications restent à jour sans intervention manuelle.

De plus, cette approche prend en charge à la fois l'intégration directe via la fonctionnalité de sélection native de winget d'Intune et le scripting PowerShell personnalisé pour des scénarios avancés. Cette flexibilité permet aux organisations de se standardiser sur une méthodologie de déploiement unique tout en répondant aux exigences diverses des applications et aux scénarios de déploiement dans leur environnement.

Guide de mise en oeuvre

Procédure complète

01

Installer le gestionnaire de packages Windows sur les appareils cibles

Avant de déployer des applications via winget, assurez-vous que le Windows Package Manager est installé sur vos appareils cibles. Bien que winget soit préinstallé sur les versions plus récentes de Windows, de nombreux appareils d'entreprise peuvent nécessiter son déploiement via Intune.

Accédez au centre d'administration Microsoft Intune à l'adresse https://endpoint.microsoft.com et connectez-vous avec vos identifiants d'administrateur.

Allez à Applications > Toutes les applications > Ajouter > Application du Microsoft Store (nouvelle). Dans le champ identifiant du package, entrez :

9NBLGGH4NNS1

C'est l'ID de package officiel pour Microsoft App Installer, qui inclut winget. Configurez les détails de l'application :

  • Nom : Microsoft App Installer
  • Description : Gestionnaire de packages Windows pour le déploiement d'applications d'entreprise
  • Éditeur : Microsoft Corporation
  • Catégorie : Productivité

Sous Affectations, cliquez sur Ajouter un groupe et sélectionnez Tous les appareils. Définissez le type d'affectation sur Requis et assurez-vous qu'il se déploie dans le contexte de l'appareil.

Astuce pro : Déployez dans le contexte de l'appareil plutôt que dans le contexte de l'utilisateur pour garantir que winget soit disponible à l'échelle du système pour tous les utilisateurs de l'appareil.

Vérification : Après le déploiement, connectez-vous à un appareil de test et exécutez :

winget --version
Get-AppxPackage -Name "Microsoft.DesktopAppInstaller"

Vous devriez voir le numéro de version de winget et les détails du package App Installer.

02

Configurer la source du dépôt Winget dans Intune

Configurez le dépôt officiel Microsoft winget comme source de confiance dans Intune pour permettre la sélection et le déploiement direct d'applications.

Dans le centre d'administration Intune, accédez à Applications > Sources d'applications > Ajouter > Windows Package Manager.

Configurez les paramètres du dépôt :

  • Nom : Microsoft Store (winget)
  • URL du dépôt : https://cdn.winget.microsoft.com/cache
  • Activer les mises à jour automatiques : Oui
  • Fréquence des mises à jour : Quotidienne

Cliquez sur Ajouter pour enregistrer la configuration. Cela établit la connexion au dépôt officiel winget de Microsoft, permettant à Intune de récupérer les dernières informations sur les packages.

Avertissement : Assurez-vous que votre pare-feu permet l'accès au point de terminaison CDN winget. Un accès bloqué empêchera la découverte et le téléchargement des packages.

Vérification : Après avoir ajouté la source, vous devriez la voir listée sous Sources d'applications avec un statut "Sain". Le processus de synchronisation peut prendre initialement 15 à 30 minutes.

03

Déployer des applications en utilisant l'intégration directe de Winget

Utilisez l'intégration native de winget d'Intune pour déployer des applications directement depuis le dépôt du Windows Package Manager. Cette méthode offre l'expérience de déploiement la plus propre avec des capacités de mise à jour automatique.

Accédez à Applications > Toutes les applications > Ajouter > Application Windows (Win32) > Sélectionner depuis le Windows Package Manager.

Recherchez l'application souhaitée. Par exemple, recherchez "Google Chrome" et sélectionnez le package approprié. Configurez les détails de l'application :

  • Nom : Google Chrome Enterprise
  • Éditeur : Google LLC
  • Catégorie : Productivité
  • Afficher dans le portail d'entreprise : Oui
  • URL d'information : https://www.google.com/chrome/

Sous les paramètres du Programme, les commandes d'installation et de désinstallation sont automatiquement renseignées :

Commande d'installation : winget install --exact --id Google.Chrome --scope machine --silent
Commande de désinstallation : winget uninstall --exact --id Google.Chrome --scope machine --silent

Configurez les Exigences :

  • Architecture du système d'exploitation : x64
  • Système d'exploitation minimum : Windows 10 1709

Configurez les Règles de détection en utilisant la méthode du registre :

  • Type de règle : Registre
  • Chemin de la clé : HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\Google Chrome
  • Méthode de détection : Clé existante

Vérification : Créez d'abord une affectation de test à un petit groupe d'appareils. Surveillez le statut de déploiement dans Applications > Surveiller > Statut d'installation de l'application.

04

Créer un script PowerShell pour des déploiements Winget personnalisés

Pour les applications non disponibles via une intégration directe ou lorsque vous avez besoin d'une logique d'installation personnalisée, créez des scripts PowerShell qui exploitent les commandes winget.

Créez un nouveau fichier de script PowerShell nommé Install-NotepadPlusPlus.ps1 :

# Installer Notepad++ via winget
$AppID = "Notepad++.Notepad++"
$LogPath = "C:\Windows\Temp\WingetInstall.log"

# Vérifier si winget est disponible
try {
    $WingetVersion = winget --version
    Write-Output "Version de Winget : $WingetVersion" | Out-File -FilePath $LogPath -Append
} catch {
    Write-Error "Winget non trouvé. Assurez-vous que Microsoft App Installer est installé."
    exit 1
}

# Installer l'application
try {
    Write-Output "Installation de $AppID..." | Out-File -FilePath $LogPath -Append
    $InstallResult = winget install --id $AppID --scope machine --silent --accept-package-agreements --accept-source-agreements
    
    if ($LASTEXITCODE -eq 0) {
        Write-Output "Installation réussie" | Out-File -FilePath $LogPath -Append
        exit 0
    } else {
        Write-Output "Échec de l'installation avec le code de sortie : $LASTEXITCODE" | Out-File -FilePath $LogPath -Append
        exit $LASTEXITCODE
    }
} catch {
    Write-Error "Échec de l'installation : $_"
    Write-Output "Erreur d'installation : $_" | Out-File -FilePath $LogPath -Append
    exit 1
}

Créez un script de détection correspondant Detect-NotepadPlusPlus.ps1 :

# Script de détection pour Notepad++
$AppID = "Notepad++.Notepad++"

try {
    $InstalledApps = winget list --id $AppID 2>$null
    if ($InstalledApps -match $AppID) {
        Write-Output "Application trouvée"
        exit 0
    } else {
        exit 1
    }
} catch {
    exit 1
}
Astuce pro : Incluez toujours une journalisation complète dans vos scripts. Cela facilite grandement le dépannage des problèmes de déploiement lors de l'examen des journaux Intune.

Vérification : Testez vos scripts localement sur un appareil de test avant de les emballer pour le déploiement Intune.

05

Emballer et déployer des scripts PowerShell en tant qu'applications Win32

Convertissez vos scripts PowerShell en packages d'applications Win32 pouvant être déployés via le système de gestion des applications d'Intune.

Téléchargez l'outil de préparation de contenu Microsoft Win32 depuis le dépôt officiel de Microsoft. Créez une structure de dossier source :

C:\WingetApps\NotepadPlusPlus\
├── Install-NotepadPlusPlus.ps1
├── Detect-NotepadPlusPlus.ps1
└── install.cmd

Créez un fichier wrapper install.cmd :

@echo off
powershell.exe -ExecutionPolicy Bypass -File "%~dp0Install-NotepadPlusPlus.ps1"
exit %ERRORLEVEL%

Utilisez l'IntuneWinAppUtil.exe pour créer le package :

IntuneWinAppUtil.exe -c "C:\WingetApps\NotepadPlusPlus" -s "install.cmd" -o "C:\WingetApps\Output"

Dans le centre d'administration Intune, allez à Applications > Toutes les applications > Ajouter > Application Windows (Win32). Téléchargez le fichier .intunewin généré et configurez :

  • Commande d'installation : install.cmd
  • Commande de désinstallation : winget uninstall --id Notepad++.Notepad++ --scope machine --silent
  • Comportement d'installation : Système
  • Comportement de redémarrage de l'appareil : Aucune action spécifique

Configurez les règles de détection en utilisant Script personnalisé et téléchargez votre fichier Detect-NotepadPlusPlus.ps1.

Définissez les exigences :

  • Architecture du système d'exploitation : x64
  • Système d'exploitation minimum : Windows 10 1709
  • Script PowerShell : Non requis (nous utilisons le wrapper cmd)
Avertissement : Testez toujours les déploiements d'applications Win32 sur un petit groupe d'abord. Les déploiements échoués peuvent être difficiles à résoudre sans journalisation appropriée.

Vérification : Surveillez le déploiement dans Statut d'installation de l'appareil et vérifiez les journaux de l'extension de gestion Intune sur les appareils cibles à C:\ProgramData\Microsoft\IntuneManagementExtension\Logs.

06

Configurer les mises à jour automatiques et la maintenance

Configurez des politiques de mise à jour automatisées et des calendriers de maintenance pour maintenir vos applications déployées par winget à jour dans toute votre organisation.

Accédez à Configuration de l'appareil > Profils > Créer un profil > Catalogue des paramètres. Recherchez les politiques "Windows Package Manager" et configurez :

{
  "WindowsPackageManager": {
    "EnableAutoUpdateCheck": true,
    "AutoUpdateCheckFrequency": "Daily",
    "AllowExperimentalFeatures": false,
    "EnableLocalManifests": false,
    "EnableMSStoreSource": true,
    "EnableDefaultSource": true,
    "EnableAdditionalSources": false
  }
}

Créez un script PowerShell pour les mises à jour programmées Update-WingetApps.ps1 :

# Script de mise à jour automatisée winget
$LogPath = "C:\Windows\Temp\WingetUpdates.log"
$UpdateList = @(
    "Google.Chrome",
    "Notepad++.Notepad++",
    "Microsoft.VisualStudioCode"
)

Write-Output "Démarrage du processus de mise à jour winget - $(Get-Date)" | Out-File -FilePath $LogPath -Append

# Mettre à jour les sources winget
winget source update

# Vérifier et installer les mises à jour
foreach ($App in $UpdateList) {
    try {
        Write-Output "Vérification des mises à jour pour $App" | Out-File -FilePath $LogPath -Append
        $UpdateResult = winget upgrade --id $App --scope machine --silent --accept-package-agreements
        
        if ($LASTEXITCODE -eq 0) {
            Write-Output "$App mis à jour avec succès" | Out-File -FilePath $LogPath -Append
        } elseif ($LASTEXITCODE -eq -1978335189) {
            Write-Output "$App est déjà à jour" | Out-File -FilePath $LogPath -Append
        } else {
            Write-Output "Échec de la mise à jour de $App avec le code : $LASTEXITCODE" | Out-File -FilePath $LogPath -Append
        }
    } catch {
        Write-Output "Erreur lors de la mise à jour de $App : $_" | Out-File -FilePath $LogPath -Append
    }
}

Write-Output "Processus de mise à jour terminé - $(Get-Date)" | Out-File -FilePath $LogPath -Append

Déployez ceci comme une Rémédiation proactive ou un script PowerShell programmé pour s'exécuter chaque semaine. Allez à Appareils > Scripts > Ajouter > Windows 10 et versions ultérieures :

  • Exécuter ce script en utilisant les informations d'identification de l'utilisateur connecté : Non
  • Imposer la vérification de la signature du script : Non
  • Exécuter le script dans PowerShell 64 bits : Oui

Vérification : Vérifiez les journaux de mise à jour sur les appareils cibles et surveillez les versions des applications via les rapports Intune.

07

Surveiller les déploiements et résoudre les problèmes

Implémentez des procédures de surveillance et de dépannage complètes pour garantir le succès des déploiements winget dans votre organisation.

Dans le centre d'administration Intune, accédez à Applications > Surveiller pour accéder aux analyses de déploiement :

  • Statut d'installation de l'application : Affiche les taux de réussite/échec par application
  • Statut d'installation de l'appareil : Résultats de déploiement par appareil
  • Statut d'installation de l'utilisateur : Données d'installation spécifiques à l'utilisateur

Créez un script de surveillance PowerShell Monitor-WingetDeployments.ps1 :

# Script de surveillance de déploiement winget
$LogPath = "C:\Windows\Temp\WingetMonitoring.log"
$ReportPath = "C:\Windows\Temp\WingetReport.json"

# Obtenir la version et le statut de winget
$WingetInfo = @{
    Version = (winget --version 2>$null)
    Sources = (winget source list 2>$null)
    InstalledApps = @()
    LastCheck = (Get-Date).ToString()
}

# Obtenir la liste des applications installées par winget
try {
    $InstalledList = winget list --source winget 2>$null
    if ($InstalledList) {
        $WingetInfo.InstalledApps = $InstalledList -split "`n" | Where-Object { $_ -match "\w+" } | Select-Object -Skip 2
    }
} catch {
    Write-Output "Erreur lors de l'obtention des applications installées : $_" | Out-File -FilePath $LogPath -Append
}

# Vérifier le service Intune Management Extension
$IMEService = Get-Service -Name "Microsoft Intune Management Extension" -ErrorAction SilentlyContinue
$WingetInfo.IMEStatus = if ($IMEService) { $IMEService.Status } else { "Non trouvé" }

# Exporter le rapport
$WingetInfo | ConvertTo-Json -Depth 3 | Out-File -FilePath $ReportPath -Encoding UTF8

Write-Output "Rapport de surveillance généré : $ReportPath" | Out-File -FilePath $LogPath -Append

Étapes courantes de dépannage pour les déploiements échoués :

  1. Vérifier la disponibilité de winget :
    winget --version
    Get-AppxPackage -Name "Microsoft.DesktopAppInstaller"
  2. Vérifier la connectivité réseau :
    Test-NetConnection -ComputerName "cdn.winget.microsoft.com" -Port 443
    winget source list
  3. Vérifier les journaux de l'extension de gestion Intune :
    Get-ChildItem "C:\ProgramData\Microsoft\IntuneManagementExtension\Logs" | Sort-Object LastWriteTime -Descending | Select-Object -First 5
Astuce pro : Activez la journalisation détaillée dans vos scripts de déploiement et utilisez la fonction de collecte de journaux intégrée d'Intune pour recueillir des informations de diagnostic à partir des déploiements échoués.

Vérification : Exécutez le script de surveillance sur des appareils de test et examinez les rapports JSON générés pour vous assurer que tous les composants fonctionnent correctement.

Questions Fréquentes

Quelles sont les exigences réseau pour les déploiements winget via Microsoft Intune ?+
Les appareils doivent avoir accès à https://cdn.winget.microsoft.com/cache pour le dépôt officiel winget, aux points de terminaison du Microsoft Store pour les téléchargements de l'installateur d'applications, et aux points de terminaison de gestion standard d'Intune. Assurez-vous que votre pare-feu autorise le trafic HTTPS vers ces points de terminaison CDN de Microsoft. Aucune exigence de port spécifique au-delà du HTTPS standard (443) n'est nécessaire, mais certaines organisations peuvent avoir besoin de mettre en liste blanche le domaine CDN winget dans leurs configurations de proxy.
Puis-je déployer des applications personnalisées ou métiers en utilisant winget avec Intune ?+
Bien que winget se concentre principalement sur les applications disponibles publiquement depuis son dépôt officiel, vous pouvez créer des scripts PowerShell personnalisés qui utilisent winget pour les dépendances publiques et des méthodes de déploiement Win32 traditionnelles pour vos applications métier. Alternativement, vous pouvez créer des dépôts winget privés, bien que cela nécessite une configuration d'infrastructure supplémentaire. La plupart des organisations utilisent une approche hybride : winget pour les logiciels standard et les applications Intune Win32 traditionnelles pour les applications personnalisées.
Comment les mises à jour automatiques fonctionnent-elles avec les applications déployées par winget dans Intune ?+
Les mises à jour automatiques peuvent être configurées via les stratégies de configuration des appareils Intune en utilisant le catalogue de paramètres pour les stratégies du gestionnaire de packages Windows. Vous pouvez activer les vérifications automatiques des mises à jour, définir la fréquence (quotidienne/hebdomadaire) et contrôler quelles sources sont autorisées pour les mises à jour. De plus, vous pouvez déployer des scripts PowerShell en tant que remédiations proactives ou tâches planifiées pour exécuter des commandes de mise à niveau winget pour des applications spécifiques, offrant un contrôle granulaire sur le processus de mise à jour tout en maintenant une gestion centralisée.
Que se passe-t-il si winget n'est pas installé sur les appareils cibles avant le déploiement de l'application ?+
Les déploiements d'applications échoueront si winget n'est pas disponible sur l'appareil cible. Vous devez d'abord déployer Microsoft App Installer (ID du package : 9NBLGGH4NNS1) via Intune en tant qu'application requise du Microsoft Store sur tous les appareils. Cela garantit que winget est disponible avant toute tentative de déploiement d'applications basées sur winget. Vous pouvez également utiliser les relations de dépendance dans Intune pour vous assurer que App Installer est installé avant que d'autres applications dépendantes de winget ne soient déployées.
Comment puis-je dépanner les déploiements winget échoués dans Microsoft Intune ?+
Commencez par vérifier les journaux de l'extension de gestion Intune à C:\ProgramData\Microsoft\IntuneManagementExtension\Logs sur l'appareil cible. Vérifiez que winget est installé et fonctionnel en utilisant les commandes 'winget --version' et 'winget source list'. Vérifiez la connectivité réseau au CDN de winget et assurez-vous que l'appareil peut accéder au dépôt de paquets de Microsoft. Utilisez la fonction intégrée de collecte de journaux d'Intune pour rassembler des informations de diagnostic, et implémentez une journalisation détaillée dans vos scripts de déploiement pour capturer des informations d'erreur détaillées pour l'analyse.
Evan Mael
Écrit par

Evan Mael

Microsoft MCSA-certified Cloud Architect | Fortinet-focused. I modernize cloud, hybrid & on-prem infrastructure for reliability, security, performance and cost control - sharing field-tested ops & troubleshooting.

Discussion

Partagez vos réflexions et analyses

Connectez-vous pour participer