mirror of
https://github.com/Raphire/Win11Debloat.git
synced 2026-08-23 08:02:07 +00:00
Add comprehensive test suite, fix minor issues, rename function and file names to match approved verbs (#708)
This commit is contained in:
+2
-2
@@ -17,7 +17,7 @@
|
||||
PSCustomObject[] with Name and Id properties. Returns $null on
|
||||
failure, or an empty array when winget succeeds but lists no apps.
|
||||
#>
|
||||
function GetInstalledAppsViaWinget {
|
||||
function Get-WingetInstalledApps {
|
||||
param (
|
||||
[int]$TimeOut = 10,
|
||||
[switch]$NonBlocking
|
||||
@@ -107,4 +107,4 @@ function GetInstalledAppsViaWinget {
|
||||
else {
|
||||
return & $fetchBlock $TimeOut
|
||||
}
|
||||
}
|
||||
}
|
||||
+6
-4
@@ -1,6 +1,8 @@
|
||||
# Forcefully removes Microsoft Edge using its uninstaller
|
||||
# Credit: Based on work from loadstring1 & ave9858
|
||||
function ForceRemoveEdge {
|
||||
<#
|
||||
.SYNOPSIS
|
||||
Forcefully uninstalls Microsoft Edge and removes its leftover shortcuts and autostart entries.
|
||||
#>
|
||||
function Invoke-ForceRemoveEdge {
|
||||
Write-Host "> Forcefully uninstalling Microsoft Edge..."
|
||||
|
||||
$regView = [Microsoft.Win32.RegistryView]::Registry32
|
||||
@@ -54,4 +56,4 @@ function ForceRemoveEdge {
|
||||
else {
|
||||
Write-Host "Unable to forcefully uninstall Microsoft Edge, uninstaller could not be found" -ForegroundColor Red
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -14,12 +14,12 @@
|
||||
An array of app package identifiers to remove (e.g. 'Microsoft.BingNews').
|
||||
|
||||
.EXAMPLE
|
||||
RemoveApps @('Microsoft.BingNews', 'Microsoft.BingWeather')
|
||||
Remove-SelectedApps @('Microsoft.BingNews', 'Microsoft.BingWeather')
|
||||
|
||||
.EXAMPLE
|
||||
RemoveApps -appsList (GenerateAppsList)
|
||||
Remove-SelectedApps -appsList (Generate-AppsList)
|
||||
#>
|
||||
function RemoveApps {
|
||||
function Remove-SelectedApps {
|
||||
param (
|
||||
$appslist
|
||||
)
|
||||
@@ -33,7 +33,7 @@ function RemoveApps {
|
||||
return
|
||||
}
|
||||
|
||||
$targetUser = GetTargetUserForAppRemoval
|
||||
$targetUser = Get-TargetUserForAppRemoval
|
||||
$appCount = @($appsList).Count
|
||||
$appIndex = 0
|
||||
|
||||
@@ -67,7 +67,7 @@ function RemoveApps {
|
||||
|
||||
# Check whether any winget-removed apps are still present, and report errors for each one.
|
||||
if ($wingetRemovedApps.Count -gt 0) {
|
||||
$postRemovalList = if ($script:WingetInstalled) { GetInstalledAppsViaWinget -TimeOut 10 -NonBlocking } else { $null }
|
||||
$postRemovalList = if ($script:WingetInstalled) { Get-WingetInstalledApps -TimeOut 10 -NonBlocking } else { $null }
|
||||
$edgeForceRemoveRequested = $false
|
||||
|
||||
foreach ($app in $wingetRemovedApps) {
|
||||
@@ -116,7 +116,7 @@ function Remove-WinGetApp {
|
||||
} -ArgumentList $app
|
||||
|
||||
if ($script:Params.ContainsKey("User")) {
|
||||
Write-Host "Adding scheduled task to uninstall $app for user $(GetUserName)..."
|
||||
Write-Host "Adding scheduled task to uninstall $app for user $(Get-UserName)..."
|
||||
Set-RunOnceWingetTask -appId $app
|
||||
}
|
||||
elseif ($script:Params.ContainsKey("Sysprep")) {
|
||||
@@ -185,7 +185,7 @@ function Remove-AppxApp {
|
||||
The package identifier to check (e.g. 'Microsoft.BingNews').
|
||||
|
||||
.PARAMETER InstalledList
|
||||
Optional pre-fetched array of winget objects from GetInstalledAppsViaWinget.
|
||||
Optional pre-fetched array of winget objects from Get-WingetInstalledApps.
|
||||
When provided, used directly; otherwise a live winget call is made.
|
||||
#>
|
||||
function Test-AppStillInstalled {
|
||||
@@ -205,7 +205,7 @@ function Test-AppStillInstalled {
|
||||
}
|
||||
|
||||
if ($script:WingetInstalled) {
|
||||
$liveList = GetInstalledAppsViaWinget -TimeOut 10 -NonBlocking
|
||||
$liveList = Get-WingetInstalledApps -TimeOut 10 -NonBlocking
|
||||
if (Test-AppInWingetList -appId $appId -InstalledList $liveList) {
|
||||
return $true
|
||||
}
|
||||
@@ -241,11 +241,12 @@ function Get-AppRemovalMethod {
|
||||
foreach ($appData in $appsJson.Apps) {
|
||||
$rawMethod = $appData.RemovalMethod
|
||||
$method = if ($rawMethod -and $rawMethod -eq 'WinGet') { 'WinGet' } else { 'Appx' }
|
||||
if ($appData.AppId -is [array]) {
|
||||
foreach ($id in $appData.AppId) { $script:AppRemovalMethodCache[$id.Trim()] = $method }
|
||||
}
|
||||
else {
|
||||
$script:AppRemovalMethodCache[$appData.AppId.Trim()] = $method
|
||||
foreach ($id in @($appData.AppId)) {
|
||||
if ($id -isnot [string]) { continue }
|
||||
$normalizedId = $id.Trim()
|
||||
if (-not [string]::IsNullOrWhiteSpace($normalizedId)) {
|
||||
$script:AppRemovalMethodCache[$normalizedId] = $method
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -276,12 +277,12 @@ function Request-EdgeForceRemove {
|
||||
$result = Show-MessageBox -Message 'Unable to uninstall Microsoft Edge via WinGet. Would you like to forcefully uninstall it? NOT RECOMMENDED!' -Title 'Force Uninstall Microsoft Edge?' -Button 'YesNo' -Icon 'Warning'
|
||||
if ($result -eq 'Yes') {
|
||||
Write-Host ""
|
||||
ForceRemoveEdge
|
||||
Invoke-ForceRemoveEdge
|
||||
}
|
||||
}
|
||||
elseif ($(Read-Host -Prompt "Would you like to forcefully uninstall Microsoft Edge? NOT RECOMMENDED! (y/n)") -eq 'y') {
|
||||
Write-Host ""
|
||||
ForceRemoveEdge
|
||||
Invoke-ForceRemoveEdge
|
||||
}
|
||||
}
|
||||
|
||||
@@ -12,7 +12,7 @@
|
||||
The identifier to search for (e.g. 'Microsoft.Copilot').
|
||||
|
||||
.PARAMETER InstalledList
|
||||
An array of PSCustomObject from GetInstalledAppsViaWinget.
|
||||
An array of PSCustomObject from Get-WingetInstalledApps.
|
||||
#>
|
||||
function Test-AppInWingetList {
|
||||
param(
|
||||
|
||||
Reference in New Issue
Block a user