I have two test servers, a 2012R2 server and a 2008R2 server. Both are up to date on all updates and both are running the same version of PS (4.0). When I run the following command, I get different results:
On the 2012R2 server, it runs fine and gives me appropriate results. On the 2008R2 server, I get the following error:
Get-ChildItem : A parameter cannot be found that matches parameter name 'sslserverauthentication'.
At line:1 char:37
+ Get-ChildItem Cert:\LocalMachine\My -sslserverauthentication
+ CategoryInfo : InvalidArgument: (:) [Get-ChildItem], ParameterBindingException
+ FullyQualifiedErrorId : NamedParameterNotFound,Microsoft.PowerShell.Commands.GetChildItemCommand
In PowerShell there are different versions as you've already noticed. However, different versions installed on different operating systems have a variance of cmdlets and parameters available to them.
You can check this out by checking the amount of cmdlets you have available on your 2012 machine as opposed to your 2008 machine.
This will show you the amount of commands that are currently available in your session. If you run this on your 2012 machine you will notice significantly more cmdlets that are available. if you are searching for certain parameters you can use get-command to search for not only parameters types but also parameters names, example:
Get-Command -ParameterName 'Recurse'
This will show you all the cmdlets that contains a Recurse parameter.