1
0
Fork 0
mirror of https://github.com/ansible-collections/community.general.git synced 2024-09-14 20:13:21 +02:00
community.general/test/integration/targets/win_psexec/tasks/main.yml

96 lines
2.4 KiB
YAML
Raw Normal View History

- name: Download PSTools
win_get_url:
url: https://download.sysinternals.com/files/PSTools.zip
dest: C:\Windows\Temp\PSTools.zip
force: no
- name: Create sysinternals directory
win_file:
path: C:\Windows\Temp\sysinternals
state: directory
- name: Unzip PSTools
win_unzip:
src: C:\Windows\Temp\PSTools.zip
dest: C:\Windows\Temp\sysinternals
- name: Add sysinternals to PATH
win_path:
name: PATH
elements: C:\Windows\Temp\sysinternals
scope: machine
state: present
- name: Run whoami
win_psexec:
command: whoami.exe
nobanner: true
register: whoami
- name: Test whoami
assert:
that:
- whoami.rc == 0
- whoami.stdout == ''
# FIXME: Standard output does not work or is truncated
#- whoami.stdout == '{{ ansible_hostname|lower }}'
- name: Run whoami as SYSTEM
win_psexec:
command: whoami.exe
system: yes
nobanner: true
register: whoami_as_system
# Seems to be a bug with PsExec where the stdout can be empty, just retry the task to make this test a bit more stable
until: whoami_as_system.rc == 0 and whoami_as_system.stdout == 'nt authority\system'
retries: 3
delay: 2
# FIXME: Behaviour is not consistent on all Windows systems
#- name: Run whoami as ELEVATED
# win_psexec:
# command: whoami.exe
# elevated: yes
# register: whoami_as_elevated
#
## Ensure we have basic facts
#- setup:
#
#- debug:
# msg: '{{ whoami_as_elevated.stdout|lower }} == {{ ansible_hostname|lower }}\{{ ansible_user_id|lower }}'
#
#- name: Test whoami
# assert:
# that:
# - whoami_as_elevated.rc == 0
# - 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
win_path:
name: PATH
elements: C:\Windows\Temp\sysinternals
scope: machine
state: absent
- name: Remove sysinternals directory
win_file:
path: C:\Windows\Temp\sysinternals
state: absent
- name: Remove sysinternals directory
win_file:
path: C:\Windows\Temp\PSTools.zip
state: absent