A close friend and former colleague recently gave me the nickname “Mr. No GUI.” Why? I am big believer in Windows Server Core. I do not believe there should be a GUI on a Windows Server unless it is being used as a desktop.
That does not mean that we all have to become command line and PowerShell experts (although if you are an IT Professional: LEARN POWERSHELL!), it just means we need to install the Remote Server Administrative Tools (RSAT) on a desktop computer, and use the same (mostly) MMC consoles to manage our computers remotely.
While you can install the RSAT Tools on both Windows Server and Windows 10/11, the PowerShell cmdlet to do so is different. Why? What is called a Windows Optional Feature in Windows Server is called a Windows Capability in the desktop OS.
But Mitch, why don’t you just add the RSAT tools via the GUI? That is an excellent question, and I am glad you asked. I service customers in both English and French. Conversationally, I am pretty fluent in French. Unfortunately my reading is not quite as good, and because so many server environments are installed in English (even when the desktops are in French), it is not something I have gotten used to. Fortunately, the PowerShell cmdlets are always in English, and it is easier for me.
I am not an advocate of people defaulting to running anything as Administrator unless absolutely necessary. To install the RSAT Tools, it is. Make sure you run PowerShell as an Admin.
Before we install a particular RSAT tool, we need to know the name. We should also see if it is running or not before we go installing it again. Let’s run the following cmdlet:
Get-WindowsOptionalFeature –Featurename *RSAT* –Online | Select-Object Featurename, state
Excellent. We see what is there and what is not. Now let’s install one… for no reason at all, let’s pick the Hyper-V Manager. We’ll run this cmdlet:
Enable-WindowsOptionalFeature -FeatureName RSAT-Hyper-V-Tools-Feature –Online
We see that after a few seconds in returns successfully, and that no restart is required.
On the Windows Client we are going to do the same thing, but there are more steps to it.
1) We not only need the list of the Windows Capabilities, we also need to know the name of the installer. We’ll use the following cmdlet:
Get-WindowsCapability -name *rsat* -Online | Select-Object -Property Displayname, name
**The Hyper-V tools are not listed because Hyper-V is a part of the Windows client OS, and as such is still a Windows Optional Feature.
Notice that the name (which is what we need to install the tool) is not the same as the DisplayName (Friendly name). Notice also that some of the lines end with an ellipsis because there is not enough room on the line (thanks to AD DS and LDS Tools). So once we know which tool we want to install, we will run the same cmdlet again, but modified to the specific RSAT tool we want. For this article we will use Server Manager. Run the following cmdlet:
Get-WindowsCapability -name *Server* -Online | Select-Object -Property Displayname, name
Okay… we can now run the following cmdlet to install it:
Add-WindowsCapability -Name Rsat.ServerManager.Tools~~~~0.0.1.0 -Online
We are good to go… except note that the RestartNeeded is True, so we will need to reboot our computer for this console to work.
Server Core is a great way to reduce the attack surface and patch footprint on our servers. You will also discover that by removing the GUI we can save as much as 10GB storage space per server. In a virtualized environment where every server is stored on an iSCSI SAN device, that can add up to a lot of space.
Server Core is also a great way to discourage people who do not need to be logging on to your servers, which means you will save even more by not automatically creating user profiles for each user.
Administering our servers using remote consoles is an efficient way to work without compromising the advantages, nor having to learn the PowerShell cmdlets to administer all of our server features.
Leave a Reply