From dc8aedb274f86399223c5fc9833a206df2c6be40 Mon Sep 17 00:00:00 2001 From: Serge Nikalaichyk Date: Thu, 21 Sep 2017 15:23:02 -0500 Subject: [PATCH] Fix OS version check in win_power_plan (#30538) * Fixed win_power_plan OS version check * Original error message case --- lib/ansible/modules/windows/win_power_plan.ps1 | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/lib/ansible/modules/windows/win_power_plan.ps1 b/lib/ansible/modules/windows/win_power_plan.ps1 index 5cd8daf8d09..ef4990feba2 100644 --- a/lib/ansible/modules/windows/win_power_plan.ps1 +++ b/lib/ansible/modules/windows/win_power_plan.ps1 @@ -13,17 +13,19 @@ $name = Get-AnsibleParam -obj $params -name "name" -type "str" -failifempty $tru Function Get-PowerPlans { Param ($PlanName) - If (!$PlanName) { - Get-CimInstance -Name root\cimv2\power -Class win32_PowerPlan | Select ElementName,IsActive | - Foreach -begin { $ht=@{} } -process { $ht."$($_.ElementName)" = $_.IsActive } -end {$ht} + If (-not $PlanName) { + Get-CimInstance -Name root\cimv2\power -Class Win32_PowerPlan | + Select-Object -Property ElementName, IsActive | + ForEach-Object -Begin { $ht = @{} } -Process { $ht."$($_.ElementName)" = $_.IsActive } -End { $ht } } Else { - Get-CimInstance -Name root\cimv2\power -Class win32_PowerPlan -Filter "ElementName = '$PlanName'" + Get-CimInstance -Name root\cimv2\power -Class Win32_PowerPlan -Filter "ElementName = '$PlanName'" } } #fail if older than 2008r2...need to do it here before Get-PowerPlans function runs further down -If ( (gcim Win32_OperatingSystem).version -lt 6.1) + +If ([System.Environment]::OSVersion.Version -lt '6.1') { $result = @{ changed = $false @@ -60,17 +62,17 @@ If ( $all_available_plans.item($name) ) Else { Try { - $Null = Invoke-CimMethod -InputObject (Get-PowerPlans $name) -MethodName Activate -ea Stop -WhatIf:$check_mode + $Null = Invoke-CimMethod -InputObject (Get-PowerPlans $name) -MethodName Activate -ErrorAction Stop -WhatIf:$check_mode } Catch { - $result.power_plan_enabled = (Get-PowerPlans $name).isactive + $result.power_plan_enabled = (Get-PowerPlans $name).IsActive $result.all_available_plans = Get-PowerPlans Fail-Json $result "Failed to set the new plan: $($_.Exception.Message)" } #set success parameters and exit $result.changed = $true - $result.power_plan_enabled = (Get-PowerPlans $name).isactive + $result.power_plan_enabled = (Get-PowerPlans $name).IsActive $result.all_available_plans = Get-PowerPlans Exit-Json $result }