diff --git a/Sources/WAU/Winget-AutoUpdate/Winget-Upgrade.ps1 b/Sources/WAU/Winget-AutoUpdate/Winget-Upgrade.ps1 index 545049a..879516f 100644 --- a/Sources/WAU/Winget-AutoUpdate/Winget-Upgrade.ps1 +++ b/Sources/WAU/Winget-AutoUpdate/Winget-Upgrade.ps1 @@ -245,7 +245,7 @@ if (Test-Network) { New-Item "$WorkingDir\logs\error.txt" -Value "Whitelist doesn't exist in GPO" -Force Exit 1 } - $toUpdate = $toUpdate.Data + foreach ($app in $toUpdate) { Write-ToLog "Include app ${app}" } } else { $BlackList = $toSkip.GetUpperBound(0) @@ -254,7 +254,7 @@ if (Test-Network) { New-Item "$WorkingDir\logs\error.txt" -Value "Blacklist doesn't exist in GPO" -Force Exit 1 } - $toSkip = $toSkip.Data + foreach ($app in $toSkip) { Write-ToLog "Exclude app ${app}" } } } diff --git a/Sources/WAU/Winget-AutoUpdate/functions/Get-ExcludedApps.ps1 b/Sources/WAU/Winget-AutoUpdate/functions/Get-ExcludedApps.ps1 index 0212e5c..ce5811e 100644 --- a/Sources/WAU/Winget-AutoUpdate/functions/Get-ExcludedApps.ps1 +++ b/Sources/WAU/Winget-AutoUpdate/functions/Get-ExcludedApps.ps1 @@ -2,30 +2,49 @@ function Get-ExcludedApps { + $AppIDs = @() + + #region blacklist in registry if ($GPOList) { if (Test-Path "HKLM:\SOFTWARE\Policies\Romanitho\Winget-AutoUpdate\BlackList") { - - $Key = 'HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Romanitho\Winget-AutoUpdate\BlackList\' - $ValueNames = (Get-Item -Path "HKLM:\SOFTWARE\Policies\Romanitho\Winget-AutoUpdate\BlackList").Property foreach ($ValueName in $ValueNames) { - $AppIDs = [Microsoft.Win32.Registry]::GetValue($Key, $ValueName, $false) - [PSCustomObject]@{ - Value = $ValueName - Data = $AppIDs.Trim() - } + $AppIDs += (Get-ItemPropertyValue -Path "HKLM:\SOFTWARE\Policies\Romanitho\Winget-AutoUpdate\BlackList" -Name $ValueName).Trim() } } - return $AppIDs + + } + #endregion blacklist in registry + #region blacklist pulled from URI + elseif ($URIList) { + + $RegPath = "$WAU_GPORoot"; + $RegValueName = 'WAU_URIList'; + + if (Test-Path -Path $RegPath) { + $RegKey = Get-Item -Path $RegPath; + $WAUURI = $RegKey.GetValue($RegValueName); + if ($null -ne $WAUURI) { + $resp = Invoke-WebRequest -Uri $WAUURI -UseDefaultCredentials; + if ($resp.BaseResponse.StatusCode -eq [System.Net.HttpStatusCode]::OK) { + $resp.Content.Split([System.Environment]::NewLine, [System.StringSplitOptions]::RemoveEmptyEntries) | + ForEach-Object { + $AppIds += $_ + } + } + } + } } + #endregion blacklist pulled from URI elseif (Test-Path "$WorkingDir\excluded_apps.txt") { return (Get-Content -Path "$WorkingDir\excluded_apps.txt").Trim() | Where-Object { $_.length -gt 0 } } + return $AppIDs | Where-Object { $_.length -gt 0 } } diff --git a/Sources/WAU/Winget-AutoUpdate/functions/Get-IncludedApps.ps1 b/Sources/WAU/Winget-AutoUpdate/functions/Get-IncludedApps.ps1 index ae2a8ad..950cede 100644 --- a/Sources/WAU/Winget-AutoUpdate/functions/Get-IncludedApps.ps1 +++ b/Sources/WAU/Winget-AutoUpdate/functions/Get-IncludedApps.ps1 @@ -1,31 +1,50 @@ #Function to get the allow List apps function Get-IncludedApps { + $AppIDs = @() + #region whitelist in registry if ($GPOList) { if (Test-Path "HKLM:\SOFTWARE\Policies\Romanitho\Winget-AutoUpdate\WhiteList") { - - $Key = 'HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Romanitho\Winget-AutoUpdate\WhiteList\' - $ValueNames = (Get-Item -Path "HKLM:\SOFTWARE\Policies\Romanitho\Winget-AutoUpdate\WhiteList").Property foreach ($ValueName in $ValueNames) { - $AppIDs = [Microsoft.Win32.Registry]::GetValue($Key, $ValueName, $false) - [PSCustomObject]@{ - Value = $ValueName - Data = $AppIDs.Trim() - } + $AppIDs += (Get-ItemPropertyValue -Path "HKLM:\SOFTWARE\Policies\Romanitho\Winget-AutoUpdate\WhiteList" -Name $ValueName).Trim() } } - return $AppIDs + + } + #endregion whitelist in registry + #region whitelist pulled from URI + elseif ($URIList) { + + $RegPath = "$WAU_GPORoot"; + $RegValueName = 'WAU_URIList'; + + if (Test-Path -Path $RegPath) { + $RegKey = Get-Item -Path $RegPath; + $WAUURI = $RegKey.GetValue($RegValueName); + if ($null -ne $WAUURI) { + $resp = Invoke-WebRequest -Uri $WAUURI -UseDefaultCredentials; + if ($resp.BaseResponse.StatusCode -eq [System.Net.HttpStatusCode]::OK) { + $resp.Content.Split([System.Environment]::NewLine, [System.StringSplitOptions]::RemoveEmptyEntries) | + ForEach-Object { + $AppIds += $_ + } + } + } + } } + #endregion whitelist pulled from URI elseif (Test-Path "$WorkingDir\included_apps.txt") { return (Get-Content -Path "$WorkingDir\included_apps.txt").Trim() | Where-Object { $_.length -gt 0 } } + return $AppIDs | Where-Object { $_.length -gt 0 } + }