🛠 Outils IT
🛠 102 outils 📚 53 docs
🤖 Assistant ☀

Microsoft Intune - Gestion des postes (Endpoint)

1. Architecture et modèles de jonction

1.1 Composants

  • Intune : service MDM/MAM SaaS, piloté depuis le centre d'administration Intune (Microsoft Intune admin center) et l'API Microsoft Graph (deviceManagement, deviceAppManagement).
  • Pile MDM Windows : client OMA-DM intégré à Windows, qui applique des CSP (Configuration Service Providers : Policy CSP, BitLocker CSP, LAPS CSP...). Sans agent tiers.
  • Intune Management Extension (IME) : agent installé automatiquement dès qu'un script PowerShell, une application Win32 ou une remediation est assigné. Il exécute ce que le MDM natif ne sait pas faire.
  • Microsoft Entra ID : identité de l'appareil, porteur de l'état de conformité consommé par le Conditional Access (voir Microsoft Entra ID).
  • Defender for Endpoint : EDR, envoie un score de risque machine qui peut entrer dans la conformité.

1.2 Entra joined, hybrid joined, registered

Critère Microsoft Entra joined Microsoft Entra hybrid joined Microsoft Entra registered
Propriétaire type Organisation Organisation (parc AD existant) Utilisateur (BYOD) ou mobile
Annuaire de connexion Entra ID uniquement AD DS + objet synchronisé dans Entra Compte local / personnel + compte pro ajouté
GPO Non Oui (risque de conflit avec Intune) Non
Ligne de vue DC requise Non (Kerberos cloud trust pour l'accès aux ressources on-prem) Oui pour la première connexion et le renouvellement du mot de passe Non
Autopilot Oui (recommandé) Oui, mais Intune Connector for AD + VPN pré-logon : complexe Non
SSO ressources on-prem (fichiers, intranet Kerberos) Oui via PRT + Kerberos (cloud Kerberos trust pour WHfB) Natif Partiel
Recommandation Microsoft Cible pour les nouveaux postes Transitoire BYOD / MAM
Stratégie de transition : ne pas convertir les postes hybrid joined existants ; déployer les nouveaux postes (ou les postes réinstallés) en Entra joined via Autopilot, après avoir validé l'accès aux partages (Kerberos), aux imprimantes (Universal Print ou serveur d'impression accessible) et aux applications qui supposaient un compte machine AD. Le renouvellement naturel du parc fait la migration.

1.3 Co-management avec Configuration Manager

Un poste géré par ConfigMgr (MECM) peut être inscrit simultanément dans Intune. Chaque workload est basculé indépendamment vers Intune via un curseur (ConfigMgr / Pilot Intune / Intune) :

Workload Ordre de bascule conseillé Remarque
Compliance policies 1 Débloque le Conditional Access basé sur la conformité
Windows Update policies 2 Retirer d'abord les GPO/WSUS en conflit
Endpoint Protection 3 Defender AV, pare-feu, BitLocker, ASR
Device configuration / Resource access 4 Wi-Fi, VPN, certificats SCEP/PKCS
Office Click-to-Run apps 5 Microsoft 365 Apps
Client apps 6 Les applications Intune deviennent disponibles ; ConfigMgr peut continuer pour les déploiements lourds

Le tenant attach (sans co-management) remonte simplement l'inventaire ConfigMgr dans la console Intune et permet des actions à distance : c'est un premier pas sans risque.

2. Prérequis du tenant

Élément Emplacement Réglage recommandé
Licences Microsoft 365 E3/E5/Business Premium ou Intune Plan 1 + Entra ID P1 P1 indispensable pour l'inscription automatique et le Conditional Access
MDM user scope Entra admin center > Mobility (MDM and MAM) > Microsoft Intune Some (groupe pilote) puis All ; MAM user scope distinct pour le BYOD
Qui peut joindre des appareils Entra > Devices > Device settings Groupe restreint ou All + restrictions d'inscription Intune ; limite par utilisateur
Admin local supplémentaire Entra > Device settings Aucun utilisateur admin local ; utiliser LAPS et les rôles dédiés
Windows LAPS Entra > Device settings Activer « Enable Microsoft Entra LAPS »
Restrictions d'inscription Intune > Devices > Enrollment > Device platform restriction Bloquer les plateformes non supportées, bloquer Windows personnel (MDM) si politique corporate-only
Identifiants d'appareils d'entreprise Intune > Enrollment > Corporate device identifiers Utile si les Windows personnels sont bloqués mais certains postes ne passent pas par Autopilot
DNS Zone publique CNAME enterpriseenrollment et enterpriseregistration (voir M365)
RBAC Intune > Tenant administration > Roles Rôles personnalisés + scope tags par site/filiale ; Multi Admin Approval pour wipe, scripts, applications
Multi Admin Approval : un compte admin Intune compromis peut pousser un script SYSTEM sur tout le parc ou lancer un wipe massif. Activer les access policies (approbation par un second admin) au minimum pour les wipes, les scripts et les applications.

2.1 Groupes et filtres

Stratégie d'assignation : groupes d'appareils dynamiques pour la configuration machine (ex. (device.devicePhysicalIds -any (_ -eq "[OrderID]:PARIS")) pour les postes Autopilot d'un group tag), groupes d'utilisateurs pour les applications et politiques liées à la personne, et filtres d'assignation pour affiner sans multiplier les groupes (modèle, OS, propriété).

# Règle de groupe dynamique : tous les appareils Autopilot
(device.devicePhysicalIDs -any (_ -startsWith "[ZTDid]"))

# Appareils Autopilot d'un group tag donné
(device.devicePhysicalIds -any (_ -eq "[OrderID]:SIEGE"))

# Filtre d'assignation : Windows 11 d'entreprise uniquement
(device.osVersion -startsWith "10.0.2") and (device.deviceOwnership -eq "Corporate")
Latence : l'appartenance à un groupe dynamique Entra peut prendre de quelques minutes à plus longtemps sur les gros tenants. Les filtres sont évalués au check-in de l'appareil, sans attente de recalcul du groupe : préférer « groupe large + filtre » pour les déploiements urgents.

3. Inscription Windows : Autopilot

3.1 Les deux générations

Critère Autopilot (profils de déploiement) Autopilot device preparation
Enregistrement préalable du hash Oui (OEM, revendeur ou import CSV) Non requis (identifiants d'entreprise optionnels)
Hybrid join Oui Non
Pré-provisioning (technicien) Oui Vérifier l'état actuel du support
Personnalisation OOBE Profil complet (masquer EULA, nom de machine, langue) Plus limitée
Suivi d'avancement Enrollment Status Page (ESP) Rapport de déploiement quasi temps réel, liste d'applications/scripts bloquants limitée
Cas d'usage Parc standard avec fournisseur déclarant les hash Clouds souverains, approvisionnement sans hash, scénarios simples

3.2 Collecte et import du hash matériel

Idéalement, le revendeur ou l'OEM inscrit directement les appareils dans le tenant (partenaire CSP autorisé). Sinon, collecte manuelle :

# Sur le poste (OOBE : Shift+F10 pour ouvrir une invite, puis powershell)
Set-ExecutionPolicy -Scope Process -ExecutionPolicy Bypass -Force
Install-Script -Name Get-WindowsAutopilotInfo -Force
# Export CSV (pour import manuel dans Intune > Devices > Enrollment > Windows > Devices)
Get-WindowsAutopilotInfo -OutputFile C:\HWID\AutopilotHWID.csv -GroupTag SIEGE
# Ou import direct (authentification interactive Graph, droits Intune)
Get-WindowsAutopilotInfo -Online -GroupTag SIEGE -Assign
Version du script : le script communautaire a connu des révisions liées au passage de AzureAD vers Microsoft Graph. En cas d'erreur d'authentification, utiliser la dernière version de la PowerShell Gallery (ou ses variantes maintenues) et une application Entra autorisée.

3.3 Profil de déploiement

  • Mode : User-driven (cas standard), Self-deploying (kiosque, salles, TPM 2.0 avec attestation requise, sans utilisateur).
  • Join type : Microsoft Entra joined (préféré) ou hybrid.
  • Compte utilisateur : Standard (jamais administrateur).
  • Nom de l'appareil : modèle CTS-%SERIAL% ou PAR-%RAND:5% (15 caractères max, Entra joined uniquement).
  • Convertir tous les appareils ciblés en Autopilot : enregistre automatiquement le hash des postes déjà inscrits ; utile pour un parc existant (attention, délai de traitement et irréversibilité tant que le hash n'est pas supprimé).

3.4 Enrollment Status Page (ESP)

L'ESP bloque l'utilisateur tant que les applications et politiques critiques ne sont pas installées. Deux phases : Device setup (contexte machine) et Account setup (contexte utilisateur).

  • Ne lister comme bloquantes que les applications indispensables (agent VPN, sécurité, Microsoft 365 Apps) : chaque application ajoutée allonge le déploiement et multiplie les causes d'échec.
  • Timeout : 60 minutes par défaut ; l'ajuster selon la bande passante (une Microsoft 365 Apps complète pèse plusieurs Go).
  • Ne pas mélanger applications LOB MSI (pile MDM) et Win32 (IME) dans les applications bloquantes : les installations TrustedInstaller concurrentes peuvent échouer. Tout empaqueter en Win32.
  • Autoriser la réinitialisation en cas d'échec et l'utilisation de l'appareil pour les pilotes ; désactiver pour la production si l'on veut forcer la conformité.
  • Windows Hello for Business se configure après l'ESP ; s'il est requis, prévoir le délai de provisioning des clés.

3.5 Pré-provisioning (ex-White Glove)

Le technicien (ou l'intégrateur) appuie 5 fois sur la touche Windows à l'écran OOBE, choisit « Windows Autopilot provisioning » : la phase Device setup est exécutée à l'atelier, le poste est rescellé (écran vert puis Reseal). L'utilisateur ne vit ensuite que la phase Account setup. Exigences : TPM 2.0 avec attestation, connexion filaire recommandée, profil autorisant le pré-provisioning.

3.6 Autopilot hybride : pourquoi l'éviter

  • Intune Connector for Active Directory installé sur un serveur membre (la version récente utilise un compte de service géré ; mettre à jour les anciens connecteurs, dépréciés).
  • OU déléguée pour la création d'objets ordinateur, profil Domain Join.
  • Ligne de vue sur un contrôleur de domaine pendant l'OOBE (sur site ou VPN pré-logon).
  • Synchronisation Entra Connect de l'objet ordinateur avant la première connexion utilisateur, sinon ESP en attente.

Chaque maillon est une source d'échec (voir section 15). Microsoft recommande explicitement l'Entra join pour les nouveaux déploiements.

4. Inscription Apple (ADE) et Android Enterprise

4.1 Apple : jetons et certificats

Élément Rôle Validité Piège
Certificat Apple MDM Push (APNs) Indispensable à toute gestion iOS/iPadOS/macOS 1 an Le renouveler avec le même Apple ID ; un nouveau certificat = réinscription de tous les appareils. Utiliser un Apple ID géré partagé (boîte de service), pas celui d'un admin.
Jeton ADE (Apple Business Manager) Inscription automatique des appareils achetés chez un revendeur agréé 1 an Renouvellement à télécharger dans ABM puis importer dans Intune
Jeton VPP (Apps and Books) Distribution d'applications sous licence entreprise 1 an Un jeton utilisé par un seul MDM à la fois

Profil d'inscription ADE : supervision (obligatoire pour la plupart des restrictions), verrouillage de l'inscription (l'utilisateur ne peut pas retirer le profil MDM), authentification par Setup Assistant with modern authentication ou Company Portal. Pour macOS : Platform SSO (selon version) et FileVault avec séquestre de la clé dans Intune.

4.2 Android Enterprise : modes

Mode Propriété Contrôle Inscription
Personally-owned work profile BYOD Profil professionnel isolé uniquement Company Portal
Corporate-owned work profile (COPE) Entreprise, usage perso autorisé Appareil + profil pro, vie privée préservée QR code, zero-touch, Knox Mobile Enrollment
Fully managed (COBO) Entreprise, usage pro Appareil entier QR code, zero-touch, token
Dedicated (COSU) Kiosque, terminal partagé Mode kiosque, applications verrouillées QR code, zero-touch
Device administrator : l'ancien mode « Android device administrator » est déprécié pour les appareils disposant de Google Mobile Services. Toute nouvelle inscription doit passer par Android Enterprise (liaison Managed Google Play à faire une fois dans le tenant).

5. Conformité et Conditional Access

5.1 Chaîne de décision

  1. Une politique de conformité est évaluée sur l'appareil (check-in MDM, environ toutes les 8 heures, plus fréquemment juste après l'inscription).
  2. Intune écrit l'attribut isCompliant sur l'objet appareil Entra.
  3. Le Conditional Access, avec le contrôle Require device to be marked as compliant, lit cet attribut via le Primary Refresh Token (Windows) ou le Company Portal / Authenticator (mobile).

5.2 Réglages tenant de conformité

  • Mark devices with no compliance policy assigned as : passer à Not compliant. Sinon, un appareil sans politique est considéré conforme.
  • Compliance status validity period : 30 jours par défaut ; un appareil qui ne fait pas de check-in devient non conforme.
  • Actions en cas de non-conformité : marquer non conforme (immédiat ou avec délai de grâce), notification par mail, verrouillage à distance, retrait (retire) après N jours.

5.3 Politique Windows type

Paramètre Valeur Remarque
BitLocker / Secure Boot / Code integrity Requis Évalués via Device Health Attestation : l'état n'est connu qu'après un redémarrage. Un poste fraîchement chiffré reste non conforme jusqu'au reboot.
Version minimale de l'OS Ex. 10.0.26100.xxxx Ajuster chaque mois après le Patch Tuesday + délai de grâce
Pare-feu, antivirus, antispyware Requis Via Windows Security Center
Microsoft Defender Antimalware à jour Requis -
Score de risque machine (MDE) Moyen ou inférieur Nécessite le connecteur Defender for Endpoint
TPM Requis -

5.4 Conditional Access : politiques associées

Politique Cible Contrôle
CA-Postes-Conformes Tous les utilisateurs, toutes les ressources, plateforme Windows/macOS Require compliant device OR hybrid joined (transition)
CA-Mobiles-MAM iOS/Android, Office 365 Require app protection policy
CA-Inscription-MFA Action utilisateur « Register or join devices » MFA (et pas de « require MFA » dans les Device settings en parallèle)
CA-Navigateur-Non-Gere SharePoint/Exchange depuis appareil non conforme Session : app enforced restrictions (lecture seule web)
Effet de verrouillage : une politique « appareil conforme » appliquée à toutes les applications bloque aussi l'inscription d'un nouvel appareil si elle cible l'application Microsoft Intune Enrollment. Exclure les applications d'inscription concernées, tester en mode Report-only au moins une semaine, et toujours exclure les comptes bris de glace.

6. Profils de configuration et baselines

6.1 Types de politiques

Type Usage Recommandation
Settings Catalog Plusieurs milliers de réglages (CSP + ADMX intégrés : Edge, Office, Windows) Format par défaut pour toute nouvelle politique
Templates (Administrative Templates, Device restrictions...) Anciens formats Ne plus créer ; migrer vers le Settings Catalog
Endpoint security Antivirus, pare-feu, disk encryption, ASR, account protection, EDR Politiques de sécurité ciblées, gérées par l'équipe sécurité
Security baselines Référentiels Microsoft (Windows, Edge, Defender, Microsoft 365 Apps) Point de départ, à décliner ; suivre les nouvelles versions
Custom (OMA-URI) CSP non exposés Dernier recours
ADMX importés Applications tierces (Chrome, Firefox, logiciels métier) Importer l'ADMX et l'ADML (en-US) dans Devices > Configuration > Import ADMX

6.2 Conflits et précédence

  • Deux politiques Intune qui configurent le même réglage avec des valeurs différentes = Conflict : aucune n'est appliquée de façon fiable. Le rapport Per setting status le signale.
  • Réglage présent dans une baseline et dans une politique Settings Catalog : même logique de conflit. D'où la règle : un réglage = une seule politique.
  • Intune contre GPO (hybrid) : par défaut, la GPO gagne pour beaucoup de réglages. Le paramètre ControlPolicyConflict/MDMWinsOverGP inverse la priorité pour les réglages Policy CSP (pas pour tout). Préférer retirer les GPO.
  • Group Policy analytics : importer les exports XML des GPO (Get-GPOReport -All -ReportType Xml) pour voir ce qui est migrable vers le Settings Catalog.
# Export des GPO pour Group Policy analytics
Import-Module GroupPolicy
Get-GPO -All | ForEach-Object {
  Get-GPOReport -Guid $_.Id -ReportType Xml -Path ("C:\GPOExport\" + $_.DisplayName + ".xml")
}

6.3 Exemple OMA-URI

Nom      : Désactiver le compte Administrateur intégré (si LAPS gère un compte dédié)
OMA-URI  : ./Device/Vendor/MSFT/Policy/Config/LocalPoliciesSecurityOptions/Accounts_EnableAdministratorAccountStatus
Type     : Integer
Valeur   : 0
Anneaux de configuration : appliquer toute nouvelle politique à un groupe IT, puis pilote métier (5 %), puis production. Intune n'offre pas de rollback : supprimer une assignation ne « désapplique » pas toujours le réglage (tattooing selon le CSP). Documenter la valeur d'origine.

7. BitLocker et Windows LAPS

7.1 BitLocker silencieux

Politique : Endpoint security > Disk encryption > BitLocker. Pour un chiffrement sans interaction utilisateur sur poste Entra joined :

  • RequireDeviceEncryption = Enabled ; AllowWarningForOtherDiskEncryption = Disabled (nécessaire au mode silencieux) ; AllowStandardUserEncryption = Enabled.
  • Lecteur OS : protecteur TPM seul (TPM + PIN n'est pas silencieux), chiffrement XTS-AES 128 ou 256, « espace utilisé uniquement » pour un poste neuf.
  • Sauvegarde de la clé de récupération dans Entra ID obligatoire et « ne pas activer BitLocker tant que la clé n'est pas sauvegardée ».
  • Rotation de la clé après utilisation (client-driven recovery password rotation).
# Sur le poste : état et protecteurs
manage-bde -status C:
Get-BitLockerVolume -MountPoint C: | Select-Object -ExpandProperty KeyProtector

# Forcer la sauvegarde de la clé existante dans Entra ID (chiffrement fait avant Intune)
$kp = (Get-BitLockerVolume -MountPoint C:).KeyProtector | Where-Object KeyProtectorType -eq 'RecoveryPassword'
BackupToAAD-BitLockerKeyProtector -MountPoint C: -KeyProtectorId $kp.KeyProtectorId

# Journal : Applications and Services Logs > Microsoft > Windows > BitLocker-API > Management
# Lire une clé de récupération via Graph (audité, rôle adapté requis)
Connect-MgGraph -Scopes "BitlockerKey.Read.All"
Get-MgInformationProtectionBitlockerRecoveryKey -Filter "deviceId eq '<ENTRA_DEVICE_ID>'"
Get-MgInformationProtectionBitlockerRecoveryKey -BitlockerRecoveryKeyId "<KEY_ID>" -Property key | Select -Expand Key
Suppression d'appareil : supprimer l'objet appareil dans Entra ID supprime aussi les clés BitLocker qui y sont séquestrées. Un nettoyage automatique des appareils inactifs doit d'abord désactiver puis supprimer après un délai, en exportant les clés des postes non récupérés.

7.2 Windows LAPS

Windows LAPS est intégré à Windows depuis les mises à jour d'avril 2023 (Windows 10 22H2, Windows 11, Server 2019+). Il remplace le « legacy LAPS » (MSI). La politique se définit dans Endpoint security > Account protection > Local admin password solution.

Réglage Valeur conseillée
Backup directory Microsoft Entra ID (Entra joined) ; AD pour les postes hybrides si l'on veut le chiffrement et l'historique
Password age 30 jours
Administrator account name Compte dédié (ex. lapsadmin), le compte intégré étant désactivé ; sur Windows 11 24H2+, la gestion automatique du compte peut le créer/renommer
Password complexity / length Complexité maximale, 20 caractères ou passphrase
Post-authentication actions Réinitialiser le mot de passe et déconnecter (délai 8 h ou moins)
# Lecture du mot de passe (module LAPS intégré à Windows, authentification Graph)
Connect-MgGraph -Scopes "Device.Read.All","DeviceLocalCredential.Read.All"
Get-LapsAADPassword -DeviceIds "PAR-PC0123" -IncludePasswords -AsPlainText

# Rotation immédiate depuis le poste (diagnostic) / depuis Intune : action "Rotate local admin password"
Invoke-LapsPolicyProcessing
Get-WinEvent -LogName "Microsoft-Windows-LAPS/Operational" -MaxEvents 20
Délégation : la lecture des mots de passe LAPS (comme des clés BitLocker) doit être confiée à un rôle personnalisé Entra limité au support, avec unités administratives si nécessaire. Chaque consultation est auditée dans les journaux d'audit Entra.

8. Windows Update for Business et Autopatch

8.1 Politiques disponibles

Politique Rôle
Update rings Délais de report qualité/fonctionnalité, échéances (deadline), redémarrage, expérience utilisateur
Feature updates Version cible (ex. Windows 11 25H2) ; la machine ne dépasse pas cette version
Quality updates (expedite) Forcer une mise à jour de sécurité en urgence (zero-day), en ignorant les reports
Driver updates Approbation manuelle ou automatique des pilotes/firmwares Windows Update
Hotpatch Mises à jour sans redémarrage sur Windows 11 Enterprise 24H2+ (prérequis matériels et de licence à vérifier)

8.2 Anneaux type

Anneau Population Report qualité Échéance qualité Report fonctionnalité Période de grâce
Test IT (1 %) 0 j 2 j 0 j 1 j
Pilote Utilisateurs avertis (5-10 %) 3 j 3 j 30 j 2 j
Large Majorité 7 j 3 j 60 j 2 j
Critique Postes sensibles (production, accueil) 10 j 5 j 90 j 3 j
Conflits WSUS/GPO : une GPO WUServer ou DisableDualScan héritée d'un ancien WSUS empêche WUfB de fonctionner. Sur un poste qui ne se met pas à jour, vérifier HKLM\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate : il ne doit pas contenir de référence WSUS pour un poste géré par Intune.

8.3 Windows Autopatch

Autopatch automatise la création des anneaux (groupes Test / First / Fast / Broad), le suivi des signaux de santé et la mise en pause en cas de régression, pour Windows, Microsoft 365 Apps, Edge et Teams. Son périmètre de licence a été élargi (inclus selon Microsoft dans E3/E5 et, pour une partie des fonctions, dans Business Premium) : vérifier les fonctionnalités disponibles pour votre SKU. L'enregistrement des appareils passe par des Autopatch groups ; ne pas superposer des update rings manuels sur les mêmes appareils.

Windows 10 : fin de support le 14 octobre 2025. Les postes restants doivent être couverts par les Extended Security Updates (ESU) ou migrés ; la politique Feature updates permet de cibler Windows 11 en contrôlant la compatibilité matérielle via le rapport de préparation (Windows feature update device readiness).

9. Déploiement d'applications

9.1 Types d'applications Windows

Type Moteur Avantages Limites
Win32 (.intunewin) IME Tout installeur, détection fine, dépendances, remplacement (supersedence), codes retour Empaquetage obligatoire
Microsoft Store app (new) IME + winget Mise à jour automatique par le Store, apps UWP et Win32 du catalogue Catalogue limité ; dépend de l'accès au Store
Enterprise App Catalog IME Applications tierces pré-empaquetées et mises à jour Licence Intune Suite / Enterprise App Management
Line-of-business (MSI) MDM natif Simple Pas de dépendances, conflits ESP ; à éviter
Microsoft 365 Apps CSP Office Configuration XML intégrée Téléchargement long pendant l'ESP

9.2 Empaquetage Win32

# Outil Microsoft Win32 Content Prep Tool
IntuneWinAppUtil.exe -c C:\Pkg\7zip\src -s 7z2408-x64.msi -o C:\Pkg\7zip\out -q

# Commandes (contexte System)
Installation   : msiexec /i "7z2408-x64.msi" /qn /norestart
Désinstallation : msiexec /x {23170F69-40C1-2702-2408-000001000000} /qn /norestart

# Installeur EXE avec wrapper PowerShell
Installation   : %SystemRoot%\sysnative\WindowsPowerShell\v1.0\powershell.exe -ExecutionPolicy Bypass -NoProfile -File .\install.ps1
32 bits / 64 bits : l'IME lance les commandes d'installation dans un processus 32 bits. Sans %SystemRoot%\sysnative\, un script qui écrit dans HKLM\SOFTWARE ou C:\Program Files est redirigé vers WOW6432Node / Program Files (x86), et la règle de détection (64 bits) ne trouve rien : l'application reste en échec alors qu'elle est installée.

9.3 Règles de détection

Type Quand l'utiliser Piège
Code produit MSI Installeur MSI Le code change à chaque version : lier la mise à jour par supersedence
Fichier (existence, version, date) EXE classiques Utiliser la version du fichier pour distinguer les versions
Registre Clé Uninstall Cocher « associée à une application 32 bits » si elle est sous WOW6432Node
Script PowerShell Logique complexe Détecté = code de sortie 0 ET texte écrit sur STDOUT. Un Write-Host seul ou un exit 0 sans sortie = non détecté.
# Script de détection : application installée en version >= 24.08
$exe = "C:\Program Files\7-Zip\7z.exe"
if (Test-Path $exe) {
    $v = [version](Get-Item $exe).VersionInfo.ProductVersion
    if ($v -ge [version]"24.08") { Write-Output "Detected $v"; exit 0 }
}
exit 1

9.4 Dépendances, remplacement, assignation

  • Dépendances : runtime (VC++, .NET) installé automatiquement avant l'application ; profondeur maximale limitée, pas de cycles.
  • Supersedence : la nouvelle version remplace l'ancienne (désinstallation optionnelle) ; chaîne limitée à quelques niveaux, nettoyer régulièrement.
  • Requirement rules : architecture, version d'OS, espace disque, script ; un échec d'exigence donne « Not applicable », pas « Failed ».
  • Intentions : Required (forcée), Available (Company Portal, groupes d'utilisateurs), Uninstall.
  • Codes retour : 0 succès, 1707 succès, 3010 soft reboot, 1641 hard reboot, 1618 retry (autre installation en cours) ; ajouter les codes spécifiques de l'éditeur.
  • Delivery Optimization : le contenu Win32 passe par DO ; configurer le mode de groupe (LAN) pour éviter de saturer les liens des sites distants.

9.5 winget en complément

# Déploiement winget dans un Win32 (contexte System) : résoudre le chemin de winget.exe
$winget = Get-ChildItem "$env:ProgramFiles\WindowsApps\Microsoft.DesktopAppInstaller_*_x64__8wekyb3d8bbwe\winget.exe" |
          Sort-Object FullName | Select-Object -Last 1
& $winget.FullName install --id Notepad++.Notepad++ --exact --silent --scope machine `
  --accept-package-agreements --accept-source-agreements
Source fiable : le dépôt communautaire winget contient des manifestes soumis par des tiers. Pour un parc géré, privilégier le type « Microsoft Store app (new) » ou l'Enterprise App Catalog, ou épingler l'ID et contrôler le hash dans un dépôt privé.

10. Scripts PowerShell et Remediations

10.1 Comparatif

Critère Platform scripts Remediations Win32 « script »
Exécution Une fois (ré-exécuté si le script change) Planifiée (une fois, horaire, quotidienne) ou à la demande Selon détection
Logique Script unique Détection (exit 1 = problème) + correction Détection + installation
Retour visible Succès/échec Sortie STDOUT (2048 caractères) visible dans le rapport État d'installation
Licence Intune Windows Enterprise E3/E5 ou équivalent (via M365 E3/E5) Intune
Usage Configuration ponctuelle Correction de dérive, inventaire personnalisé, conformité maison Déploiement idempotent avec dépendances

10.2 Exemple de remediation

# detect.ps1 - le service de spouleur doit être désactivé sur les postes sans imprimante locale
$svc = Get-Service -Name Spooler -ErrorAction SilentlyContinue
if ($null -eq $svc) { Write-Output "Absent"; exit 0 }
if ($svc.StartType -eq 'Disabled' -and $svc.Status -eq 'Stopped') {
    Write-Output "Conforme"; exit 0
}
Write-Output "Non conforme : $($svc.Status) / $($svc.StartType)"
exit 1

# remediate.ps1
try {
    Stop-Service -Name Spooler -Force -ErrorAction Stop
    Set-Service -Name Spooler -StartupType Disabled -ErrorAction Stop
    Write-Output "Corrigé"; exit 0
} catch {
    Write-Output "Echec : $($_.Exception.Message)"; exit 1
}
Signature et contexte : les scripts tournent en SYSTEM par défaut, avec un accès total au poste. Activer « Enforce script signature check » si une PKI de signature de code existe (voir Sécurité PowerShell), ne jamais y inscrire de secret (le script est stocké en cache sur le poste et lisible dans les journaux IME), et limiter le rôle autorisant la création de scripts.

10.3 Inventaire personnalisé

Les Remediations en mode « détection seule » sont un moyen simple de remonter une information (version d'un pilote, présence d'un fichier) : la sortie STDOUT est exportable depuis le rapport. Pour un inventaire structuré et requêtable, Intune propose aussi des propriétés d'inventaire étendues (Properties catalog) et Device query (selon licence).

11. Defender for Endpoint et règles ASR

11.1 Onboarding via Intune

  1. Portail Defender : Settings > Endpoints > Advanced features > activer Microsoft Intune connection.
  2. Intune : Endpoint security > Microsoft Defender for Endpoint > connecteur actif, partage des données de conformité pour Windows/iOS/Android.
  3. Politique Endpoint security > Endpoint detection and response avec le package d'onboarding « Auto from connector ».
  4. Politiques Antivirus (protection cloud niveau High, délai de blocage étendu, PUA bloquées, Tamper protection).
  5. Conformité : exiger un score de risque machine plafonné (section 5).
# Vérification sur le poste
Get-MpComputerStatus | Select AMRunningMode, RealTimeProtectionEnabled, IsTamperProtected, AntivirusSignatureLastUpdated
sc.exe query sense
# Onboarding : HKLM\SOFTWARE\Microsoft\Windows Advanced Threat Protection\Status  -> OnboardingState = 1

11.2 Règles ASR prioritaires

Règle GUID Risque de faux positifs
Block abuse of exploited vulnerable signed drivers 56a863a9-875e-4185-98a7-b882c64b5ce5 Faible
Block credential stealing from LSASS 9e6c4e1f-7d60-472f-ba1a-a39ef669e4b2 Faible (bruit d'audit sur outils de gestion)
Block persistence through WMI event subscription e6db77e5-3df2-4cf1-b95a-636979351e5b Faible
Block executable content from email client and webmail be9ba2d9-53ea-4cdc-84e5-9b1eeee46550 Faible
Block all Office applications from creating child processes d4f940ab-401b-4efc-aadc-ad5f3c50688a Moyen (macros métier, compléments)
Block process creations originating from PSExec and WMI commands d1e49aac-8f56-4280-b9ba-993a6d77406c Élevé (incompatible avec ConfigMgr)

Ces identifiants sont ceux de la documentation Microsoft « Attack surface reduction rules reference » : la recopier depuis la source pour toute règle supplémentaire. Méthode : Audit 30 jours, analyse, exclusions ciblées (par chemin, par règle), puis Block par anneaux. Le mode Warn laisse l'utilisateur contourner, utile pour la transition.

# Sur le poste : règles et état (0 = off, 1 = block, 2 = audit, 6 = warn)
$p = Get-MpPreference
for ($i=0; $i -lt $p.AttackSurfaceReductionRules_Ids.Count; $i++) {
  "{0}  {1}" -f $p.AttackSurfaceReductionRules_Ids[$i], $p.AttackSurfaceReductionRules_Actions[$i]
}
# Événements : Microsoft-Windows-Windows Defender/Operational, ID 1121 (bloqué), 1122 (audit)
Get-WinEvent -LogName "Microsoft-Windows-Windows Defender/Operational" |
  Where-Object { $_.Id -in 1121,1122 } | Select -First 20 TimeCreated, Id, Message
// Advanced hunting (Defender XDR) : déclenchements ASR sur 30 jours
DeviceEvents
| where Timestamp > ago(30d)
| where ActionType startswith "Asr"
| summarize Nb = count() by ActionType, FileName, FolderPath, InitiatingProcessFileName
| order by Nb desc

12. MAM / App Protection (BYOD)

12.1 MDM ou MAM ?

Critère MDM (inscription) MAM sans inscription (MAM-WE)
Contrôle Appareil complet Données d'entreprise dans les applications protégées
Acceptabilité BYOD Faible (vie privée) Élevée
Wipe Complet ou retrait Sélectif (données pro uniquement)
Prérequis Company Portal, inscription Applications compatibles Intune SDK (Outlook, Teams, Office, Edge) + broker (Authenticator / Company Portal)

12.2 Réglages d'une politique de protection d'applications

  • Transfert de données : envoyer vers Policy managed apps uniquement ; restreindre copier/coller vers les applications gérées (avec coller entrant autorisé) ; enregistrer sous OneDrive/SharePoint uniquement.
  • Accès : PIN application (ou biométrie), revalidation après 30 minutes d'inactivité.
  • Lancement conditionnel : version d'OS minimale, appareil jailbreaké/rooted = wipe des données, Play Integrity (Android), hors ligne > 90 jours = wipe, menace MTD (Defender for Endpoint mobile) > niveau autorisé.

Le framework de protection des données Microsoft définit trois niveaux (Basic, Enhanced, High) : partir du niveau 2 pour les utilisateurs standards, niveau 3 pour les populations sensibles.

Le contrôle Conditional Access Require app protection policy garantit que seules les applications protégées accèdent à Exchange/SharePoint depuis iOS/Android. Pour Windows personnel, MAM pour Microsoft Edge permet un accès protégé via un profil Edge professionnel, sans inscription.

Client mail natif : les applications Mail natives iOS/Android ne supportent pas les politiques de protection. La politique CA doit les bloquer, sinon les données sortent du périmètre MAM par ce canal.

13. Rapports, journaux et diagnostics

13.1 Emplacements sur le poste Windows

Source Chemin Contenu
IME principal C:\ProgramData\Microsoft\IntuneManagementExtension\Logs\IntuneManagementExtension.log Check-in IME, politiques, scripts
Applications Win32 ...\Logs\AppWorkload.log Téléchargement, détection, installation, codes retour (séparé de l'IME log dans les versions récentes)
Exécution des scripts ...\Logs\AgentExecutor.log Ligne de commande PowerShell, sortie, code
Remediations ...\Logs\HealthScripts.log Planification et résultats
Pile MDM Observateur : Microsoft-Windows-DeviceManagement-Enterprise-Diagnostics-Provider/Admin Inscription, application des CSP, erreurs OMA-DM
Autopilot Observateur : Microsoft-Windows-ModernDeployment-Diagnostics-Provider/Autopilot Profil téléchargé, étapes OOBE
Entra join / PRT Observateur : Microsoft-Windows-AAD/Operational, User Device Registration/Admin Jonction, jetons
Scripts et contenus en cache C:\Program Files (x86)\Microsoft Intune Management Extension\Content\ Scripts et paquets téléchargés
État Win32 (registre) HKLM\SOFTWARE\Microsoft\IntuneManagementExtension\Win32Apps\<UserId>\<AppId> Résultat, tentatives, GRS
Lecture des .log : utiliser CMTrace (fourni avec ConfigMgr) ou OneTrace : ces journaux sont au format CMTrace et deviennent illisibles dans un éditeur texte dès qu'ils dépassent quelques Mo.

13.2 Outils de diagnostic

# Rapport HTML MDM (politiques appliquées, certificats, inscription)
mdmdiagnosticstool.exe -out C:\Temp\MDMDiag

# Archive complète pour Autopilot / inscription (à joindre à un ticket)
mdmdiagnosticstool.exe -area "DeviceEnrollment;DeviceProvisioning;Autopilot" -zip C:\Temp\MDMDiag.zip

# État de jonction et du PRT
dsregcmd /status
#   AzureAdJoined : YES / DomainJoined : YES-NO / AzureAdPrt : YES / DeviceAuthStatus : SUCCESS

# Forcer une synchronisation MDM (équivalent du bouton "Sync" de Paramètres > Comptes > Accès professionnel)
Get-ScheduledTask -TaskPath "\Microsoft\Windows\EnterpriseMgmt\*" -TaskName "Schedule #3 created by enrollment client" |
  Start-ScheduledTask

# Relancer l'IME (réévaluation des apps Win32 et scripts)
Restart-Service -Name IntuneManagementExtension

# Diagnostics Autopilot lisibles (script communautaire)
Install-Script -Name Get-AutopilotDiagnosticsCommunity -Force
Get-AutopilotDiagnosticsCommunity -Online

Depuis la console : Devices > [appareil] > Collect diagnostics récupère à distance journaux et clés de registre (Windows 10 1909+ géré), téléchargeables en ZIP sans prise en main.

13.3 Rapports de la console

  • Device compliance / Noncompliant devices and settings : quel réglage rend l'appareil non conforme.
  • Per setting status d'une politique : Succeeded / Error / Conflict / Not applicable.
  • App install status avec le code d'erreur hexadécimal (0x87D1041C = application non détectée après installation réussie).
  • Windows Autopilot deployments (30 jours), Enrollment failures.
  • Endpoint analytics : temps de démarrage, plantages applicatifs, score d'expérience.
  • Export vers Log Analytics (diagnostic settings) pour une rétention et des requêtes au-delà de la console (voir Monitoring).

14. Graph PowerShell pour Intune

Install-Module Microsoft.Graph -Scope CurrentUser
Connect-MgGraph -Scopes "DeviceManagementManagedDevices.ReadWrite.All","DeviceManagementConfiguration.Read.All",`
  "DeviceManagementServiceConfig.ReadWrite.All","DeviceManagementApps.Read.All"

# Inventaire : appareils non conformes ou sans check-in depuis 14 jours
$limite = (Get-Date).AddDays(-14)
Get-MgDeviceManagementManagedDevice -All |
  Where-Object { $_.ComplianceState -ne 'compliant' -or $_.LastSyncDateTime -lt $limite } |
  Select DeviceName, UserPrincipalName, OperatingSystem, OsVersion, ComplianceState, LastSyncDateTime |
  Export-Csv C:\audit\intune-a-traiter.csv -NoTypeInformation -Encoding UTF8

# Forcer une synchronisation
$dev = Get-MgDeviceManagementManagedDevice -Filter "deviceName eq 'PAR-PC0123'"
Sync-MgDeviceManagementManagedDevice -ManagedDeviceId $dev.Id

# Politiques de conformité et assignations
Get-MgDeviceManagementDeviceCompliancePolicy | Select DisplayName, Id
Get-MgDeviceManagementDeviceCompliancePolicyAssignment -DeviceCompliancePolicyId "<POLICY_ID>"

# Appareils Autopilot (hash enregistrés) et group tags
Get-MgDeviceManagementWindowsAutopilotDeviceIdentity -All |
  Select SerialNumber, Model, GroupTag, EnrollmentState, LastContactedDateTime

# Applications Win32 (types spécifiques exposés via l'API ; certaines propriétés uniquement en beta)
Get-MgDeviceAppManagementMobileApp -Filter "isof('microsoft.graph.win32LobApp')" | Select DisplayName, Id
# Appel brut (endpoint non couvert par un cmdlet) : résumé de conformité
Invoke-MgGraphRequest -Method GET `
  -Uri "https://graph.microsoft.com/v1.0/deviceManagement/deviceCompliancePolicyDeviceStateSummary"

# Sauvegarde de la configuration : exporter toutes les politiques Settings Catalog en JSON
$pol = Invoke-MgGraphRequest -Method GET -Uri "https://graph.microsoft.com/beta/deviceManagement/configurationPolicies?`$expand=settings" -OutputType PSObject
$pol.value | ForEach-Object { $_ | ConvertTo-Json -Depth 50 | Out-File ("C:\IntuneBackup\" + $_.name + ".json") -Encoding utf8 }
Configuration as code : Intune n'a pas de versioning natif des politiques. Exporter régulièrement la configuration (scripts Graph ci-dessus, ou outils open source de sauvegarde/documentation Intune) vers un dépôt Git (voir Git) donne un historique, un diff et une base de restauration. En automatisation, utiliser une application Entra avec certificat et permissions Application minimales, jamais un compte admin.

15. Dépannage

15.1 Inscription et Autopilot

Symptôme Cause probable Correction
OOBE standard au lieu de l'écran Autopilot de l'entreprise Hash non importé, profil non assigné (groupe dynamique pas encore recalculé), pas d'accès Internet au premier écran Vérifier « Profile status : Assigned » dans Windows Autopilot devices ; attendre ; redémarrer l'OOBE
0x80180014 Restriction d'inscription (plateforme ou appareil personnel bloqué) ou appareil précédemment supprimé encore bloqué côté Intune Revoir les restrictions ; supprimer l'ancien enregistrement Intune avant réinscription
0x80180018 Utilisateur sans licence Intune Licence + MDM user scope incluant l'utilisateur
0x801c03ed Utilisateur non autorisé à joindre des appareils, ou objet appareil Entra supprimé/désactivé alors que le hash Autopilot existe Device settings Entra ; supprimer le hash puis le réimporter pour recréer l'objet
« Something went wrong » / 0x80180005, 0x8018002b UPN non routable, MDM user scope à None, limite d'appareils par utilisateur atteinte Corriger l'UPN, le scope, la limite
ESP bloquée sur « Identifying » ou une application Application Win32 dont la détection échoue, conflit LOB MSI/Win32, application requise en contexte utilisateur pendant la phase device Shift+F10, lire AppWorkload.log ; réduire la liste des apps bloquantes
Hybride : 0x80070774 / « domain not found » Connecteur AD indisponible ou ancien, pas de ligne de vue DC, OU non déléguée Logs du connecteur sur le serveur, test réseau vers DC, droits sur l'OU
Pré-provisioning échoue sur TPM Attestation TPM impossible (firmware, horloge, flux réseau vers les services d'attestation bloqué par le proxy) Mettre à jour le firmware TPM, autoriser les URL d'attestation, tester en réseau direct
Codes d'erreur : la signification exacte des codes 0x8018xxxx varie selon le contexte (Autopilot, inscription manuelle, Company Portal). Toujours croiser avec le journal DeviceManagement-Enterprise-Diagnostics-Provider/Admin et la page « Troubleshoot Windows device enrollment » de la documentation Microsoft.

15.2 Application Win32 bloquée

Symptôme Cause Correction
0x87D1041C « not detected after installation » Règle de détection fausse (32/64 bits, version, script sans STDOUT) Tester la détection localement en SYSTEM (psexec -s -i), corriger
Reste « Install pending » ou « Downloading » IME bloqué, Delivery Optimization ou proxy filtrant le CDN, espace disque AppWorkload.log, redémarrer l'IME, autoriser les URL de contenu
Échec puis aucune nouvelle tentative Global Retry Schedule : 3 essais puis attente 24 h Supprimer la sous-clé Win32Apps\<UserId>\<AppId> et la clé GRS correspondante, redémarrer l'IME
Code 1618 Autre installation MSI en cours (Windows Update, autre app) Retry automatique ; éviter les apps LOB MSI en parallèle
Install OK en local, échec via Intune Contexte SYSTEM (pas de profil utilisateur, pas de lecteur réseau), processus 32 bits, interaction requise Tester en SYSTEM, utiliser sysnative, paramètres silencieux
« Not applicable » Requirement rule non satisfaite, filtre d'assignation Vérifier architecture, version OS, script d'exigence

15.3 Conformité incorrecte

Symptôme Cause Correction
« Not compliant » sur BitLocker alors que le disque est chiffré Health Attestation pas encore rafraîchie (pas de redémarrage depuis le chiffrement) Redémarrer puis synchroniser ; patienter un cycle de check-in
Conforme dans Intune, bloqué par le CA Plusieurs objets appareil Entra (doublon hybrid/registered), PRT absent, navigateur sans SSO (Chrome sans extension, profil InPrivate) dsregcmd /status, supprimer l'enregistrement « registered » en double, extension Microsoft SSO pour Chrome
« Not evaluated » / « In grace period » Appareil récemment inscrit, pas de check-in, utilisateur principal absent Forcer la synchro, vérifier l'utilisateur principal
Non conforme « Is active » (Default Device Compliance Policy) Pas de check-in depuis la période de validité Remettre l'appareil en ligne ; retirer les appareils obsolètes
Score de risque MDE « High » persistant Alerte non résolue dans Defender Traiter/résoudre l'alerte ; le score se met à jour ensuite

16. Pièges et checklist de mise en production

16.1 Pièges classiques

  • « Appareils sans politique = conformes » laissé par défaut : le CA est contournable par tout appareil inscrit sans politique.
  • Utilisateurs admin locaux via le profil Autopilot ou le réglage Entra : annule l'essentiel du durcissement. Utiliser LAPS et, pour les élévations ponctuelles, Endpoint Privilege Management (licence dédiée).
  • Assignation à « All devices » d'une politique non testée : pas de rollback ; certains réglages restent appliqués (tattooing).
  • Mélange GPO + Intune sur le même réglage : résultat imprévisible, la GPO gagne souvent.
  • Suppression d'appareils Entra sans export des clés BitLocker.
  • Certificat APNs renouvelé avec un autre Apple ID : réinscription de tous les appareils Apple.
  • Exclusions ASR et antivirus trop larges (C:\Users\*, *.exe) : neutralisent la protection.
  • Secrets dans les scripts : lisibles en cache et dans les journaux IME.
  • Win32 sans sysnative : détections fausses et applications en échec perpétuel.
  • Trop d'applications bloquantes dans l'ESP : déploiements de 2 heures et échecs aléatoires.
  • Pas de second admin approbateur : un compte compromis = wipe ou script sur tout le parc.

16.2 Checklist

Fondations

  • [ ] Licences Entra ID P1 + Intune attribuées par groupe ; MDM user scope configuré.
  • [ ] CNAME enterpriseenrollment / enterpriseregistration publiés.
  • [ ] Restrictions d'inscription (plateformes, appareils personnels, limite par utilisateur).
  • [ ] Aucun admin local supplémentaire dans Entra ; Windows LAPS activé (Entra + politique).
  • [ ] RBAC Intune avec rôles personnalisés et scope tags ; Multi Admin Approval sur wipe/scripts/apps.
  • [ ] Groupes dynamiques et filtres documentés ; anneaux Test / Pilote / Production.

Inscription

  • [ ] Hash déclarés par le fournisseur ou importés, group tags normalisés.
  • [ ] Profil Autopilot Entra joined, utilisateur standard, nommage défini.
  • [ ] ESP avec liste minimale d'apps bloquantes, timeout adapté, applications en Win32.
  • [ ] Apple : APNs sur Apple ID de service, jeton ADE et VPP, rappel de renouvellement à J-30.
  • [ ] Android Enterprise lié à Managed Google Play ; device administrator désactivé.

Sécurité

  • [ ] Appareils sans politique = non conformes ; politiques de conformité par plateforme avec délai de grâce.
  • [ ] Conditional Access « appareil conforme » validé en Report-only, bris de glace exclus.
  • [ ] BitLocker silencieux avec séquestre Entra et rotation ; FileVault séquestré pour macOS.
  • [ ] Security baselines appliquées sans conflit avec le Settings Catalog.
  • [ ] Defender for Endpoint onboardé via le connecteur, Tamper protection activée.
  • [ ] Règles ASR en audit puis block par anneaux ; exclusions documentées.
  • [ ] MAM pour les mobiles personnels + CA « app protection policy », clients mail natifs bloqués.

Exploitation

  • [ ] Anneaux Windows Update (ou Autopatch) actifs, échéances définies, aucune référence WSUS résiduelle.
  • [ ] Version d'OS minimale dans la conformité revue chaque mois.
  • [ ] Remediations de dérive critiques en place ; scripts signés, sans secret.
  • [ ] Export régulier de la configuration Intune vers Git ; diagnostic settings vers Log Analytics.
  • [ ] Nettoyage des appareils inactifs (désactivation puis suppression, clés BitLocker exportées).
  • [ ] Procédures support : collecte de diagnostics, lecture LAPS/BitLocker, réinitialisation Autopilot.
Pour aller plus loin : Microsoft Entra ID (Conditional Access, Windows Hello, PIM), Microsoft 365 (Exchange, SharePoint, Teams), Durcissement Active Directory pour les parcs hybrides, Windows Server et Sécurité PowerShell.