diff --git a/CHANGELOG.md b/CHANGELOG.md index 6d12687..56ea279 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,14 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] +### Fixed + +- Fixed `UpdateServicesServer` and `UpdateServicesApprovalRule` + - Process multiple product categories with the same name correctly (e.g. "Windows Admin Center") + - Verbose output of Products only displayed one product +- Fixed verbose output of Languages in `UpdateServiceServer` +- Fixed verbose output of WSUS server in `UpdateServicesApprovalRule` + ### Changed - Updated inital offline package sync WSUS.cab. diff --git a/source/DSCResources/MSFT_UpdateServicesApprovalRule/MSFT_UpdateServicesApprovalRule.psm1 b/source/DSCResources/MSFT_UpdateServicesApprovalRule/MSFT_UpdateServicesApprovalRule.psm1 index 361d00e..39376b8 100644 --- a/source/DSCResources/MSFT_UpdateServicesApprovalRule/MSFT_UpdateServicesApprovalRule.psm1 +++ b/source/DSCResources/MSFT_UpdateServicesApprovalRule/MSFT_UpdateServicesApprovalRule.psm1 @@ -52,7 +52,7 @@ function Get-TargetResource if ($null -ne $WsusServer) { - Write-Verbose -Message ('Identified WSUS server information: {0}' -f $WsusServer) + Write-Verbose -Message ('Identified WSUS server information: {0}' -f $WsusServer.Name) $ApprovalRule = $WsusServer.GetInstallApprovalRules() | Where-Object -FilterScript { $_.Name -eq $Name } @@ -215,11 +215,14 @@ function Set-TargetResource $ApprovalRule.Save() $ProductCollection = New-Object -TypeName Microsoft.UpdateServices.Administration.UpdateCategoryCollection + $AllWsusProducts = $WsusServer.GetUpdateCategories() foreach ($Product in $Products) { - if ($WsusProduct = Get-WsusProduct | Where-Object -FilterScript { $_.Product.Title -eq $Product }) + if ($WsusProduct = $AllWsusProducts | Where-Object -FilterScript { $_.Title -eq $Product }) { - $ProductCollection.Add($WsusServer.GetUpdateCategory($WsusProduct.Product.Id)) + $WsusProduct | Foreach-Object { + $ProductCollection.Add($_) + } } } diff --git a/source/DSCResources/MSFT_UpdateServicesServer/MSFT_UpdateServicesServer.psm1 b/source/DSCResources/MSFT_UpdateServicesServer/MSFT_UpdateServicesServer.psm1 index 0edde48..185a203 100644 --- a/source/DSCResources/MSFT_UpdateServicesServer/MSFT_UpdateServicesServer.psm1 +++ b/source/DSCResources/MSFT_UpdateServicesServer/MSFT_UpdateServicesServer.psm1 @@ -121,7 +121,7 @@ function Get-TargetResource } else { - $Languages = $WsusConfiguration.GetEnabledUpdateLanguages() + $Languages = ($WsusConfiguration.GetEnabledUpdateLanguages()) -join ',' } Write-Verbose -Message ($script:localizedData.WsusLanguages -f $Languages) @@ -141,9 +141,9 @@ function Get-TargetResource Write-Verbose -Message ($script:localizedData.WsusClassifications -f $Classifications) Write-Verbose -Message $script:localizedData.GettingWsusProducts - if ($Products = @($WsusSubscription.GetUpdateCategories().Title)) + if ($Products = (@($WsusSubscription.GetUpdateCategories().Title) | Sort-Object -Unique)) { - if ($null -eq (Compare-Object -ReferenceObject ($Products | Sort-Object -Unique) -DifferenceObject ` + if ($null -eq (Compare-Object -ReferenceObject $Products -DifferenceObject ` (($WsusServer.GetUpdateCategories().Title) | Sort-Object -Unique) -SyncWindow 0)) { $Products = @('*')