- name: Setup Windows machine with Ansible hosts: all gather_facts: false pre_tasks: - name: Setup WinRM, PSRP community.windows.psexec: hostname: '{{ hostvars[inventory_hostname]["ansible_host"] | default(inventory_hostname) }}' connection_username: '{{ ansible_user }}' connection_password: '{{ ansible_password }}' encrypt: yes executable: powershell.exe arguments: '-' stdin: | Set-ExecutionPolicy Bypass -Scope LocalMachine -Force [Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12 $url = "https://raw.githubusercontent.com/ansible/ansible-documentation/devel/examples/scripts/ConfigureRemotingForAnsible.ps1" $file = "$env:temp\ConfigureRemotingForAnsible.ps1" (New-Object -TypeName System.Net.WebClient).DownloadFile($url, $file) Invoke-Expression "$file -SkipNetworkProfileCheck" exit delegate_to: localhost changed_when: false - name: Gathering facts setup: post_tasks: - name: Reset ExecutionPolicy ansible.windows.win_powershell: script: Set-ExecutionPolicy Undefined -Scope LocalMachine -Force