From 985285963c9b1efacb4cb9286ac728da02531f9c Mon Sep 17 00:00:00 2001
From: rbalsleyMSFT <53497092+rbalsleyMSFT@users.noreply.github.com>
Date: Wed, 28 May 2025 18:01:59 -0700
Subject: [PATCH] Add 'Remove Downloaded Update Files' checkbox to UI and
update related logic for handling updates
---
FFUDevelopment/BuildFFUVM_UI.ps1 | 9 ++++++---
FFUDevelopment/BuildFFUVM_UI.xaml | 1 +
FFUDevelopment/FFUUI.Core/FFUUI.Core.psm1 | 3 ++-
3 files changed, 9 insertions(+), 4 deletions(-)
diff --git a/FFUDevelopment/BuildFFUVM_UI.ps1 b/FFUDevelopment/BuildFFUVM_UI.ps1
index ad9caec..9779daf 100644
--- a/FFUDevelopment/BuildFFUVM_UI.ps1
+++ b/FFUDevelopment/BuildFFUVM_UI.ps1
@@ -650,7 +650,7 @@ function Get-UIConfig {
PromptExternalHardDiskMedia = $window.FindName('chkPromptExternalHardDiskMedia').IsChecked
RemoveApps = $window.FindName('chkRemoveApps').IsChecked
RemoveFFU = $window.FindName('chkRemoveFFU').IsChecked
- RemoveUpdates = $false # Parameter from Sample_default.json, no UI control
+ RemoveUpdates = $window.FindName('chkRemoveUpdates').IsChecked
ShareName = $window.FindName('txtShareName').Text
UpdateADK = $true # Parameter from Sample_default.json, no UI control
UpdateEdge = $window.FindName('chkUpdateEdge').IsChecked
@@ -1602,6 +1602,7 @@ $window.Add_Loaded({
$script:chkCopyDrivers = $window.FindName('chkCopyDrivers')
$script:chkCompressDriversToWIM = $window.FindName('chkCompressDriversToWIM')
$script:chkRemoveApps = $window.FindName('chkRemoveApps')
+ $script:chkRemoveUpdates = $window.FindName('chkRemoveUpdates')
# AppsScriptVariables Controls
$script:chkDefineAppsScriptVariables = $window.FindName('chkDefineAppsScriptVariables')
@@ -1727,7 +1728,8 @@ $window.Add_Loaded({
$window.FindName('chkCleanupDeployISO').IsChecked = $script:generalDefaults.CleanupDeployISO
$window.FindName('chkCleanupDrivers').IsChecked = $script:generalDefaults.CleanupDrivers
$window.FindName('chkRemoveFFU').IsChecked = $script:generalDefaults.RemoveFFU
- $script:chkRemoveApps.IsChecked = $script:generalDefaults.RemoveApps # New
+ $script:chkRemoveApps.IsChecked = $script:generalDefaults.RemoveApps
+ $script:chkRemoveUpdates.IsChecked = $script:generalDefaults.RemoveUpdates
# Hyper-V Settings defaults from General Defaults
$window.FindName('txtDiskSize').Text = $script:generalDefaults.DiskSizeGB
@@ -3025,7 +3027,8 @@ $btnLoadConfig.Add_Click({
Set-UIValue -ControlName 'chkCleanupDeployISO' -PropertyName 'IsChecked' -ConfigObject $configContent -ConfigKey 'CleanupDeployISO' -WindowInstance $window
Set-UIValue -ControlName 'chkCleanupDrivers' -PropertyName 'IsChecked' -ConfigObject $configContent -ConfigKey 'CleanupDrivers' -WindowInstance $window
Set-UIValue -ControlName 'chkRemoveFFU' -PropertyName 'IsChecked' -ConfigObject $configContent -ConfigKey 'RemoveFFU' -WindowInstance $window
- Set-UIValue -ControlName 'chkRemoveApps' -PropertyName 'IsChecked' -ConfigObject $configContent -ConfigKey 'RemoveApps' -WindowInstance $window # New
+ Set-UIValue -ControlName 'chkRemoveApps' -PropertyName 'IsChecked' -ConfigObject $configContent -ConfigKey 'RemoveApps' -WindowInstance $window
+ Set-UIValue -ControlName 'chkRemoveUpdates' -PropertyName 'IsChecked' -ConfigObject $configContent -ConfigKey 'RemoveUpdates' -WindowInstance $window
# Hyper-V Settings
Set-UIValue -ControlName 'cmbVMSwitchName' -PropertyName 'SelectedItem' -ConfigObject $configContent -ConfigKey 'VMSwitchName' -WindowInstance $window
diff --git a/FFUDevelopment/BuildFFUVM_UI.xaml b/FFUDevelopment/BuildFFUVM_UI.xaml
index 0deb1c6..ec0b647 100644
--- a/FFUDevelopment/BuildFFUVM_UI.xaml
+++ b/FFUDevelopment/BuildFFUVM_UI.xaml
@@ -236,6 +236,7 @@
+
diff --git a/FFUDevelopment/FFUUI.Core/FFUUI.Core.psm1 b/FFUDevelopment/FFUUI.Core/FFUUI.Core.psm1
index 5b2f65d..7429089 100644
--- a/FFUDevelopment/FFUUI.Core/FFUUI.Core.psm1
+++ b/FFUDevelopment/FFUUI.Core/FFUUI.Core.psm1
@@ -292,7 +292,8 @@ function Get-GeneralDefaults {
CleanupDeployISO = $false
CleanupDrivers = $false
RemoveFFU = $false
- RemoveApps = $false # New
+ RemoveApps = $false
+ RemoveUpdates = $false
# Hyper-V Settings Defaults
VMHostIPAddress = "" # Requires user input
DiskSizeGB = 30