- 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 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 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: 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