In my environment, I have a Windows Server (2019) Core edition server installed with Exchange 2019. Most of the time, I have to get on the server to run PowerShell commands for maintenance purposes, etc…
Well, by default, Windows Server Core opens the command prompt when you logon and then I have to manually open PowerShell from there to run cmdlets, etc…
However, if you would like to change the default cmd to PowerShell, you can change it by changing the Registry value.
The Registry that I’m talking is located under the following location:
The easiest way I see to change the value is to use the Set-ItemProperty cmdlet within PowerShell.
Open Windows PowerShell within Server Core command prompt. You can type “PowerShell” on your command prompt.
Then, enter the following command on PowerShell console and hit enter:
Set-ItemProperty -Path 'HKLM:\Software\Microsoft\Windows NT\CurrentVersion\WinLogon' -Name Shell -Value 'PowerShell.exe'
Once completed, you will need to reboot the computer from PowerShell:
When the computer has rebooted and you have logged on, PowerShell should load by default instead of Command Prompt.
EVEN MORE INFORMATION
Now, since I have an Exchange Server installed on this server, there is a Command in the $bin directory called LaunchEMS.cmd that will load the Exchange Management Shell for you. So instead of loading just PowerShell, I tell WinLogon to load Exchange Management Shell so that I do not have to do any additional typing or searching for EMS on the box. Remember, Server Core has no GUI!
I run the same commands as above, but just change the value to LaunchEMS.cmd
Set-ItemProperty -Path 'HKLM:\Software\Microsoft\Windows NT\CurrentVersion\WinLogon' -Name Shell -Value 'LaunchEMS.cmd'
Then Restart the Computer:
Once Rebooted, you can logon and EMS will be the only window prompt that loads in the shell!
NOTE: You can always run cmd from the prompt to open Command Prompt and also run PowerShell.exe to open regular PowerShell from the EMS Session Window.