Files
2026-06-10 21:57:53 +02:00

56 lines
2.0 KiB
PowerShell

class FirefoxService {
static [string] FindInstallDir() {
$candidates = @(
"C:\Program Files\Mozilla Firefox",
"C:\Program Files (x86)\Mozilla Firefox"
)
foreach ($c in $candidates) {
if (Test-Path (Join-Path $c "firefox.exe")) { return $c }
}
try {
$reg = Get-ItemProperty "HKLM:\SOFTWARE\Mozilla\Mozilla Firefox" -ErrorAction Stop
if ($reg."Install Directory" -and (Test-Path $reg."Install Directory")) {
return $reg."Install Directory"
}
} catch {}
return $null
}
static [string] FindProfile() {
$profilesPath = Join-Path ([Environment]::GetFolderPath("ApplicationData")) "Mozilla\Firefox\Profiles"
if (-not (Test-Path $profilesPath)) { return $null }
$profiles = Get-ChildItem $profilesPath -Directory |
Where-Object { $_.Name -match '\.default|default-release' }
if ($profiles) { return $profiles[0].FullName }
$all = Get-ChildItem $profilesPath -Directory
if ($all) { return $all[0].FullName }
return $null
}
static [bool] IsRunning() {
return [bool](Get-Process -Name "firefox" -ErrorAction SilentlyContinue)
}
static [bool] IsAdmin() {
$id = [System.Security.Principal.WindowsIdentity]::GetCurrent()
return (New-Object System.Security.Principal.WindowsPrincipal($id)).IsInRole(
[System.Security.Principal.WindowsBuiltInRole]::Administrator)
}
static [bool] IsIntuneManaged() {
$key = "HKLM:\SOFTWARE\Policies\Mozilla\Firefox"
if (Test-Path $key) {
return [bool](Get-ItemProperty $key -ErrorAction SilentlyContinue)
}
return $false
}
static [object[]] GetInstalledAddons([string]$profilePath) {
$json = Join-Path $profilePath "extensions.json"
if (-not (Test-Path $json)) { return @() }
return (Get-Content $json -Raw | ConvertFrom-Json).addons |
Where-Object { $_.type -eq "extension" }
}
}