win_command not able to execute command file on win 2008

Hi All,

I have configured ansible to run some cmd script on windows machine. it is working fine in windows 7,8,2010.

But, it is now working for only windows 2008.

It is providing empty output.

It sounds like you have hit this issue: https://github.com/ansible/ansible/issues/21915

I guess you could try updating the powershell / windows management framework version to see if that helps, or perhaps upgrade the machine to S2008R2?

All the best,

Jon

Apart from updating the Server OS to 2008 R2 the only way I know how to get the output of a batch script is to use win_shell while changing the active code page. An example of running a valid and failing command can be found

  • name: create test batch file
    win_copy:
    dest: C:\temp\test.bat
    content: |
    @echo OFF
    echo Hello World
  • name: create bad batch file
    win_copy:
    dest: C:\temp\bad.bat
    content: |
    @echo OFF
    echo stdout
    echo stderr 1>&2
    exit 1
  • name: run test batch file
    win_shell: chcp 437 | Out-Null; C:\temp\test.bat
  • name: run bad test batch file
    win_shell: chcp 437 | Out-Null; C:\temp\bad.bat

The output looks like the below

PLAYBOOK: adhoc.yml ******************************************************************************************************************************************************************************************************************************
1 plays in adhoc.yml

PLAY [adhoc stuff] *******************************************************************************************************************************************************************************************************************************
META: ran handlers

TASK [create test batch file] ********************************************************************************************************************************************************************************************************************
task path: /Users/jborean/dev/module-tester/adhoc.yml:7
Friday 08 September 2017 09:20:59 +1000 (0:00:00.045) 0:00:00.045 ******
ok: [Server2008] => {“changed”: false, “checksum”: “994da01848ab043e362343ac6b95e0169215e510”, “dest”: “C:\temp\test.bat”, “failed”: false, “operation”: “file_copy”, “original_basename”: “tmpivwi2x5e”, “size”: 27, “src”: null }

TASK [create bad batch file] *********************************************************************************************************************************************************************************************************************
task path: /Users/jborean/dev/module-tester/adhoc.yml:14
Friday 08 September 2017 09:21:00 +1000 (0:00:01.582) 0:00:01.628 ******
ok: [Server2008] => {“changed”: false, “checksum”: “a91d421034b3a977a02d1a229652fb7a542c16e5”, “dest”: “C:\temp\bad.bat”, “failed”: false, “operation”: “file_copy”, “original_basename”: “tmp_5gq6hzc”, “size”: 27, “src”: null}

TASK [run test batch file] ***********************************************************************************************************************************************************************************************************************
task path: /Users/jborean/dev/module-tester/adhoc.yml:22
Friday 08 September 2017 09:21:02 +1000 (0:00:01.796) 0:00:03.424 ******
changed: [Server2008] => {“changed”: true, “cmd”: “chcp 437| Out-Null; C:\temp\test.bat”, “delta”: “0:00:00.528651”, “end”: “2017-09-07 11:21:03.384382”, “failed”: false, “rc”: 0, “start”: “2017-09-07 11:21:02.855730”, “stderr”: “”,

“stderr_lines”: , “stdout”: “Hello World\r\n”, “stdout_lines”: [“Hello World”]}

TASK [run bad test batch file] *******************************************************************************************************************************************************************************************************************
task path: /Users/jborean/dev/module-tester/adhoc.yml:25
Friday 08 September 2017 09:21:04 +1000 (0:00:02.169) 0:00:05.594 ******
fatal: [Server2008]: FAILED! => {“changed”: true, “cmd”: “chcp 437| Out-Null; C:\temp\bad.bat”, “delta”: “0:00:00.372014”, “end”: “2017-09-07 11:21:06.008062”, “failed”: true, “msg”: “non-zero return code”, “rc”: 1, “start”: “2017-09-07 11:21:05.636047”, “stderr”: “stderr \r\n”, “stderr_lines”: ["stderr "], “stdout”: “Fail\r\n”, “stdout_lines”: [“Fail”]}

PLAY RECAP ***************************************************************************************************************************************************************************************************************************************
Server2008 : ok=3 changed=1 unreachable=0 failed=1
Friday 08 September 2017 09:21:06 +1000 (0:00:02.098) 0:00:07.692 ******

===============================================================================
run test batch file ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- 2.17s
/Users/jborean/dev/module-tester/adhoc.yml:22 ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
run bad test batch file ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- 2.10s
/Users/jborean/dev/module-tester/adhoc.yml:25 ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
create bad batch file --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- 1.80s
/Users/jborean/dev/module-tester/adhoc.yml:14 ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
create test batch file -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- 1.58s
/Users/jborean/dev/module-tester/adhoc.yml:7 ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Playbook run took 0 days, 0 hours, 0 minutes, 7 seconds

In the example you can see that it runs both a good and bad batch file and also get’s the stdout and stderr streams. The reason why this works is that win_shell creates a new powershell process and before we run the batch script we change the codepage to 437 which is the US codepage so that we can retrieve the output.

Sorry for delay in reply.

It seems resolved after Upgrade WinRM 3.0.