|
|
|
- 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
|
|
|
|
|
|
|
|
- name: Test whoami as SYSTEM
|
|
|
|
assert:
|
|
|
|
that:
|
|
|
|
- whoami_as_system.rc == 0
|
|
|
|
- whoami_as_system.stdout == 'nt authority\system'
|
|
|
|
|
|
|
|
# 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
|