Interface Technical Training

How to make PowerShell the default console for Windows Server Core

In a previous blog I demonstrated how to autologon a windows server using PowerShell. (You should read that one first). On Windows Server Core I prefer to have PowerShell as the default console instead of the command prompt. There is an Old-Skool way of changing this that still works today.

The registry key “HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon” contains a key named “Shell”. The default for this Explorer.exe and this launches the old command prompt.  If you change this to PowerShell, then when Core launches, PowerShell will be your default.

There is no security issue with this as in the last blog regarding AutoLogon, so you can safely do this in production. As a side note, my setup script for my lab environments perform both tasks, AutoLogon and making PowerShell the default. For my production servers I just only perform the PowerShell default task. You can do it standing at a single server and to multiple computers using PowerShell Remoting.

Single Server

PS C:\> Set-ItemProperty -Path 'HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon' -name Shell -Value 'PowerShell.exe -noExit'

Multiple servers using PowerShell Remoting

PS C:\> Invoke-Command -ComputerName S1, S2 -ScriptBlock { Set-ItemProperty -Path 'HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon' -name Shell -Value 'PowerShell.exe -noExit'}


Knowledge is PowerShell,

Jason Helmick
Director of PowerShell Technologies
Interface Technical Training

Share your thoughts...

We encourage people to join in on the discussion. Please keep in mind however, that all comments are moderated according to our comment policy, and all links are nofollow. Do not use keywords in the name field. Let's keep the conversation professional and meaningful.