Une incohérence d’attribution d’appareil se produit lorsque l’utilisateur actuel d’un terminal n’est pas celui attendu ou le propriétaire désigné. Comme la non-conformité des correctifs, ce phénomène peut dégrader progressivement votre posture de sécurité : des audits réguliers sont donc indispensables. Avec les bons outils, vous pouvez automatiser les tâches les plus complexes tout en recevant des alertes en temps réel sur les connexions non conformes.
Cet article explique comment suivre les cas d’incohérence d’attribution d’appareil à l’aide des outils intégrés, et comment les solutions RMM modernes peuvent enrichir vos rapports.
Générer un rapport d’incohérence d’attribution d’appareil, en toute simplicité
Suivez ces étapes pour collecter les données d’incohérence d’attribution d’appareil en gardant à l’esprit vos objectifs et vos contraintes techniques.
📌 Prérequis :
- Privilèges d’administrateur
- Windows 10/11 ou Server 2016+
- PowerShell 5.1 ou version ultérieure
- Autorisations Graph API
- Accès administrateur sur les appareils
- Accès à une source de référence pour les correspondances utilisateur-appareil (par exemple Intune, AD, registre des actifs, CMDB)
- Facultatif : accès en écriture au registre pour le marquage local
- Facultatif : NinjaOne ou un RMM équivalent pour l’automatisation des scripts et le reporting
📌 Stratégies de déploiement recommandées :
| Cliquez pour accéder directement à une étape | 💻 Idéal pour les utilisateurs individuels | 💻💻💻 Idéal pour les grandes entreprises |
| Étape 1 : identifier l’utilisateur actuel de l’appareil avec PowerShell | ✓ | |
| Étape 2 : récupérer le propriétaire attendu depuis une source externe | ✓ | |
| Étape 3 : comparer le propriétaire réel et le propriétaire attendu, puis signaler l’écart | ✓ | ✓ |
| Étape 4 : enregistrer les résultats dans le registre pour un suivi continu | ✓ | |
| Étape 5 : planifier et automatiser l’exécution des scripts | ✓ | ✓ |
Découvrez la version vidéo de Comment générer des rapports mettant en évidence les incohérences entre propriétaire et appareil dans les environnements clients et suivez le cadre complet en cinq étapes.
Étape 1 : identifier l’utilisateur actuel de l’appareil avec PowerShell
Utilisez des cmdlets puissantes pour identifier rapidement les utilisateurs concernés.
📌 Cas d’usage : consulter les journaux du registre de l’appareil pour repérer les interactions utilisateur récentes.
- Appuyez sur Win + R, saisissez PowerShell, puis appuyez sur Ctrl + Maj + Entrée.
- Pour savoir qui a accédé à l’appareil en dernier, exécutez la commande suivante :
$lastUserSID = (Get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Authentication\LogonUI").LastLoggedOnUserSID
$lastUsername = (Get-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Authentication\LogonUI").LastLoggedOnUser
- Pour vérifier le dernier profil ayant utilisé l’appareil, exécutez la commande suivante :
$profiles = Get-CimInstance -ClassName Win32_UserProfile | Where-Object { -not $_.Special }
$lastUsed = $profiles | Sort-Object LastUseTime -Descending | Select-Object -First 1
$lastUsed.LocalPath
Étape 2 : récupérer le propriétaire attendu depuis une source externe
📌 Cas d’usage : obtenir une liste fiable des appareils attribués aux utilisateurs finaux.
📌 Prérequis : Graph API
- Appuyez sur Win + R, saisissez PowerShell, puis appuyez sur Ctrl + Maj + Entrée.
- Pour récupérer la liste des propriétaires attendus depuis Intune via Graph API, exécutez la commande suivante :
Connect-MgGraph -Scopes "Device.Read.All", "DeviceManagementManagedDevices.Read.All", "User.Read.All"
$device = Get-MgDeviceManagementManagedDevice | Where-Object { $_.DeviceName -eq $env:COMPUTERNAME }
$expectedOwner = $device.UserPrincipalName
- Pour générer la liste à partir des données du registre local, exécutez la commande suivante :
Get-ItemProperty -Path "<KeyPath>" -Name "ExpectedOwner"
Remplacez <KeyPath> par le chemin de la clé utilisée pour stocker les données de propriété (par exemple HKLM:\SOFTWARE\Org\Ownership).
Étape 3 : comparer le propriétaire réel et le propriétaire attendu, puis signaler l’incohérence
Voici comment automatiser les contrôles d’incohérence de propriétaire à l’aide de scripts PowerShell.
📌 Cas d’usage : détecter les incohérences d’attribution d’appareil à partir des enregistrements de propriété.
- Appuyez sur Win + R, saisissez PowerShell, puis appuyez sur Ctrl + Maj + Entrée.
- Pour créer un objet de rapport, exécutez ce script :
if ($lastUsername -ne $expectedOwner) {
$report = [PSCustomObject]@{
ComputerName = $env:COMPUTERNAME
ActualUser = $lastUsername
ExpectedUser = $expectedOwner
Timestamp = (Get-Date).ToString("u")
Mismatch = $true
}
} else {
$report = [PSCustomObject]@{
ComputerName = $env:COMPUTERNAME
ActualUser = $lastUsername
ExpectedUser = $expectedOwner
Timestamp = (Get-Date).ToString("u")
Mismatch = $false
}
}
- Pour exporter vos résultats d’incohérence d’attribution d’appareil dans un fichier .csv, exécutez la commande suivante :
$report | Export-Csv "C:\Reports\DeviceOwnerMismatch.csv" -NoTypeInformation
Étape 4 : enregistrer les résultats dans le registre pour un suivi continu
⚠️ Avertissement : la modification du registre peut provoquer des dysfonctionnements du système. Créez une sauvegarde avant de continuer.
📌 Cas d’usage : conserver une copie des résultats d’audit d’incohérence d’attribution d’appareil dans le registre, à des fins de redondance
- Appuyez sur Win + R, saisissez PowerShell, puis appuyez sur Ctrl + Maj + Entrée.
- Pour enregistrer les résultats relatifs au statut de propriété dans votre registre, exécutez la commande suivante :
New-Item -Path "<StoragePath>" -Force
Set-ItemProperty -Path "<StoragePath> -Name "OwnerMismatch" -Value $report.Mismatch
Set-ItemProperty -Path "<StoragePath>" -Name "ActualUser" -Value $report.ActualUser
Set-ItemProperty -Path "<StoragePath>" -Name "ExpectedUser" -Value $report.ExpectedUser
Remplacez <StoragePath>par le chemin de registre de la clé de stockage que vous utilisez pour les données de propriété (par exemple HKLM:\SOFTWARE\Org\DeviceAudit).
- Appuyez sur Win + R, saisissez cmd, puis appuyez sur Ctrl + Maj + Entrée.
- Pour confirmer les modifications des entrées de registre, exécutez :
reg query <StoragePath>
Étape 5 : planifier et automatiser l’exécution des scripts pour détecter les incohérences de propriétaire
📌 Cas d’usage : s’appuyer sur des plateformes externes pour générer les rapports sans friction.
- Appuyez sur Win + R, saisissez PowerShell, puis appuyez sur Ctrl + Maj + Entrée.
- Pour automatiser des contrôles de propriété réguliers, exécutez la commande suivante :
schtasks /create /tn "DeviceOwnerAudit" /tr "powershell.exe -File C:\Scripts\CheckOwnerMismatch.ps1" /sc weekly /st 03:00 /ru SYSTEM
- Vous pouvez aussi exécuter les scripts via un RMM (par exemple NinjaOne) pour des déploiements à l’échelle de l’entreprise.
⚠️ Points de vigilance
| Risques | Conséquences possibles | Solutions |
| Graph API renvoie des données de propriété obsolètes | Une attribution correcte est signalée à tort comme une incohérence | Recoupez les informations avec plusieurs sources externes (par exemple dossiers RH, données du registre local). |
| Le script échoue sans message d’erreur | Alertes manquantes ; incohérences d’attribution non détectées | Appliquez un contrôle de version à vos scripts PowerShell. |
| Utilisateur identifié à tort à cause d’un cache de profil obsolète | Faux positif | Utilisez le journal d’événements avec Get-WinEvent pour vérifier l’historique des connexions. |
| Erreur de logique lors de la comparaison entre propriétaire réel et propriétaire attendu | Audits peu fiables, vérifications supplémentaires à mener | Vérifiez les deux variables avant de les comparer et ajoutez des contrôles de valeurs nulles. |
Points essentiels pour la correspondance entre agent utilisateur et appareil
Gardez ces éléments clés en tête lors de la collecte des données destinées aux rapports de propriété des appareils.
Postes de travail partagés
Les postes de travail à usage multiple doivent également être pris en compte dans vos rapports d’incohérence d’attribution. Pour exclure les environnements partagés, comme les bornes en magasin, lors des audits de propriété, ajoutez l’identificateur de sécurité (SID) de leur compte au registre suivant :
HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\SharedPC\Exemptions
Appareils exclusivement cloud
Pour les terminaux hébergés dans le cloud, Microsoft Graph API constitue la principale source d’information sur la propriété des appareils. Récupérez les propriétaires des appareils enregistrés en exécutant la commande suivante :
GET /devices/{id}/registeredOwners
Intégration au provisionnement
L’attribution à un utilisateur est une étape clé du provisionnement des appareils. À ce stade, c’est soit le portail Intune, soit les fichiers CSV Autopilot qui sont utilisés : gardez-le en tête si vous avez besoin de pistes de dépannage supplémentaires.
Évolution des rôles
Les changements de poste, les renouvellements de matériel et les usages non autorisés sont les causes les plus fréquentes d’incohérence d’attribution d’appareil. Gardez la maîtrise de vos terminaux grâce à des plateformes de gestion offrant des solutions évolutives.
Guide de démarrage rapide
NinjaOne vous aide à générer des rapports mettant en évidence les incohérences entre le propriétaire et l’appareil dans les environnements clients. La plateforme propose des outils et des capacités d’automatisation qui vous permettent de :
1. Détecter les incohérences grâce aux scripts PowerShell et aux intégrations Graph API
2. Automatiser la remédiation pour corriger les problèmes de propriété
3. Associer les agents utilisateurs aux appareils pour un suivi précis
4. Simplifier les audits grâce à des fonctionnalités de reporting complètes
Résoudre les problèmes liés aux rapports d’incohérence de propriétaire
Voici comment résoudre les problèmes d’incohérence d’attribution les plus fréquents chez les MSP.
Propriétaire attendu introuvable
Si le propriétaire attendu de l’appareil n’apparaît pas, recherchez les données Intune du terminal et vérifiez que votre clé de registre personnalisée pour le suivi de la propriété (par exemple HKLM:\SOFTWARE\Org\DeviceOwners) est bien renseignée.
Clés de registre inaccessibles
Des privilèges d’administrateur sont nécessaires pour accéder à certains chemins de registre ou les modifier. Connectez-vous avec des identifiants administrateur, ou exécutez Start-Process powershell -Verb RunAs pour élever vos autorisations.
Plusieurs utilisateurs présentent de l’activité
Plusieurs utilisateurs s’affichent souvent lors de l’exécution de Win32_UserProfile. Pour accéder à l’événement de connexion le plus pertinent, exécutez la commande suivante afin de les classer par horodatage :
Get-CimInstance Win32_UserProfile | Sort-Object LastUseTime -Descending | Select-Object -First 1
Délai d’attente dépassé sur Graph API
Si vous obtenez des erreurs de délai d’attente lors de la récupération des données via Graph API (par exemple 429 Too Many Requests), utilisez les en-têtes Retry-After ainsi que $top, $skip et @odata.nextLink.
Les services NinjaOne simplifient la détection des incohérences
NinjaOne renforce la détection des incohérences en :
- Assurant une détection permanente et des alertes en temps réel.
- Déployant les contrôles d’incohérence d’attribution dans toute l’entreprise.
- Vérifiant les valeurs de registre à la recherche d’indicateurs d’incohérence
- Regroupant les appareils non conformes pour examen par un technicien
- Automatisant les workflows de remédiation (par exemple réattribution du propriétaire, création de tickets)
- Générant des rapports sur l’ensemble des clients pour mettre en évidence et corriger les dérives d’attribution
Automatisez la collecte de données pour votre rapport d’incohérence utilisateur-appareil
Des outils avancés vous permettent de collecter, d’analyser et de stocker les données d’incohérence d’attribution d’appareil sur l’ensemble de votre système. De plus, tirez parti des plateformes RMM et de leurs capacités d’automatisation pour éliminer les erreurs humaines et déployer des solutions évolutives, comme les fonctions personnalisées et les rapports visuels.
Sujets connexes :
