Metsys Blog

Localiser un appareil depuis le portail Intune ou avec PowerShell et MS Graph

Cliquez pour évaluer cet article !
0 avis

Dans 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

  1. Cliquez sur un appareil
  2. Cliquez sur les 3
  3. Cliquez sur Locate device
  4. 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:

  1. Récupérer les infos en fonction du nom du poste
$Get_Device = Get-IntuneManagedDevice | Get-MSGraphAllPages | where{$_.deviceName -like "*POSTE-MAISON*"}
  1. Récupérer l’ID du poste
$Get_Device_ID = $Get_Device.ID
  1. 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
  1. Vérifier la locatisation :
$url = https://graph.microsoft.com/v1.0/deviceManagement/managedDevices/$Get_Device_ID
(Invoke-MSGraphRequest -Url $url -HttpMethod GET).deviceActionResults.deviceLocation
  1. Le résultat est vide car il faut attendre un peu.
  2. La machine concernée recevra une notification tel que ci-dessous :
  1. Il est désormais possible de récupérer les infos GPS :
(Invoke-MSGraphRequest -Url $url -HttpMethod GET).deviceActionResults.deviceLocation
  1. 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.

  1. 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
  1. Affichage du résultat dans Google Maps :
Start-Process "https://www.google.com/maps?q=$Latitude,$Longitude"
  1. Ci-dessous le résultat :
  1. Récupération des coordonnées exactes :
$Lat = $Latitude.replace(",",".")
$Long = $Longitude.replace(",",".")
$Location = "https://geocode.xyz/" + "$Lat,$Long" + "?geoit=json"
Invoke-RestMethod $Location
  1. Ci-dessous le résultat :

Notez cet article

Vous avez aimé cet article ?

Rendez-le plus visible auprès des internautes en lui mettant une bonne note.

Cliquez pour évaluer cet article !
0 avis

Articles pouvant vous intéresser

RETEX CERT

Tout d’abord, en termes d’éthique et pour respecter la confidentialité des sujets aussi sensibles que