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

23k Views Asked by At

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?

3

There are 3 best solutions below

1
colsw On BEST ANSWER

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.
}
1
Louis On

Make sure location is set on. Ohterwise it outputs 'Access Denied for Location Information'

0
Darin On

If the accepted answer, which uses System.Device.Location.GeoCoordinateWatcher, throws throws Access Denied for Location Information, then Windows ability to provide location to apps is probably disabled. To turn this on, in Windows go to:

Start > Settings > Privacy > Location.

Turn on Allow access to location on this device.

Turn on Allow apps to access your location.