Sommaire
ToggleDans cet article, nous verrons comment localiser un appareil depuis le portail Endpoint Manager (Intune) puis à l’aide de PowerShell et MS Graph.
Localiser votre appareil
Microsoft a récemment ajouté la possibilité de localiser un appareil depuis le portail Microsoft Endpoint Manager.
Ci-dessous le message sur la page Nouveutés:
Cette action existait déjà depuis un bon bout de temps mais il est désormais possible de visualiser sur une carte et obtenir des coordonées GPS.
Prérequis
Pour que cela fonctionne, il faut que la localisation soit activée sur votre poste.
Cela est visible dans le centre de notification tel que ci-dessous :

Il est possible de l’activer/désactiver tel que ci-dessous :
$Path = "SOFTWARE\Microsoft\Windows\CurrentVersion\CapabilityAccessManager\ConsentStore\location"
# Enable location
New-ItemProperty -Path "HKLM:\$Path" -Name "Value" -Type String -Value "Allow" -Force
# Disable location
New-ItemProperty -Path "HKLM:\$Path" -Name "Value" -Type String -Value "Deny" -Force
Depuis le portail Intune
- Cliquez sur un appareil
- Cliquez sur les 3
- Cliquez sur Locate device
- La localisation de votre appareil s’affiche alors
Avec PowerShell
Nous utiliserons le module Microsoft.Graph.Intune
La 1ère étape consiste à récupérer l’ID de l’appareil concerné.
Nous allons procéder de la manière suivante:
- Récupérer les infos en fonction du nom du poste
$Get_Device = Get-IntuneManagedDevice | Get-MSGraphAllPages | where{$_.deviceName -like "*POSTE-MAISON*"}
- Récupérer l’ID du poste
$Get_Device_ID = $Get_Device.ID
- Exécuter l’action Locate device
$url_locate = https://graph.microsoft.com/v1.0/deviceManagement/managedDevices/$Get_Device_ID/locateDevice
Invoke-MSGraphRequest -Url $url_locate -HttpMethod POST
- Vérifier la locatisation :
$url = https://graph.microsoft.com/v1.0/deviceManagement/managedDevices/$Get_Device_ID
(Invoke-MSGraphRequest -Url $url -HttpMethod GET).deviceActionResults.deviceLocation
- Le résultat est vide car il faut attendre un peu.
- La machine concernée recevra une notification tel que ci-dessous :
- Il est désormais possible de récupérer les infos GPS :
(Invoke-MSGraphRequest -Url $url -HttpMethod GET).deviceActionResults.deviceLocation
- Ci-dessous le résultat :
Récupérer l’adresse et afficher dans un plan
Maintenant, nous allons utiliser les informations latitude et longitude pour récupérer l’adresse et afficher le résultat dans Google Maps.
- Récupération de la latitude et longitude :
$Latitude = (Invoke-MSGraphRequest -Url $url -HttpMethod GET).deviceActionResults.deviceLocation.latitude
$Longitude = (Invoke-MSGraphRequest -Url $url -HttpMethod GET).deviceActionResults.deviceLocation.longitude
- Affichage du résultat dans Google Maps :
Start-Process "https://www.google.com/maps?q=$Latitude,$Longitude"
- Ci-dessous le résultat :
- Récupération des coordonnées exactes :
$Lat = $Latitude.replace(",",".")
$Long = $Longitude.replace(",",".")
$Location = "https://geocode.xyz/" + "$Lat,$Long" + "?geoit=json"
Invoke-RestMethod $Location
- Ci-dessous le résultat :