From b9d61fae055ace6489c746ca1b860d87112ef71e Mon Sep 17 00:00:00 2001 From: Tim Smith Date: Sun, 6 Jun 2021 10:10:38 -0700 Subject: Try handing the update action Signed-off-by: Tim Smith --- lib/chef/resource/windows_printer_port.rb | 37 ++++++++++++++++++++++--------- 1 file changed, 26 insertions(+), 11 deletions(-) diff --git a/lib/chef/resource/windows_printer_port.rb b/lib/chef/resource/windows_printer_port.rb index 5db1924629..b109528b5d 100644 --- a/lib/chef/resource/windows_printer_port.rb +++ b/lib/chef/resource/windows_printer_port.rb @@ -106,17 +106,32 @@ class Chef action :create, description: "Create or update the printer port." do converge_if_changed do - # create the printer port using PowerShell - powershell_exec! <<-EOH - Set-WmiInstance -class Win32_TCPIPPrinterPort ` - -EnableAllPrivileges ` - -Argument @{ HostAddress = "#{new_resource.ipv4_address}"; - Name = "#{new_resource.port_name}"; - PortNumber = "#{new_resource.port_number}"; - Protocol = "#{new_resource.port_protocol}"; - SNMPEnabled = "$#{new_resource.snmp_enabled}"; - } - EOH + if current_resource + # update the printer port using PowerShell + powershell_exec! <<-EOH + Get-WmiObject Win32_TCPIPPrinterPort -EnableAllPrivileges -filter "Name='#{new_resource.port_name}'" | + ForEach-Object{ + $_.HostAddress='#{new_resource.ipv4_address}' + $_.PortNumber='#{new_resource.port_number}' + $_.Protocol='#{new_resource.port_protocol}' + $_.SNMPEnabled='$#{new_resource.snmp_enabled}' + $_.Put() + } + EOH + else + # create the printer port using PowerShell + powershell_exec! <<-EOH + Set-WmiInstance -class Win32_TCPIPPrinterPort ` + -EnableAllPrivileges ` + -Argument @{ HostAddress = "#{new_resource.ipv4_address}"; + Name = "#{new_resource.port_name}"; + PortNumber = "#{new_resource.port_number}"; + Protocol = "#{new_resource.port_protocol}"; + SNMPEnabled = "$#{new_resource.snmp_enabled}"; + } + EOH + end + end end -- cgit v1.2.1