Search code examples
windowspowershellremote-desktopremote-accessremote-administration

How to admin a remote Windows Server with a command line interface?


When I was a Linux admin I could do anything from the SSH command line. Now, as a Windows admin, I have to deal with the Windows Remote Desktop graphical interface, which I found to be inefective (slow) and hard to automate tasks in it.

a) Can I connect to a Windows Server through SSH or any encrypted connection with command line interface?

b) If yes can I do ANY administrative task?

Examples:

  1. create a new virtual folder in IIS
  2. setup firewall ports
  3. restart services
  4. change user policies
  5. start desktop applications

I know about the existence of Windows PowerShell 2.0 Remoting, but I don't know if it fullfills all conditions above

My conclusion so far: from Windows PowerShell can do MOST but not ALL administrative tasks. And I still don't know if Windows PowerShell 2.0 Remoting uses an encrypted connection.


Solution

  • PowerShell is what you're looking for. It is primarily targetted at system administration (although it's fanastic as a programmer's shell, too).

    PowerShell v2 remoting is based on Windows Remote Management. See http://msdn.microsoft.com/en-us/library/aa384426(VS.85).aspx. It includes facilities for ecryption and authentication, as you'd expect.

    PowerShell includes cmdlets that let you do a lot of everyday tasks. Microsoft server applications (IIS, Exchange, etc.) either have or are building PowerShell cmdlets to administer them. PowerShell's WMI support is excellent, giving you a lot of machine administration power. PowerShell can talk to .NET directly, which lets you go further than built-in facilities when needed. And writing C# for PowerShell to call works out cleanly, too.

    You asked for a command line interface, but don't think that you're restricted to the ancient and crufty Windows Console subsystem. PowerShell v2 includes a new GUI interactive shell / script editor, with colorization and debugging. It's sweet.