Since I am usually doing most development on my Linux Laptop a decent commandline interface is something I want on windows as well. Most of this setup is inspired by this totally tooling tip.

The windows powershell on its own is quite powerful already but can be enhanced quite a bit.

Setting powershell up

Most enhancements to powershell come as modules. With PSGet you they can be managed easily. But to be able to run modules, the execution policy has to be set to allows external modules.

Set-ExecutionPolicy RemoteSigned

After that the command from PSGet installs the module manager.

(new-object Net.WebClient).DownloadString("http://psget.net/GetPsGet.ps1") | iex

Microsoft has a Knowlagebase article about the execution policy

Setting powershell up

Most enhancements to powershell come as modules. With PSGet you they can be managed easily. But to be able to run modules, the execution policy has to be set to allows external modules.

Set-ExecutionPolicy RemoteSigned

After that the command from PSGet installs the module manager.

(new-object Net.WebClient).DownloadString("http://psget.net/GetPsGet.ps1") | iex

Microsoft has a Knowlagebase article about the execution policy

Git integration

Posh provides comandline integration for my favorite version control system and can be installed with:

Install-Module posh-git

Now powershell provides tap completion for git and a custom prompt once in a folder with a git repository.

SSH

My Servers usually run on Unix as well so I have to connect to them via SSH. In the past I used putty on windows but it has grown a bit old.

While Microsoft is planing SSH support for Powershell for the future, I wanted it now and there is a module for that too: POSH-SSH

Again it is installed with a one liner that you copy from their page.

The modules Author has written a nice article about how to use it.

Cmder

A really nice collection of powershell modules, skins and a way to have taps, split the window in multiple consoles and so on is cmder. The draw back is that their modules are not signed and you have to lower the rules of the execution policy even further.