SSH on Windows 10 with Fall 2017 Update!

It has come to my attention that you can now install SSH on Windows 10 version 1709 “Fall Creators Update” (OS Build 10.0.16299). To find what version of Windows 10 you are currently running, hit Windows Key + R and type winver.


Installing OpenSSH on Windows 10 is done inside the Optional Feature section. You simply have to type in Manage Optional Features into the Windows 10 Search. Open the result. That is a lot of manual work, but it can be done with PowerShell or CMD line, located at the bottom of this post.

2017-11-28 14_03_09-.png

Once the window is open click on Add a Feature. Here you will see OpenSSH Client (Beta) and OpenSSh Server (Beta). Select the OpenSSH Client (Beta). It will install in a matter of seconds.

You will need to do a reboot, but soon as you are back into your system you can simply open up PowerShell or the Command Prompt and type ssh. This is because openSSH client binaries have been appended to the System Environment Variables PATH.

OpenSSH is still in beta and therefore has limitations, but this is still a great feature to have on Windows 10. Working with a lot of Linux distributions in the Public Cloud offerings use to be a hassle. No more PuTTY, PSEXEC or WinRM!

You can simply do it with PowerShell as well:

get-windowsoptionalfeature -online //This list all optional features
get-WindowsOptionalFeature -Online -FeatureName "*OpenSSH*" //This only find the feature with OpenSSH
Enable-WindowsOptionalFeature -Online -FeatureName "*OpenSSH*Client*" -All //This install OpenSSH Client

//Disable the Optional Feature by
Disable-WindowsOptionalFeature -Online -FeatureName "*OpenSSH*"

Or with command-line

<span data-mce-type="bookmark" style="display: inline-block; width: 0px; overflow: hidden; line-height: 0;" class="mce_SELRES_start"></span>
dism /online /get-capabilities | findstr /i "OpenSSH.Client"

PowerShell: Remove-Item with Confirm Prompt

A common question I see on the forums is how to disable or bypass the Confrim Prompt. What I noticed was a lot of wrong answers or misunderstood explanation of it. I am doing to do my best to describe it in my own words.

This is a common message that is promoted when you are using the

Remove-Item cmdlet. Nobody wants to delete your children. 
The item at [path] has children and the Recurse parameter was not specified. If you continue, all children will be removed with the item. Areyou sure you want to continue?
[Y] Yes [A] Yes to All [N] No [L] No to All [S] Suspend [?] Help (default is “Y”)

Reading the message tells us what we need to do, but sometimes it doesn't click with our brains. To fix this we simply need to use the


Remove-Item C:\$pathtofile -Recurse

I notice a lot of people commenting about the


switch. This switch is only used to prompt for confirmation, but the boolen $False option is default. This will not bypass the current warning message, because we are not wanting to be prompted about it.
Using the -Confirm parameter.
Another common switch that people refure to is using the


switch, but this switch only is used to delete hidden and read only items.

The following will not work as explained above.
Remove-Item C:\$pathtofile -Confirm:$false
Remove-Item C:\$pathtofile -Force