win_psexec – Runs commands (remotely) as another (privileged) user
Synopsis
- Run commands (remotely) through the PsExec service.
 - Run commands as another (domain) user (with elevated privileges).
 
Requirements
The below requirements are needed on the host that executes this module.
- Microsoft PsExec
 
Parameters
| Parameter | Choices/Defaults | Comments | 
|---|---|---|
|   chdir    path    |    Run the command from this (remote) directory.   |  |
|   command    string / required    |    The command line to run through PsExec (limited to 260 characters).   |  |
|   elevated    boolean    |   
  |    Run the command with elevated privileges.   |  
|   executable    path    |   Default: "psexec.exe"   |    The location of the PsExec utility (in case it is not located in your PATH).   |  
|   extra_opts    list    |    Specify additional options to add onto the PsExec invocation.  This module was undocumented in older releases and will be removed in Ansible 2.10.   |  |
|   hostnames    list    |    The hostnames to run the command.  If not provided, the command is run locally.   |  |
|   interactive    boolean    |   
  |    Run the program so that it interacts with the desktop on the remote system.   |  
|   limited    boolean    |   
  |    Run the command as limited user (strips the Administrators group and allows only privileges assigned to the Users group).   |  
|   nobanner    boolean   added in 2.4   |   
  |    Do not display the startup banner and copyright message.  This only works for specific versions of the PsExec binary.   |  
|   noprofile    boolean    |   
  |    Run the command without loading the account's profile.   |  
|   password    string    |    The password for the (remote) user to run the command as.  This is mandatory in order authenticate yourself.   |  |
|   priority    -    |   
  |    Used to run the command at a different priority.   |  
|   session    integer   added in 2.7   |    Specifies the session ID to use.  This parameter works in conjunction with interactive.  It has no effect when interactive is set to   no. |  |
|   system    boolean    |   
  |    Run the remote command in the System account.   |  
|   timeout    integer    |    The connection timeout in seconds   |  |
|   username    string    |    The (remote) user to run the command as.  If not provided, the current user is used.   |  |
|   wait    boolean    |   
  |    Wait for the application to terminate.  Only use for non-interactive applications.   |  
Notes
Note
- More information related to Microsoft PsExec is available from https://technet.microsoft.com/en-us/sysinternals/bb897553.aspx
 
See Also
See also
- 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_command – Executes a command on a remote Windows node
 - The official documentation on the win_command module.
 - win_shell – Execute shell commands on target hosts
 - The official documentation on the win_shell module.
 
Examples
- name: Test the PsExec connection to the local system (target node) with your user
  win_psexec:
    command: whoami.exe
- name: Run regedit.exe locally (on target node) as SYSTEM and interactively
  win_psexec:
    command: regedit.exe
    interactive: yes
    system: yes
- name: Run the setup.exe installer on multiple servers using the Domain Administrator
  win_psexec:
    command: E:\setup.exe /i /IACCEPTEULA
    hostnames:
    - remote_server1
    - remote_server2
    username: DOMAIN\Administrator
    password: some_password
    priority: high
- name: Run PsExec from custom location C:\Program Files\sysinternals\
  win_psexec:
    command: netsh advfirewall set allprofiles state off
    executable: C:\Program Files\sysinternals\psexec.exe
    hostnames: [ remote_server ]
    password: some_password
    priority: low
   Return Values
Common return values are documented here, the following are the fields unique to this module:
| Key | Returned | Description | 
|---|---|---|
|   cmd    string    |  always |   The complete command line used by the module, including PsExec call and additional options.  Sample:  psexec.exe -nobanner \\remote_server -u "DOMAIN\Administrator" -p "some_password" -accepteula E:\setup.exe   |  
|   pid    integer    |  when wait=False
 |    The PID of the async process created by PsExec.  Sample:  1532   |  
|   rc    integer    |  always |   The return code for the command.   |  
|   stderr    string    |  always |   The error output from the command.  Sample:  Error 15 running E:\setup.exe   |  
|   stdout    string    |  always |   The standard output from the command.  Sample:  Success.   |  
Status
- This module is not guaranteed to have a backwards compatible interface. [preview]
 - This module is maintained by the Ansible Community. [community]
 
Authors
- Dag Wieers (@dagwieers)
 
Hint
If you notice any issues in this documentation, you can edit this document to improve it.
    © 2012–2018 Michael DeHaan
© 2018–2019 Red Hat, Inc.
Licensed under the GNU General Public License version 3.
    https://docs.ansible.com/ansible/2.9/modules/win_psexec_module.html