- AnsibleFest
- Products
- Community
- Webinars & Training
- Blog

Documentation

# win_command – Executes a command on a remote Windows node

- Synopsis
- Parameters
- Notes
- See Also
- Examples
- Return Values
- Status

## Synopsis

- The `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 `$env:HOME` and operations like `"<"`, `">"`, `"|"`, and `";"` will not work (use the win_shell module if you need these features).
- For non-Windows targets, use the command module instead.

## Parameters

Parameter | Choices/Defaults | Comments
--- | --- | ---
chdir path |  | Set the specified path as the current working directory before executing a command.
creates path |  | A path or path filter pattern; when the referenced path exists on the target host, the task will be skipped.
free_form string / required |  | The `win_command` module takes a free form command to run. There is no parameter actually named 'free form'. See the examples!
removes path |  | A path or path filter pattern; when the referenced path does not exist on the target host, the task will be skipped.
stdin string added in 2.5 |  | Set the stdin of the command directly to the specified value.

## Notes

Note

- If you want to run a command through a shell (say you are using `<`, `>`, `|`, etc), you actually want the win_shell module instead. The `win_command` module is much more secure as it’s not affected by the user’s environment.
- `creates`, `removes`, and `chdir` can be specified after the command. For instance, if you only want to run a command if a certain file does not exist, use this.

## See Also

See also

command – Execute commands on targets
  The official documentation on the command module.
psexec – Runs commands on a remote Windows host based on the PsExec model
  The official documentation on the psexec module.
raw – Executes a low-down and dirty command
  The official documentation on the raw module.
win_psexec – Runs commands (remotely) as another (privileged) user
  The official documentation on the win_psexec module.
win_shell – Execute shell commands on target hosts
  The official documentation on the win_shell module.

## Examples

    - name: Save the result of 'whoami' in 'whoami_out'
      win_command: whoami
      register: whoami_out

    - name: Run command that only runs if folder exists and runs from a specific folder
      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
      win_command: powershell.exe -
      args:
        stdin: Write-Host test

## Return Values

Common return values are documented here, the following are the fields unique to this module:

Key | Returned | Description
--- | --- | ---
cmd string | always | The command executed by the task Sample: rabbitmqctl join_cluster rabbit@master
delta string | always | The command execution delta time Sample: 0:00:00.325771
end string | always | The command execution end time Sample: 2016-02-25 09:18:26.755339
msg boolean | always | changed Sample: True
rc integer | always | The command return code (0 means success)
start string | always | The command execution start time Sample: 2016-02-25 09:18:26.429568
stderr string | always | The command standard error Sample: ls: cannot access foo: No such file or directory
stdout string | always | The command standard output Sample: Clustering node rabbit@slave1 with rabbit@master ...
stdout_lines list | always | The command standard output split in lines Sample: ["u'Clustering node rabbit@slave1 with rabbit@master ...'"]

## Status

- This module is not guaranteed to have a backwards compatible interface. [preview]
- This module is maintained by the Ansible Core Team. [core]

### Red Hat Support

More information about Red Hat’s support of this module is available from this Red Hat Knowledge Base article.

### Authors

- Matt Davis (@nitzmahone)

Hint

If you notice any issues in this documentation, you can edit this document to improve it.