How to Install and Configure Windows Server Core

Windows Server (formerly known as Windows Server Core) is a command-line only Windows Operating System. It is this writer’s belief that Windows Server Core will become the defacto standard Windows Server installation and that the Desktop Experience will no longer be the norm. Linux has had such significant success over the years, that Microsoft had to make changes to avoid losing any more ground to Linux based distributions.

Combine that with the efforts Microsoft has made around Azure Command Line, and it is clear that Microsoft is aiming to take Linux on in a way they’ve never done before. By making the Windows Server experience more familiar to a Linux System Admin, Microsoft hopes to encourage more of those SysAdmins to consider Windows. Only time will tell if it works, but for now we’re going to talk about Windows Server 2022 Core and get it installed and configured in our lab.

NOTE: I found that I had this post in my drafts saved from a long time ago, and I wanted to finish it and get it posted out here. Mostly because I’ve had to refer back to these instructions a few times before for a couple specifics, and if it is posted, I don’t have to sign in to get to them 🙂

DISCLAIMER

Please understand that the content herein is for informational purposes only. This existence and contents shall not create an obligation, liability or suggest a consultancy relationship. In further, such shall be considered as is without any express or implied warranties including, but not limited to express and implied warranties of merchantability, fitness for a particular purpose and non-infringement. There is no commitment about the content within the services that the specific functions of the services or its reliability, applicability or ability to meet your needs, whether unique or standard. Please be sure to test this process fully before deploying in ANY production capacity, and ensure you understand that you are doing so at your own risk.

Table of Contents

Notes Before We Start
Installing App Compatibility Tools
Configuring Additional Storage
Bonus Section
Conclusion


Notes Before We Start

If you aren’t sure by now, I like starting things off with some context. In this case, it is because I chose to do Windows Server 2022 Core Evaluation for this. I covered the specifics of why I chose this in the first post here; I won’t go over it again in this post. However, I did want to mention a few other points.

  • If you are going to use Server Core in the lab, I highly recommend installing the Server Core App Compatibility Feature on Demand tool set. The main reason is because if you are newer to Server Core, it will also ease the transition from the Desktop Experience version of Windows Server. More on this later…
  • I recommend creating a snapshot of your VM after you have Windows installed. After the server OS is installed, you add it to the domain, and you are ready to begin testing, it is a good idea to get a snapshot, in case you need to revert back and start over. I failed to do this the first time and ended up reinstalling the OS at one point because I broke something I shouldn’t have. It’s a good practice anyways, but definitely when learning something new in the lab.
  • With those points covered, I should also mention that I will start the next section with the expectation that you already have Windows Server Installed and added to your domain (if you are going to use AD auth). This is mostly to save time in this post. If you need help, I have an article here where I break down a basic Windows Server installation. Server Core is mostly the same, although there is an expectation of a small amount of PowerShell knowledge to get the App Compatibility Features installed.
  • Also, if you are using Server Core, I recommend creating a share on a separate server where you can download files to. This will make it easier moving files in and out of your Server Core machines. I have a separate server where I created my SMB share. Everything I needed has been moved into the folder with the share, and it makes it easier to move anything into Server Core. I also used it to save error logs.
  • I wrote up a blog previously where I recommended doing this in your lab, and included drive mapping in your Group Policy, so that all your domain servers would get the mapping automatically. You can check that out here.

I think that is all we need to get started. Lets go!


Installing App Compatibility FOD Tools

This is one of the things I highly recommend for anyone just getting started with Windows Server Core. Not to mention, that some Windows Server Applications may not be fully compatible with Server Core without some of these features, (Looking at you File Explorer) so they may be a necessity.

Here are the core components that come with the App Compatibility Feature on Demand tools.

  • Microsoft Management Console (mmc.exe)
  • Event Viewer (Eventvwr.msc)
  • Performance Monitor (PerfMon.exe)
  • Resource Monitor (Resmon.exe)
  • Device Manager (Devmgmt.msc)
  • File Explorer (Explorer.exe)
  • Windows PowerShell (Powershell_ISE.exe)
  • Disk Management (Diskmgmt.msc)
  • Failover Cluster Manager (CluAdmin.msc)

With Windows Server 2022, you also gain access to these additional administrative tools:

  • Hyper-V Manager (virtmgmt.msc)
  • Task Scheduler (taskschd.msc)

Online Installation

This is definitely the easiest and quickest way to get these tools installed. Using PowerShell, you can use the Add-WindowsCapability cmdlet to install these features in only a few minutes.

Add-WindowsCapability -Online -Name ServerCore.AppCompatibility~~~~0.0.1.0

Offline Installation

An offline installation is a great example of why you should have a file share available to your Server Core instance, especially if you expect to deploy more than one server. You will need the files downloaded somewhere and available to the Server Core instance over the network. Otherwise, you would need to load the appropriate ISO in your Hypervisor, Mount the disc, then download the files locally.

Either way, Microsoft has some good documentation here, that you should check out for offline installation. Since I can’t improve upon their process, why repeat it. Server Core App Compatibility Feature on Demand in Windows Server | Microsoft Learn


Configuring Additional Storage

In my Server, I am adding an additional drive so that I can install SQL Server Developer Edition on it and not risk it filling up my C: Drive (Also cause its best practice…). Follow these steps to bring the disc online and configure it to use in Windows.

  1. Log into one of the cluster servers and start up DISKPART.
start diskpart to format the spare storage
  1. Run the following commands in order to prepare the disk:
    1. list disk
    2. select disk 1 (or whatever the available non-OS disk is)
    3. online disk
    4. attrib disk clear readonly
    5. create partition primary
    6. format fs=ntfs quick
    7. exit
DISKPART complete for the storage
This is what the whole exchange should look like
  1. From the PowerShell console (make sure you exit DISKPART), type mmc and hit Enter. From here, we can confirm the drive is connected and ready to go.
  2. Click File –> ‘Add/Remove Snap-In’ –> Select ‘Disk Management’ and hit the arrow over to add it to the console.
using disk management to make sure the drive is connected
  1. As long as the disk is list as ‘Online’, the format is NTFS and the disk says ‘Healthy’, you are good to go. You’ve successfully added a second drive to your Server Core instance.
successfully added the second disk and confirmed it in disk management
  1. Now if you plan/expect to use this drive from scripts or in File Explorer, you should probably give it a letter to make it easier to use. Right-Click Disk 1 and Choose ‘Change Drive Letter and Path’.
  2. Click Add and Choose a Drive letter on the box that pops up. Then hit OK.
giving our extra disk a drive letter in Windows Server Core
  1. Now if you open File Explorer, you should see your new drive listed with the letter you chose.

Bonus Section

So real quick I wanted to add this section because I wanted to highlight one more reason why Windows Server Core isn’t as daunting as some might suspect. Another factor with helping to manage Windows Server Core is that group policy still works. In a previous post, I talked about how I added my Windows Server Evaluation license re-arm script to Group Policy as a scheduled Task. You can see clearly here that it was added automatically from group policy.

This is just one less thing I have to configure manually, and one example of how Server Core should be used more often with less stress about how different it will be.


Conclusion

There you have it. This is now added to the archives of my blog and is available for reference. I originally started writing this mid-2022 because I wanted to emphasize to people that Windows Server Core isn’t nearly as scary as it might seem. For Administrators who are only used to Windows Server Desktop Experience, trust me you will be fine.

If you still aren’t sure about why you might want to make the switch, look closer as that Disk Management screenshot showing how much space is being used on the C: Drive. You don’t get that small of a footprint with the desktop experience.

The lab is meant to be a place of learning, and I hope that this might encourage you to use Server Core in the lab more often. If by chance you were inspired by this let me know! Hit me up on Twitter @SeeSmittyIT to let me know what you thought of this post. Or if you are avoiding the bird site, I’m also posted up on Mastodon @[email protected]. Thanks for reading!

Smitty

Curtis Smith works in IT with a primary focus on Mobile Device Management, M365 Apps, and Azure AD. He has certifications from CompTIA and Microsoft, and writes as a hobby.

View all posts by Smitty →