How do I fix - A parameter cannot be found that matches parameter name 'RegSetting'

2.5k views Asked by At

I am trying to detect the specific regkeys in the array ($WUSettingsArray) in the path specified with $WURegKey, then display the total $RegValue of both the key and path together. I keep getting the same error "A parameter cannot be found that matches parameter name 'RegSetting.' I do not know how to fix this. Please help - Thanks.

$WUSettingsArray = @()
$WUSettingsArray += "AutoRestartDeadlinePeriodInDays"
$WUSettingsArray += "AutoRestartNotificationSchedule"
$WUSettingsArray += "AutoRestartRequiredNotificationDismissal"
$WUSettingsArray += "BranchReadinessLevel"
$WUSettingsArray += "DeferFeatureUpdates"
$WUSettingsArray += "DeferFeatureUpdatesPeriodInDays"
$WUSettingsArray += "DeferQualityUpdates"
$WUSettingsArray += "DeferQualityUpdatesPeriodInDays"
$WUSettingsArray += "DisableDualScan"
$WUSettingsArray += "DoNotConnectToWindowsUpdateInternetLocations"
$WUSettingsArray += "ElevateNonAdmins"
$WUSettingsArray += "EngagedRestartDeadline"
$WUSettingsArray += "EngagedRestartSnoozeSchedule"
$WUSettingsArray += "EngagedRestartTransitionSchedule"
$WUSettingsArray += "PauseFeatureUpdatesStartTime"
$WUSettingsArray += "PauseQualityUpdatesStartTime"
$WUSettingsArray += "ScheduleImminentRestartWarning"
$WUSettingsArray += "ScheduleRestartWarning"
$WUSettingsArray += "SetAutoRestartDeadline"
$WUSettingsArray += "SetAutoRestartNotificationConfig"
$WUSettingsArray += "SetAutoRestartNotificationDisable"
$WUSettingsArray += "SetAutoRestartRequiredNotificationDismissal"
$WUSettingsArray += "SetEDURestart"
$WUSettingsArray += "SetEngagedRestartTransitionSchedule"
$WUSettingsArray += "SetRestartWarningSchd"
$WUSettingsArray += "WUServer"
$WUSettingsArray += "WUStatusServer"

$WURegKey = "HKLM:Software\Policies\Microsoft\Windows\WindowsUpdate"
$RegValue = Get-ItemProperty -Path $WURegKey -RegSetting $WUSetting

#Get Registry Values for Software\Policies\Microsoft\Windows\WindowsUpdate
ForEach ($WUSetting in $WUSettingsArray) {
    Write-Output $RegValue 
}````


Error message:
````Get-ItemProperty : A parameter cannot be found that matches parameter name 'RegSetting'.
At line:32 char:46
+ $RegValue = Get-ItemProperty -Path $WURegKey -RegSetting $WUSetting
+                                              ~~~~~~~~~~~
    + CategoryInfo          : InvalidArgument: (:) [Get-ItemProperty], ParameterBindingException
    + FullyQualifiedErrorId : NamedParameterNotFound,Microsoft.PowerShell.Commands.GetItemPropertyCommand
1

There are 1 answers

3
Guy S On

You may want to try Get-ItemPropertyValue instead.

$RegValue = Get-ItemPropertyValue -Path $WURegKey -Name $WUSetting

But you'll need to make some modifications to your code - the $RegValue value needs to be inside the loop. Perhaps one step further and advise the variable being output. I'd personally add some error checking in there, but I'll let you play with a try/catch for getting the values.

$WUSettingsArray = @()
$WUSettingsArray += "AutoRestartDeadlinePeriodInDays"
$WUSettingsArray += "AutoRestartNotificationSchedule"
$WUSettingsArray += "AutoRestartRequiredNotificationDismissal"
$WUSettingsArray += "BranchReadinessLevel"
$WUSettingsArray += "DeferFeatureUpdates"
$WUSettingsArray += "DeferFeatureUpdatesPeriodInDays"
$WUSettingsArray += "DeferQualityUpdates"
$WUSettingsArray += "DeferQualityUpdatesPeriodInDays"
$WUSettingsArray += "DisableDualScan"
$WUSettingsArray += "DoNotConnectToWindowsUpdateInternetLocations"
$WUSettingsArray += "ElevateNonAdmins"
$WUSettingsArray += "EngagedRestartDeadline"
$WUSettingsArray += "EngagedRestartSnoozeSchedule"
$WUSettingsArray += "EngagedRestartTransitionSchedule"
$WUSettingsArray += "PauseFeatureUpdatesStartTime"
$WUSettingsArray += "PauseQualityUpdatesStartTime"
$WUSettingsArray += "ScheduleImminentRestartWarning"
$WUSettingsArray += "ScheduleRestartWarning"
$WUSettingsArray += "SetAutoRestartDeadline"
$WUSettingsArray += "SetAutoRestartNotificationConfig"
$WUSettingsArray += "SetAutoRestartNotificationDisable"
$WUSettingsArray += "SetAutoRestartRequiredNotificationDismissal"
$WUSettingsArray += "SetEDURestart"
$WUSettingsArray += "SetEngagedRestartTransitionSchedule"
$WUSettingsArray += "SetRestartWarningSchd"
$WUSettingsArray += "WUServer"
$WUSettingsArray += "WUStatusServer"

$WURegKey = "HKLM:\Software\Policies\Microsoft\Windows\WindowsUpdate"

#Get Registry Values for Software\Policies\Microsoft\Windows\WindowsUpdate
ForEach ($WUSetting in $WUSettingsArray) {
    $RegValue = Get-ItemPropertyValue -Path $WURegKey -Name $WUSetting
    Write-Output "$WUSetting - $RegValue" 
}