Extending SConfig in Azure Stack HCI 20H2

As some of you might have seen earlier this month, I tweeted my excitement at the fact that the Azure Stack HCI 20H2 preview included a newly rebuilt SConfig utility, written in PowerShell!
Incase you missed it, #AzureStackHCI includes a completely re-written version of SConfig! The best part? It's written in #PowerShell, so why not start extending it? :D I spent a couple of minutes and added a little extra menu for my own use#MVPBuzz #AzSHCI pic.twitter.com/JyUmFiM4hC
— Ben Thomas | @ben.hybridby.design BlueSky (@NZ_BenThomas) September 11, 2020
For those not familiar with SConfig, it has been an important tool for Server Core users for a while now, as, without a GUI, it is the quickest and easier way to perform basic maintenance and troubleshooting (at least until Windows Admin Center).
Some of the tasks it’s capable of include:
- Joining a Domain or Workgroup
- Changing the Computer name
- Enabling Remote Management
- Enabling Remote Desktop
- Finding and applying Windows Updates
- Changing IP Address and DNS Settings
- Changing Date and Time settings
But these were all written in VBScript, a language long replaced by PowerShell, and so SConfig remained largely untouched from when it originally turned up in Windows Server 2008.
Now that it has been rewritten, I’m sure Microsoft has plans to improve its capabilities, but in the meantime, I thought I’d give it a go.
xSConfig
Enter the xSConfig PowerShell Module.
The idea behind this module is to take the new SConfig module as a base and expand it to do more. In its current form, it’s very basic, but I wanted to get something out quickly to show what was possible now, and also get feedback on where people want to see it going.
Currently, it’s limited to the following:
- Adding a new ‘Extra’ menu option to the home screen of SConfig
- Displaying the name of the Cluster the node is part of
- Whether or not Storage Spaces Direct (S2D) is enabled or not
- What the health status of the Storage Subsystem is if S2D is enabled
- The number of Storage Pools and their names/health/size/utilization
- The number of Virtual Disks and their names/health/size/utilization
- The nodes in the cluster and their statuses
Demo
This is all well and good, but below you can see a demo of this in action!
Installing the Module
Now, because this needs the new SConfig Module, it’s only compatible with the new Azure Stack HCI 20H2 OS (for now).
The module is published to the PSGallery, so it can be installed like any other module
Install-Module -Name xSConfig
Once it’s installed, you can access it any time by leaving the default SConfig menu (option 15) and invoking it with
Invoke-xSConfig
Where to next
Well, the module is very basic at the moment, so I have some ideas around where I want to go next, but what I want is feedback from the community!
So please, download the module, give it a try, and then head over to GitHub and let me know what you think! Raise issues for features you want to see, raise issues for bugs you hit, raise Pull Requests if you want to add your enhancements even.
In the meantime, I’m going to be working on finishing up the Unit tests for what’s there already and getting an Azure DevOps Pipeline in place to help out, and then you might see some more features coming…
- Creating Virtual Disks
- Expanding Virtual Disks
- Creating Clusters
- Adding Cluster nodes
- Managing Virtual Switches
- Deploying AKS on HCI
The possibilities are nearly endless with PowerShell under the hood.
I look forward to hearing what everyone thinks, so let me know, on here, on Twitter (@NZ_BenThomas) or anywhere else you find me!