Running Powershell Script not working

Hi

I am trying to run a simple playbook to run a Powershell script. But it keeps failing.
If I run the Powershell script directly on the server it works fine. Below is the play book ans the script.

Is there something that needs to be done to get Ansible to run the Powershell script?

Powershell Scripts (rdp.ps1)

Enable Remote Desktop

set-ItemProperty -Path ‘HKLM:SystemCurrentControlSetControlTerminal Server’-name “fDenyTSConnections” -Value 0

Playbook:

Looks like you have lost some backslashes somehow

instead of

set-ItemProperty -Path ‘HKLM:SystemCurrentControlSetControlTerminal Server’-name “fDenyTSConnections” -Value 0

try

set-ItemProperty -Path ‘HKLM:System\CurrentControlSet\Control\Terminal Server’-name “fDenyTSConnections” -Value 0

Or, if you are running ansible 2.0, try using the win_regedit module

http://docs.ansible.com/ansible/win_regedit_module.html

Something like (not tested):

win_regedit:
  key: 'HKLM:\System\CurrentControlSet\Control\Terminal Server'
  value: fDenyTSConnections
  data: 0 

datatype: dword

Hope this helps,

Jon

Thanks for the response!

I have tried the following Powershell options:
set-ItemProperty -Path ‘HKLM:System\CurrentControlSet\Control\Terminal Server’-name “fDenyTSConnections” -Value 0
set-ItemProperty -Path ‘HKEY_LOCAL_MACHINE:System\CurrentControlSet\Control\Terminal Server’ -name “fDenyTSConnections” -Value 0

set-ItemProperty -Path ‘HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Terminal Server’ -name “fDenyTSConnections” -Value 0

But none of them work. Got the following error with the option you suggested.

fatal: [10.10.3.170]: FAILED! => {“changed”: false, “failed”: true, “invocation”: {“module_args”: {“raw_params": “set-ItemProperty -Path ‘HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Terminal Server’ -name "fDenyTSConnections" -Value 0”}, “module_name”: “raw”}, “rc”: 1, “stderr”: “#< CLIXML\r\n<Objs Version="1.1.0.1" xmlns="http://schemas.microsoft.com/powershell/2004/04\”><S S="Error">set-ItemProperty : Cannot find path ‘C:\Users\Administrator\HKEY_LOCAL_MACHINE\x000D__x000A<S S="Error">System\CurrentControlSet\Control\Terminal Server’ because it does not exist.x000D__x000A<S S="Error">At line:1 char:1_x000D__x000A<S S="Error">+ set-ItemProperty -Path x000D__x000A<S S="Error">'HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Term …x000D__x000A<S S="Error">+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~x000D__x000A<S S="Error">~x000D__x000A<S S="Error"> + CategoryInfo : ObjectNotFound: (C:\Users\Admini…Terminal Serv x000D__x000A<S S="Error"> er:String) [Set-ItemProperty], ItemNotFoundException_x000D__x000A_<S S="Error"> + FullyQualifiedErrorId : PathNotFound,Microsoft.PowerShell.Commands.SetIt x000D__x000A<S S="Error"> emPropertyCommand_x000D__x000A_<S S="Error"> x000D__x000A”, “stdout”: “”, “stdout_lines”: }
I have no doubt if I used the win_regedit it would work. But Im trying to figure out why Ansible is not able to run a simple Powershell script from a playbook?
Why am I able to run that script successfully from the machine, but it fails when Ansible ties to execute it from a playbook.

This is the part of the error that concerns me:
<S S="Error">set-ItemProperty : Cannot find path 'C:\Users\Administrator\HKEY_LOCAL_MACHINE\x000D__x000A

Why is Ansible trying to find the path in C:\ when this is a registry script?

Any ideas would be appreciated.

Cheers
Mark

My apologies, I missed the leading slash after the ‘drive name’ ( For some reason powershell has its own notion of ‘drives’ which include parts of the registry - HKLM: is the name of the powershell drive that maps to the HKEY_LOCAL_MACHINE part ot the registry.)

Set-ItemProperty -Path ‘HKLM:\System\CurrentControlSet\Control\Terminal Server’ -name “fDenyTSConnections” -Value 0

Hope this helps,

Jon

You are absolutely right mate!! I literally had tried every way except that!

Once I made that change to the registry entries in the Powershell scripts all the playbooks starting to run successfully.

Thanks for your help!