Change to Powershell console in Windows 2012 Core instead of CMD
In twitter yesterday I saw that there was a discussion about setting default shell to Powershell in Windows Core, Jeffery Hicks has done this in Windows 2008 R2 and I wanted to test if his little trick worked in Windows 2012 also (by the way, why is it not default by default in 2012 Core? )
I have my testmachine ready and so lets go
Interestingly, When I check the registry I got that my shell in the 2012 Core was Explorer.exe,
but when I got a bit deeper I could see under AlternativeShells that the CMD was there
I tried to edit that but got an error 🙁
well lets try to exchange the explorer.exe in shell to powershell.exe instead, I use the $env:userprofile to get the same directory as with cmd
$shell = "Powershell.exe -NoExit cd <code>$env:userprofile" set-itemproperty "hklm:\software\microsoft\windows nt\currentversion\winlogon" shell $shell
And here you can see in my registry, notice that the $env:userprofile is still there thanks to the in the string variable and that means that when another user log in they will get their own directory:
And when I try to log in again I get the Powershell Console by default and also in the “right” directory
Lets hope Microsoft set Powershell console as default also in the Core version when Windows 2012 becomes RTM 🙂
Update: I did apparently not follow the tweets so far that I noticed that the PS master Thomas Lee already had made a blog about this, in his post I would just add this to get the users directory
Set-ItemProperty -Confirm -Path $RegPath -Name Shell -Value 'PowerShell.exe -noExit -Command "$psversiontable; cd $env:userprofile"'
Comments
[…] i wrote in my post was that i found the registry key that holds the command prompt but could not alter it. Andrew Morgan had already done all in his post, he also describes how you […]