diff --git a/library/windows/win_msi b/library/windows/win_msi index 894d7e2fc7a..9eb6f1bafa5 100644 --- a/library/windows/win_msi +++ b/library/windows/win_msi @@ -27,7 +27,8 @@ module: win_msi version_added: "1.7" short_description: Installs and uninstalls Windows MSI files description: - - Installs or uninstalls a Windows MSI file that is already located on the target server + - Installs or uninstalls a Windows MSI file that is already located on the + target server options: path: description: @@ -40,6 +41,10 @@ options: - present - absent default: present + creates: + description: + - Path to a file created by installing the MSI to prevent from + attempting to reinstall the package on every run author: Matt Martz ''' diff --git a/library/windows/win_msi.ps1 b/library/windows/win_msi.ps1 index d28ae85bd7f..1c2bc8a3019 100644 --- a/library/windows/win_msi.ps1 +++ b/library/windows/win_msi.ps1 @@ -35,7 +35,7 @@ If ($params.extra_args.GetType) $extra_args = $params.extra_args; } -If ($params.creates.GetType) +If ($params.creates.GetType -and $params.state.GetType -and $params.state -ne "absent") { If (Test-File $creates) { @@ -44,8 +44,6 @@ If ($params.creates.GetType) } $logfile = [IO.Path]::GetTempFileName(); -$stdoutfile = [IO.Path]::GetTempFileName(); -$stderrfile = [IO.Path]::GetTempFileName(); if ($params.state.GetType -and $params.state -eq "absent") { msiexec.exe /x $params.path /qb /l $logfile $extra_args; @@ -59,13 +57,7 @@ Set-Attr $result "changed" $true; $logcontents = Get-Content $logfile; Remove-Item $logfile; -$stdoutcontents = Get-Content $stdoutfile; -Remove-Item $stdoutfile; -$stderrcontents = Get-Content $stderrfile; -Remove-Item $stderrfile; Set-Attr $result "log" $logcontents; -Set-Attr $result "stdout" $stdoutcontents; -Set-Attr $result "stderr" $stderrcontents; Exit-Json $result;