mirror of
https://github.com/Raphire/Win11Debloat.git
synced 2026-06-15 04:47:04 +00:00
Compare commits
5 Commits
2026.06.11
...
2026.06.14
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
2b97021341 | ||
|
|
1235306f80 | ||
|
|
1a69d19f30 | ||
|
|
5628f6e0b7 | ||
|
|
6f349b4992 |
2
.github/ISSUE_TEMPLATE/bug_report.yml
vendored
2
.github/ISSUE_TEMPLATE/bug_report.yml
vendored
@@ -1,6 +1,6 @@
|
||||
name: "🐞 Bug report"
|
||||
description: "Report an issue you encountered"
|
||||
labels: ["bug"]
|
||||
labels: ["bug","unconfirmed"]
|
||||
|
||||
body:
|
||||
- type: markdown
|
||||
|
||||
@@ -515,9 +515,11 @@ function Load-AppsIntoMainUI {
|
||||
$listOfApps = ""
|
||||
|
||||
if ($OnlyInstalledAppsBox.IsChecked -and ($script:WingetInstalled -eq $true)) {
|
||||
$listOfApps = GetInstalledAppsViaWinget -TimeOut 10 -NonBlocking
|
||||
Write-Host "Retrieving installed apps via winget..."
|
||||
$listOfApps = GetInstalledAppsViaWinget -TimeOut 20 -NonBlocking
|
||||
|
||||
if ($null -eq $listOfApps) {
|
||||
Write-Warning "WinGet returned no data (command timed out or failed)"
|
||||
Show-MessageBox -Message 'Unable to load list of installed apps via WinGet.' -Title 'Error' -Button 'OK' -Icon 'Error' | Out-Null
|
||||
$OnlyInstalledAppsBox.IsChecked = $false
|
||||
}
|
||||
|
||||
@@ -1,3 +1,8 @@
|
||||
# Operation type constants, used to indicate the type of operation for each registry entry
|
||||
$script:OpType_RemoveKey = 'DeleteKey'
|
||||
$script:OpType_RemoveValue = 'DeleteValue'
|
||||
$script:OpType_Store = 'SetValue'
|
||||
|
||||
function Get-RegFileOperations {
|
||||
param(
|
||||
[Parameter(Mandatory)]
|
||||
@@ -26,6 +31,7 @@ function Get-RegFileOperations {
|
||||
$operations = @()
|
||||
$currentKeyPath = $null
|
||||
$isDeletedKey = $false
|
||||
$opRef = $script:OpType_RemoveKey
|
||||
|
||||
foreach ($rawLine in $lines) {
|
||||
$line = $rawLine.Trim()
|
||||
@@ -43,7 +49,7 @@ function Get-RegFileOperations {
|
||||
|
||||
if ($isDeletedKey) {
|
||||
$operations += [PSCustomObject]@{
|
||||
OperationType = 'DeleteKey'
|
||||
OperationType = $opRef
|
||||
KeyPath = $currentKeyPath
|
||||
}
|
||||
}
|
||||
@@ -87,10 +93,12 @@ function Convert-RegValueData {
|
||||
[Parameter(Mandatory)]
|
||||
[string]$valueData
|
||||
)
|
||||
$opStore = $script:OpType_Store
|
||||
$opRemove = $script:OpType_RemoveValue
|
||||
|
||||
if ($valueData -eq '-') {
|
||||
return [PSCustomObject]@{
|
||||
OperationType = 'DeleteValue'
|
||||
OperationType = $opRemove
|
||||
ValueType = $null
|
||||
ValueData = $null
|
||||
}
|
||||
@@ -98,7 +106,7 @@ function Convert-RegValueData {
|
||||
|
||||
if ($valueData -match '^dword:(?<value>[0-9a-fA-F]{1,8})$') {
|
||||
return [PSCustomObject]@{
|
||||
OperationType = 'SetValue'
|
||||
OperationType = $opStore
|
||||
ValueType = 'DWord'
|
||||
ValueData = [uint32]::Parse($matches.value, [System.Globalization.NumberStyles]::HexNumber)
|
||||
}
|
||||
@@ -106,7 +114,7 @@ function Convert-RegValueData {
|
||||
|
||||
if ($valueData -match '^qword:(?<value>[0-9a-fA-F]{1,16})$') {
|
||||
return [PSCustomObject]@{
|
||||
OperationType = 'SetValue'
|
||||
OperationType = $opStore
|
||||
ValueType = 'QWord'
|
||||
ValueData = [uint64]::Parse($matches.value, [System.Globalization.NumberStyles]::HexNumber)
|
||||
}
|
||||
@@ -122,7 +130,7 @@ function Convert-RegValueData {
|
||||
}
|
||||
|
||||
return [PSCustomObject]@{
|
||||
OperationType = 'SetValue'
|
||||
OperationType = $opStore
|
||||
ValueType = $valueType
|
||||
ValueData = $value
|
||||
}
|
||||
@@ -133,7 +141,7 @@ function Convert-RegValueData {
|
||||
# Unescape registry string escape sequences
|
||||
$stringValue = $stringValue -replace '\\"', '"' -replace '\\\\', '\'
|
||||
return [PSCustomObject]@{
|
||||
OperationType = 'SetValue'
|
||||
OperationType = $opStore
|
||||
ValueType = 'String'
|
||||
ValueData = $stringValue
|
||||
}
|
||||
@@ -149,13 +157,9 @@ function Convert-HexStringToByteArray {
|
||||
)
|
||||
|
||||
$parts = $hexValue.Split(',') | ForEach-Object { $_.Trim() } | Where-Object { $_ }
|
||||
$bytes = New-Object byte[] $parts.Count
|
||||
|
||||
for ($i = 0; $i -lt $parts.Count; $i++) {
|
||||
$bytes[$i] = [byte]::Parse($parts[$i], [System.Globalization.NumberStyles]::HexNumber)
|
||||
}
|
||||
|
||||
return $bytes
|
||||
return [System.Linq.Enumerable]::Select($parts, [Func[object, byte]] {
|
||||
param($h) [System.Convert]::ToByte($h, 16)
|
||||
}) -as [byte[]]
|
||||
}
|
||||
|
||||
function Convert-RegistryByteArrayToString {
|
||||
|
||||
@@ -139,7 +139,7 @@ if (-not $isAdmin) {
|
||||
}
|
||||
|
||||
# Define script-level variables & paths
|
||||
$script:Version = "2026.06.11"
|
||||
$script:Version = "2026.06.14"
|
||||
$configPath = Join-Path $PSScriptRoot 'Config'
|
||||
$logsPath = Join-Path $PSScriptRoot 'Logs'
|
||||
$schemasPath = Join-Path $PSScriptRoot 'Schemas'
|
||||
|
||||
Reference in New Issue
Block a user