win_psexec: fix arg handling when command contains multiple args (#44797)

This commit is contained in:
Jordan Borean 2018-08-29 10:12:29 +10:00 committed by GitHub
parent d5d2c80779
commit 9d91607754
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 18 additions and 1 deletions

View file

@ -0,0 +1,2 @@
bugfixes:
- win_psexec - changed code to not escape the command option when building the args - https://github.com/ansible/ansible/issues/43839

View file

@ -110,10 +110,13 @@ If ($extra_opts) {
} }
$arguments += "-accepteula" $arguments += "-accepteula"
$arguments += $command
$argument_string = Argv-ToString -arguments $arguments $argument_string = Argv-ToString -arguments $arguments
# add the command at the end of the argument string, we don't want to escape
# that as psexec doesn't expect it to be one arg
$argument_string += " $command"
$start_datetime = [DateTime]::UtcNow $start_datetime = [DateTime]::UtcNow
$result.psexec_command = "$executable $argument_string" $result.psexec_command = "$executable $argument_string"

View file

@ -67,6 +67,18 @@
# - whoami_as_elevated.rc == 0 # - whoami_as_elevated.rc == 0
# - whoami_as_elevated.stdout|lower == '{{ ansible_hostname|lower }}\{{ ansible_user_id|lower }}' # - whoami_as_elevated.stdout|lower == '{{ ansible_hostname|lower }}\{{ ansible_user_id|lower }}'
- name: Run command with multiple arguments
win_psexec:
command: powershell.exe -NonInteractive "exit 1"
ignore_errors: yes
register: whoami_multiple_args
- name: Test command with multiple argumetns
assert:
that:
- whoami_multiple_args.rc == 1
- whoami_multiple_args.psexec_command == "psexec.exe -accepteula powershell.exe -NonInteractive \"exit 1\""
- name: Remove sysinternals from PATH - name: Remove sysinternals from PATH
win_path: win_path:
name: PATH name: PATH