mirror of
https://github.com/Raphire/Win11Debloat.git
synced 2026-06-10 18:46:28 +00:00
* Remove RemoveCommApps and RemoveW11Outlook presets. These are largely redundant. Use -RemoveApps parameter instead * Add additional options to change the `All Apps` view in the start menu (Hide, Grid, Category, List) * Add clean start menu backup validation to start menu restore function * Resolve nested quoting bug in Run.bat when path has spaces, see #583 * Fix desync issue when toggling "Only Show Installed" checkbox too fast * Fix: add missing keys in Sysprep/Undo regfiles for Disabling Recall and Windows Suggested content * Fix 'Disable Animations' Sysprep settings not being set for new users * Update README.md * Update CONTRIBUTING.md
49 lines
1.3 KiB
PowerShell
49 lines
1.3 KiB
PowerShell
# Enables a Windows optional feature and pipes its output to the console
|
|
function EnableWindowsFeature {
|
|
param (
|
|
[string]$FeatureName
|
|
)
|
|
|
|
$result = Invoke-NonBlocking -ScriptBlock {
|
|
param($name)
|
|
Enable-WindowsOptionalFeature -Online -FeatureName $name -All -NoRestart
|
|
} -ArgumentList $FeatureName
|
|
|
|
$dismResult = @($result) | Where-Object { $_ -is [Microsoft.Dism.Commands.ImageObject] }
|
|
if ($dismResult) {
|
|
Write-Host ($dismResult | Out-String).Trim()
|
|
}
|
|
}
|
|
|
|
# Disables a Windows optional feature and pipes its output to the console
|
|
function DisableWindowsFeature {
|
|
param (
|
|
[string]$FeatureName
|
|
)
|
|
|
|
$result = Invoke-NonBlocking -ScriptBlock {
|
|
param($name)
|
|
Disable-WindowsOptionalFeature -Online -FeatureName $name -NoRestart
|
|
} -ArgumentList $FeatureName
|
|
|
|
$dismResult = @($result) | Where-Object { $_ -is [Microsoft.Dism.Commands.ImageObject] }
|
|
if ($dismResult) {
|
|
Write-Host ($dismResult | Out-String).Trim()
|
|
}
|
|
}
|
|
|
|
function Test-WindowsOptionalFeatureEnabled {
|
|
param (
|
|
[Parameter(Mandatory)]
|
|
[string]$FeatureName
|
|
)
|
|
|
|
try {
|
|
$feature = Get-WindowsOptionalFeature -Online -FeatureName $FeatureName -ErrorAction Stop
|
|
}
|
|
catch {
|
|
return $false
|
|
}
|
|
|
|
return ($feature.State -eq 'Enabled')
|
|
} |