I need to make some scripts for connecting from a Unix server to several Windows stations for automating file transfers. GUI is not needed and I can't install any additional software into Windows boxes also. Which RDP clients support scripting or are there any separate utilities to look for?
As for software for doing remote Windows automation tasks from the Unix/Linux side, I am aware of:
- Ansible - devops automation framework
- Rundeck - web based Java automation framework
- putty - pscp tools, for talking SSH on the Windows remote side
- cygwin - cross-compiled GNU tools framework for Windows
- Win32-openSSH - Microsoft´s port of OpenSSH
- freeSSHd - a free SSH implementation for Windows
As for the requirement about not installing software:
cygwin disqualifies as you need to install the whole stack;
rundeck needs in the Windows side, modules/agents for basic commands, and to support scripts, SSH;
- Ansible boasts about not needing to install anything both in Windows and Linux nodes;
Starting in version 1.7, Ansible also contains support for managing Windows machines. This uses native PowerShell remoting, rather than SSH. Ansible will still be run from a Linux control machine, and uses the “winrm” Python module to talk to remote hosts. No additional software needs to be installed on the remote machines for Ansible to manage them, it still maintains the agentless properties that make it popular on Linux/Unix.
- Openssh do needs to be installed, please keep reading on.
- FreeSSHd also needs to be installed. We have been using it for years, works quite well, however I do believe Win32-openSSH is the "official" solution. Just mentioning it both as an alternative, and because I have not actually used Win32-openSSH yet.
So I do recommend investigating Ansible, and/or running small Windows/DOS batch commands over SSH/Win32-openSSH for more simple tasks.
We have installed here SSH daemons in the Windows servers a few years ago, and they can come very handy for small housekeeping tasks. It is so much more convenient entering an SSH session, than having to invoke a vmware console.