Search code examples
powershellgeolocationgpswindows-10windows-locationapi

Powershell: Getting GPS Coordinates in Windows 10 - Using Windows Location API?


I'm looking for a way to gather internal GPS data from a powershell script using Windows Location API, as the Windows Location Platform is no longer able to satisfy the need. Previously, there was a com object to use.

Is there a way for this to be accomplished in Windows 10?


Solution

  • An example of using the System.Device.Location method, this should be what you're looking for.

    Add-Type -AssemblyName System.Device #Required to access System.Device.Location namespace
    $GeoWatcher = New-Object System.Device.Location.GeoCoordinateWatcher #Create the required object
    $GeoWatcher.Start() #Begin resolving current locaton
    
    while (($GeoWatcher.Status -ne 'Ready') -and ($GeoWatcher.Permission -ne 'Denied')) {
        Start-Sleep -Milliseconds 100 #Wait for discovery.
    }  
    
    if ($GeoWatcher.Permission -eq 'Denied'){
        Write-Error 'Access Denied for Location Information'
    } else {
        $GeoWatcher.Position.Location | Select Latitude,Longitude #Select the relevent results.
    }