At first look, developing a GUI utility for configuration of Windows Server Core might sound quite absurd. Alas, the whole point of Server Core is a cut down version of Server OS without the overhead of GUI and having some GUI tool to help you configure it would be like walking backwards.
For the IT veterans this will not be an issue, but being Core enthusiast I was also thinking about those that the steep learning curve of Server Core might scare them away and prevent them from enjoying the benefits Server Core brings with it.
- Product Activation
- Configuration of display resolution
- Clock and time zone configuration
- Remote Desktop configuration
- Management of local user accounts (creation, deletion, group membership, passwords)
- Firewall configuration
- WinRM configuration
- IP configuration
- Computer name and domain/workgroup membership
- Installation of Server Core features/roles
After installing CoreConfigurator (supplied as MSI package), navigate to the folder where it has been installed and execute CoreConfigurator.exe
Tip: you do not actually need to install the application. The 4 files in the program’s folder can be copied and used on other Server Core computers without installing the application)
The main screen:
Here you can view the current activation status, install the Product Key (in case you did not do that during the OS setup) and activate the server:
How it works: all the tasks in the background are achieved by calling slmgr.vbs script (part of the OS) with relevant arguments. Product Key installation is uses the “-ipk” switch and activation is using “-ato” switch.
Display Settings screen gives you an easy was of configuring the display resolution and “Show window content while dragging” feature that can improve the user experience quite a lot if the server is virtualized and you are working on it’s console (notice that this is a per-user versus per-machine setting).
Clicking Time Zone button will bring the standard timedate.cpl control panel applet:
Clicking the RDP button will let you enable/disable Remote Administration connections (you still need to enable the relevant rules in the firewall. You can use the “Remote Administration” rule set in firewall configuration section or manually open the relevant rules using netsh.exe). In addition you can configure here the “Allow connections from previous versions of Windows”:
In this section you can easily create local user accounts, manage the account passwords and add/remove local accounts to local groups:
Managing firewall with command line is not always an easy task. The firewall section is here to help you configure the basic rules so that you will be able to at least connect and administer the server from a remote machine.
Warning: the tool will not display the current state of the already configured firewall rules. The fact is that figuring what rules are already configured is a very hard task and I was looking for a simple way to enable/disable some pre-configured rulesets.
Here you can enable/disable the WinRM. Enabling WinRM is equivalent to running “winrm -quickconfig”. Disabling the WinRM will delete the WinRM listener:
The Networking section is very similar to IP settings dialog you have in GUI-capable Windows versions:
In this section you can rename the computer and join it to a domain/workgroup:
Here you can install/uninstall various Server Core features.
Warning: Figuring out what features are already installed turned out to be not an easy task. The new WMI Win32_ServerFeature class has some limitations that result in feature list being refreshed only after reboot. This means that if you install a specific feature and query Win32_ServerFeature, you will not see the new feature untill you reboot.(I have been pinged by MSFT folks about this and it looks I was partially wrong. We are currently having a discussion about this WMI class – if I get any news, I’ll update the post. Nice to know that there are people there that care about things like this. Thanks Ashish !) The limitations made me go a slightly different route: I am parsing the output of oclist.exe. The downside is that some IIS features after being installed do not show up as installed in the output of oclist.exe. If you want to make sure the specific IIS feature has been installed, look at the event logs. If you know a better way to query in real-time for the list of the installed features, please contact me.