Files
winutil/functions/private/Invoke-WinUtilFeatureInstall.ps1
2026-07-01 19:48:43 -05:00

23 lines
1.2 KiB
PowerShell

function Invoke-WinUtilFeatureInstall ($CheckBox) {
Write-WinUtilLog -Component "Feature" -Message "Applying feature action: $CheckBox"
if ($sync.configs.feature.$CheckBox.feature) {
foreach ($feature in $sync.configs.feature.$CheckBox.feature) {
Write-Host "Installing $feature"
Write-WinUtilLog -Component "Feature" -Message "Enabling Windows optional feature: $feature"
Enable-WindowsOptionalFeature -Online -FeatureName $feature -All -NoRestart -ErrorAction Stop
Write-WinUtilLog -Component "Feature" -Message "Enabled Windows optional feature: $feature"
}
}
if ($sync.configs.feature.$CheckBox.InvokeScript) {
foreach ($script in $sync.configs.feature.$CheckBox.InvokeScript) {
Write-Host "Running Script for $CheckBox"
Write-WinUtilLog -Component "Feature" -Message "Running feature script for: $CheckBox"
Invoke-Command -ScriptBlock ([scriptblock]::Create($script)) -ErrorAction Stop
Write-WinUtilLog -Component "Feature" -Message "Completed feature script for: $CheckBox"
}
}
Write-WinUtilLog -Component "Feature" -Message "Feature action completed: $CheckBox"
}