ansible / ansible.windows / 2.3.0 / module / win_command Executes a command on a remote Windows node Authors: Matt Davis (@nitzmahone)ansible.windows.win_command (2.3.0) — module
Install with ansible-galaxy collection install ansible.windows:==2.3.0
collections: - name: ansible.windows version: 2.3.0
The C(win_command) module takes the command name followed by a list of space-delimited arguments.
The given command will be executed on all selected nodes. It will not be processed through the shell, so variables like C($env:HOME) and operations like C("<"), C(">"), C("|"), and C(";") will not work (use the M(ansible.windows.win_shell) module if you need these features).
For non-Windows targets, use the M(ansible.builtin.command) module instead.
# Older style using the free-form and args format. The command is on the same # line as the module and 'args' is used to define the options for win_command. - name: Save the result of 'whoami' in 'whoami_out' ansible.windows.win_command: whoami register: whoami_out
- name: Run command that only runs if folder exists and runs from a specific folder ansible.windows.win_command: wbadmin -backupTarget:C:\backup\ args: chdir: C:\somedir\ creates: C:\backup\
- name: Run an executable and send data to the stdin for the executable ansible.windows.win_command: powershell.exe - args: stdin: Write-Host test
# Newer style using module options. The command and other arguments are # defined as module options and are indended like another other module. - name: Run the 'whoami' executable with the '/all' argument ansible.windows.win_command: cmd: whoami.exe /all
- name: Run executable in 'C:\Program Files' with a custom chdir ansible.windows.win_command: # When using cmd, the arguments need to be quoted manually cmd: '"C:\Program Files\My Application\run.exe" "argument 1" -force' chdir: C:\Windows\TEMP
- name: Run executable using argv and have win_command escape the spaces as needed ansible.windows.win_command: # When using argv, each entry is quoted in the module argv: - C:\Program Files\My Application\run.exe - argument 1 - -force
cmd: description: - The command and arguments to run. - This is mutually exclusive with the C(_raw_params) and C(argv) options. type: str version_added: 1.11.0 version_added_collection: ansible.windows argv: description: - A list that contains the executable and arguments to run. - The module will attempt to quote the arguments specified based on the L(Win32 C command-line argument rules,https://docs.microsoft.com/en-us/cpp/c-language/parsing-c-command-line-arguments). - Not all applications use the same quoting rules so the escaping may not work, for those scenarios use C(cmd) instead. elements: str type: list version_added: 1.11.0 version_added_collection: ansible.windows chdir: description: - Set the specified path as the current working directory before executing a command. type: path stdin: description: - Set the stdin of the command directly to the specified value. type: str creates: description: - A path or path filter pattern; when the referenced path exists on the target host, the task will be skipped. type: path removes: description: - A path or path filter pattern; when the referenced path B(does not) exist on the target host, the task will be skipped. type: path _raw_params: description: - The C(win_command) module takes a free form command to run. - This is mutually exclusive with the C(cmd) and C(argv) options. - There is no parameter actually named '_raw_params'. See the examples! type: str output_encoding_override: description: - This option overrides the encoding of stdout/stderr output. - You can use this option when you need to run a command which ignore the console's codepage. - You should only need to use this option in very rare circumstances. - This value can be any valid encoding C(Name) based on the output of C([System.Text.Encoding]::GetEncodings()). See U(https://docs.microsoft.com/dotnet/api/system.text.encoding.getencodings). type: str
cmd: description: The command executed by the task returned: always sample: rabbitmqctl join_cluster rabbit@main type: str delta: description: The command execution delta time returned: always sample: '0:00:00.325771' type: str end: description: The command execution end time returned: always sample: '2016-02-25 09:18:26.755339' type: str msg: description: changed returned: always sample: true type: bool rc: description: The command return code (0 means success) returned: always sample: 0 type: int start: description: The command execution start time returned: always sample: '2016-02-25 09:18:26.429568' type: str stderr: description: The command standard error returned: always sample: 'ls: cannot access foo: No such file or directory' type: str stderr_lines: description: The command standard error split in lines returned: always sample: '[''ls: cannot access foo: No such file or directory'']' type: list stdout: description: The command standard output returned: always sample: Clustering node rabbit@slave1 with rabbit@main ... type: str stdout_lines: description: The command standard output split in lines returned: always sample: - Clustering node rabbit@slave1 with rabbit@main ... type: list