Archived
Update WindowsLocationServicesON.ps1
This commit is contained in:
1 parent
67e138036c
commit
1142ad9ff7
1 file changed
+20
-36
@@ -1,43 +1,27 @@
|
|||||||
<#
|
# 1. Terminate Settings app to allow clean reload
|
||||||
.SYNOPSIS
|
|
||||||
Enables Windows Master Location Services and app-level location access.
|
|
||||||
#>
|
|
||||||
|
|
||||||
# 1. Close Settings app to force a UI refresh when reopened
|
|
||||||
Stop-Process -Name "SystemSettings" -Force -ErrorAction SilentlyContinue
|
Stop-Process -Name "SystemSettings" -Force -ErrorAction SilentlyContinue
|
||||||
|
|
||||||
# 2. Configure and start the Geolocation Service (lfsvc)
|
# 2. Configure and start lfsvc service
|
||||||
Write-Output "Configuring Geolocation service (lfsvc)..."
|
sc.exe config lfsvc start= auto
|
||||||
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Services\lfsvc" -Name "Start" -Value 2 -Type DWord -Force
|
sc.exe start lfsvc
|
||||||
Start-Service -Name "lfsvc" -ErrorAction SilentlyContinue
|
|
||||||
|
|
||||||
# 3. Set service configuration status flag
|
# 3. Enable Master Machine Location Access (HKLM)
|
||||||
$svcConfigPath = "HKLM:\SYSTEM\CurrentControlSet\Services\lfsvc\Service\Configuration"
|
reg.exe add "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\CapabilityAccessManager\ConsentStore\location" /v "Value" /t REG_SZ /d "Allow" /f
|
||||||
if (-not (Test-Path $svcConfigPath)) { New-Item -Path$svcConfigPath -Force | Out-Null }
|
|
||||||
Set-ItemProperty -Path $svcConfigPath -Name "Status" -Value 1 -Type DWord -Force
|
|
||||||
|
|
||||||
# 4. Remove any conflicting local policies
|
# 4. Enable User Profile Location Access (HKCU)
|
||||||
$policyPaths = @(
|
reg.exe add "HKCU\Software\Microsoft\Windows\CurrentVersion\CapabilityAccessManager\ConsentStore\location" /v "Value" /t REG_SZ /d "Allow" /f
|
||||||
"HKLM:\SOFTWARE\Policies\Microsoft\Windows\LocationAndSensors",
|
|
||||||
"HKCU:\SOFTWARE\Policies\Microsoft\Windows\LocationAndSensors"
|
|
||||||
)
|
|
||||||
foreach ($path in$policyPaths) {
|
|
||||||
if (Test-Path $path) {
|
|
||||||
Remove-ItemProperty -Path $path -Name "DisableLocation" -ErrorAction SilentlyContinue
|
|
||||||
Remove-ItemProperty -Path $path -Name "DisableLocationScripting" -ErrorAction SilentlyContinue
|
|
||||||
Remove-ItemProperty -Path $path -Name "DisableSensors" -ErrorAction SilentlyContinue
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
# 5. Enable Master Device-Level Location Switch (HKLM)
|
# 5. Enable internal service configuration flag
|
||||||
$hklmConsentPath = "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\CapabilityAccessManager\ConsentStore\location"
|
reg.exe add "HKLM\SYSTEM\CurrentControlSet\Services\lfsvc\Service\Configuration" /v "Status" /t REG_DWORD /d 1 /f
|
||||||
if (-not (Test-Path $hklmConsentPath)) { New-Item -Path$hklmConsentPath -Force | Out-Null }
|
|
||||||
Set-ItemProperty -Path $hklmConsentPath -Name "Value" -Value "Allow" -Type String -Force
|
|
||||||
|
|
||||||
# 6. Enable User-Level Location Switch (HKCU and all loaded user hives)
|
# 6. Enable Windows Sensor platform permissions
|
||||||
$hkcuConsentPath = "HKCU:\Software\Microsoft\Windows\CurrentVersion\CapabilityAccessManager\ConsentStore\location"
|
reg.exe add "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Sensor\Permissions\{BFA794E4-F964-4FDB-90F6-51056BFE4B44}" /v "SensorPermissionState" /t REG_DWORD /d 1 /f
|
||||||
if (-not (Test-Path $hkcuConsentPath)) { New-Item -Path$hkcuConsentPath -Force | Out-Null }
|
|
||||||
Set-ItemProperty -Path $hkcuConsentPath -Name "Value" -Value "Allow" -Type String -Force
|
|
||||||
|
|
||||||
$userSids = Get-ChildItem "Registry::HKEY_USERS" | Where-Object { $_.PSChildName -match "^S-1-5-21-\d+-\d+-\d+-\d+$" }
|
# 7. Remove Group Policy overrides if present
|
||||||
foreach ($sid in$user`
|
reg.exe delete "HKLM\SOFTWARE\Policies\Microsoft\Windows\LocationAndSensors" /v "DisableLocation" /f 2>$null
|
||||||
|
reg.exe delete "HKCU\SOFTWARE\Policies\Microsoft\Windows\LocationAndSensors" /v "DisableLocation" /f 2>$null
|
||||||
|
reg.exe delete "HKLM\SOFTWARE\Policies\Microsoft\Windows\LocationAndSensors" /v "DisableLocationScripting" /f 2>$null
|
||||||
|
reg.exe delete "HKCU\SOFTWARE\Policies\Microsoft\Windows\LocationAndSensors" /v "DisableLocationScripting" /f 2>$null
|
||||||
|
|
||||||
|
# 8. Restart service to apply immediately
|
||||||
|
Restart-Service -Name "lfsvc" -Force
|
||||||
Reference in new issue
Block a user