From a02c5c468354faa376ef5e26573e65619aab3b7b Mon Sep 17 00:00:00 2001 From: Jordan Borean Date: Wed, 7 Aug 2019 18:28:44 +1000 Subject: [PATCH] win_user - use proper error code when failing to validate creds (#60181) (cherry picked from commit 45d0e5994ab219f0a023c6b512ab6c3e378b005a) --- changelogs/fragments/win_user-logon-err.yaml | 2 ++ lib/ansible/modules/windows/win_user.ps1 | 11 ++++++++--- 2 files changed, 10 insertions(+), 3 deletions(-) create mode 100644 changelogs/fragments/win_user-logon-err.yaml diff --git a/changelogs/fragments/win_user-logon-err.yaml b/changelogs/fragments/win_user-logon-err.yaml new file mode 100644 index 00000000000..6f4ec24ec07 --- /dev/null +++ b/changelogs/fragments/win_user-logon-err.yaml @@ -0,0 +1,2 @@ +bugfixes: +- win_user - Get proper error code when failing to validate the user's credentials diff --git a/lib/ansible/modules/windows/win_user.ps1 b/lib/ansible/modules/windows/win_user.ps1 index 3e925379a6d..95b2c1174d3 100644 --- a/lib/ansible/modules/windows/win_user.ps1 +++ b/lib/ansible/modules/windows/win_user.ps1 @@ -73,14 +73,19 @@ namespace Ansible $env:TMP = $original_tmp $handle = [IntPtr]::Zero - $logon_res = [Ansible.WinUserPInvoke]::LogonUser($Username, $null, $Password, - $LOGON32_LOGON_NETWORK, $LOGON32_PROVIDER_DEFAULT, [Ref]$handle) + $logon_res = [Ansible.WinUserPInvoke]::LogonUser( + $Username, + $null, + $Password, + $LOGON32_LOGON_NETWORK, + $LOGON32_PROVIDER_DEFAULT, + [Ref]$handle + ); $err_code = [System.Runtime.InteropServices.Marshal]::GetLastWin32Error() if ($logon_res) { $valid_credentials = $true [Ansible.WinUserPInvoke]::CloseHandle($handle) > $null } else { - $err_code = [System.Runtime.InteropServices.Marshal]::GetLastWin32Error() # following errors indicate the creds are correct but the user was # unable to log on for other reasons, which we don't care about $success_codes = @(