2023-07-27 16:06:41 -05:00
|
|
|
Function Get-WinUtilToggleStatus {
|
|
|
|
|
<#
|
|
|
|
|
|
2023-10-19 17:12:55 -05:00
|
|
|
.SYNOPSIS
|
|
|
|
|
Pulls the registry keys for the given toggle switch and checks whether the toggle should be checked or unchecked
|
|
|
|
|
|
|
|
|
|
.PARAMETER ToggleSwitch
|
|
|
|
|
The name of the toggle to check
|
|
|
|
|
|
|
|
|
|
.OUTPUTS
|
|
|
|
|
Boolean to set the toggle's status to
|
|
|
|
|
|
2023-07-27 16:06:41 -05:00
|
|
|
#>
|
|
|
|
|
|
|
|
|
|
Param($ToggleSwitch)
|
2023-11-14 15:45:48 -06:00
|
|
|
|
2024-12-06 04:24:36 +01:00
|
|
|
$ToggleSwitchReg = $sync.configs.tweaks.$ToggleSwitch.registry
|
|
|
|
|
|
|
|
|
|
try {
|
|
|
|
|
if (($ToggleSwitchReg.path -imatch "hku") -and !(Get-PSDrive -Name HKU -ErrorAction SilentlyContinue)) {
|
|
|
|
|
$null = (New-PSDrive -PSProvider Registry -Name HKU -Root HKEY_USERS)
|
|
|
|
|
if (Get-PSDrive -Name HKU -ErrorAction SilentlyContinue) {
|
|
|
|
|
Write-Debug "HKU drive created successfully"
|
|
|
|
|
} else {
|
|
|
|
|
Write-Debug "Failed to create HKU drive"
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
} catch {
|
|
|
|
|
Write-Error "An error occurred regarding the HKU Drive: $_"
|
|
|
|
|
return $false
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if ($ToggleSwitchReg) {
|
|
|
|
|
$count = 0
|
|
|
|
|
|
|
|
|
|
foreach ($regentry in $ToggleSwitchReg) {
|
|
|
|
|
try {
|
2025-01-10 20:41:26 +01:00
|
|
|
if (!(Test-Path $regentry.Path)) {
|
|
|
|
|
New-Item -Path $regentry.Path -Force | Out-Null
|
|
|
|
|
}
|
2024-12-06 04:24:36 +01:00
|
|
|
$regstate = (Get-ItemProperty -path $regentry.Path).$($regentry.Name)
|
|
|
|
|
if ($regstate -eq $regentry.Value) {
|
|
|
|
|
$count += 1
|
|
|
|
|
Write-Debug "$($regentry.Name) is true (state: $regstate, value: $($regentry.Value), original: $($regentry.OriginalValue))"
|
|
|
|
|
} else {
|
|
|
|
|
Write-Debug "$($regentry.Name) is false (state: $regstate, value: $($regentry.Value), original: $($regentry.OriginalValue))"
|
|
|
|
|
}
|
2026-02-10 13:37:37 -06:00
|
|
|
if ($null -eq $regstate) {
|
2025-01-10 20:41:26 +01:00
|
|
|
switch ($regentry.DefaultState) {
|
|
|
|
|
"true" {
|
|
|
|
|
$regstate = $regentry.Value
|
|
|
|
|
$count += 1
|
|
|
|
|
}
|
|
|
|
|
"false" {
|
|
|
|
|
$regstate = $regentry.OriginalValue
|
|
|
|
|
}
|
|
|
|
|
default {
|
|
|
|
|
Write-Error "Entry for $($regentry.Name) does not exist and no DefaultState is defined."
|
|
|
|
|
$regstate = $regentry.OriginalValue
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
2024-12-06 04:24:36 +01:00
|
|
|
} catch {
|
2025-01-10 20:41:26 +01:00
|
|
|
Write-Error "An unexpected error occurred: $_"
|
2024-12-06 04:24:36 +01:00
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if ($count -eq $ToggleSwitchReg.Count) {
|
|
|
|
|
Write-Debug "$($ToggleSwitchReg.Name) is true (count: $count)"
|
|
|
|
|
return $true
|
|
|
|
|
} else {
|
|
|
|
|
Write-Debug "$($ToggleSwitchReg.Name) is false (count: $count)"
|
|
|
|
|
return $false
|
|
|
|
|
}
|
|
|
|
|
} else {
|
|
|
|
|
return $false
|
2024-07-31 03:50:50 +02:00
|
|
|
}
|
2024-04-20 16:38:43 -05:00
|
|
|
}
|