Everything started out with a simple PowerShell script back in late 2013 when I released the first iteration of the ConfigMgr Prerequisites Tool. Since then, the tool has been updated on several occasions leading up to what I released about half a year ago, version 1.4.2. Up until today, the tool has been downloaded more than 30.000 times, is one of the most popular tools on TechNet Gallery and is used by administrators in the whole world including many MVPs.
Most releases of the tool since it first surfaced, leading up to the current version were written in PowerShell and the UI elements were constructed with Windows Forms. From the start I’ve always wanted to improve, and from the beginning I’ve always been struggling with the fact that time consuming tasks triggered by the tool would cause the UI to freeze. Recently, I’ve been exploring how that issue could be solved by leveraging PowerShell with WPF and XAML instead of Windows Forms. After a lot of research and trial and error, I eventually figured out a way of transforming the ConfigMgr Prerequisites Tool into a multi-threaded script separating the UI from the thread where the time consuming tasks would be running. I therefor decided early that I’d do a complete re-write of the tool, which would prove to be a challenging task. However, after much hard work and long sleepless nights, today I’m happy to announce the next version of the ConfigMgr Prerequisites Tool available to the public.
I’d like to pay a special thank you to everyone who have helped me in testing out this new version, you all know who you are. Your help have been extremely valuable and is very much appreciated.
New features and improvements
In this new version, there are several improvements and it also includes a new set of requested features. You may also notice that some features that were available inn version 1.4.2 have been removed from version 2.0.0. I’m planning on keeping this new version updated as I’ve done in the past, and when time permits also add new features. I already have a few ideas that I decided to leave out of this version, so stay tuned. Let’s take a look at the new version:
- Support for the following ConfigMgr releases:
- ConfigMgr Current Branch (1511, 1602 and 1606)
- ConfigMgr 2012 R2 (including SP1)
- ConfigMgr 2012 (including SP2)
- Support for installing required Windows Features per Site System roles on remote systems leveraging PowerShell sessions
- Code base has been re-written to support multi-threading, allowing for a freeze-free experience
- Support for Windows ADK version 1607
- Improved process for extending your Active Directory schema and adding an Active Directory group to the Systems Management container
- Improvements in how the tool is launched, now introducing an executable wrapper designed to launch the PowerShell script containing the code base for the tool
Download ConfigMgr Prerequisites Tool 2.0.0
You can download the tool from the TechNet Gallery, following the URL below.
Since ConfigMgr Prerequisites Tool 2.0.0 has been completely rewritten, the documentation covering the older version are now obsolete. Below is a list of the tabs available in the tool, giving you an overview of what each section is design to help with during an installation of ConfigMgr.
ConfigMgr Prerequisites Tool 2.0.0 as stated earlier introduces an executable wrapper that has been designed to launch the PowerShell script containing the code base. To launch the ConfigMgr Prerequisites Tool, simply run the ConfigMgrPrerequisitesTool.exe file and select Yes when asked for elevation. If you do not accept the tool to be elevated, it will simply not launch. The whole idea with an executable wrapper came out of the requirement for running a PowerShell script that leverages multiple runspaces (multi-threading) where the UI elements exists in a separate runspace. If the script is not launched with the STA parameter, the UI becomes inoperable and won’t update itself. Simply calling the script from an already elevated PowerShell console doesn’t do the trick either, so the need for a script or executable to launch the tool properly was required. I also think that an executable wrapper enhances the overall experience of using the tool.
If you’re concerned about the code behind the executable, please send me an email and I’ll happily share the code base with you.
Embedded in the executable wrapper, there are a few validation checks that are performed when executed. These checks are as follows:
- Executed on a Windows Server member server
- There are no pending reboots
- Running on Windows Server 2012 and above
As mentioned, some features available in the earlier versions of the ConfigMgr Prerequisites Tool have been removed from 2.0.0. The features include the following:
- Create a NO_SMS_ON_DRIVE.SMS file
- Ability to add Primary Site server to local Administrators group
As I wanted to release this new version, rather than completely re-write everything available in the previous versions, I decided to leave out features that I assume was not commonly used. If you think otherwise, I stand corrected and I urge you to contact me in that regard.
In general, when re-writing the tool, I’ve embedded more error handling into the different functions invoked from UI. If any error occurs, it should be presented in the Log information textbox instead of being hidden away from the user, allowing for easier troubleshooting if something goes wrong.
In this new version, installing the required Windows Features and downloading the prerequisites files have now been combined into a single tab, allowing you to specify the Site type from a drop down menu. Optionally, you could browse for the folder location containing the setupdl.exe from the Configuration Manager installation media if you wish to also download the prerequisite files. Support for installing Windows Features in this tab on remote system is not available, but might become in a later release.
Site System Roles
This part of the tool is the one that has gone through a complete re-design and is also now capable of, in addition to install Windows Features locally on the system where the tool is running on, perform the same action remotely on multiple system specified in a comma separated list. For remote installations, specify the comma separated list like the following sample:
SERVER1, SERVER2, SERVER3
The tool will automatically remove any spaces in the comma separated list if any are detected, if you for some reason might have added any by mistake. Remoting operating by leveraging PowerShell sessions (PSSession). Therefore, it’s required that your environment supports the use of a PSSession, for the tool to successfully establish a connection to the specified servers when attempting to install the Windows Features. Whenever a new PSSession is established, it’s outputted in the Log information textbox giving you a sense of what feature is currently being installed on what system in the list.
In terms of Site System Roles, the list of roles has not been updated with any new roles from previous versions. Below is a list of the supported Site System Roles that the ConfigMgr Prerequisites Tool can prepare your system for:
- Management Point
- Distribution Point
- Application Catalog (effectively both roles)
- State Migration Point
- Enrollment Point
- Enrollment Proxy Point
If you for some reason have managed to launch the ConfigMgr Prerequisites Tool without elevation, and attempt to install Windows Features for e.g. a Management Point on a remote system, you’ll see error messages resembling that the Add-WindowsFeature cmdlet is not available. If you run into this issue, I recommend that you use the executable wrapper to launch the tool properly.
As for the Active Directory part, extending the Active Directory schema is performed like in earlier versions by running the extadsch.exe file on your Schema Master domain controller. What’s different in version 2.0.0 is that the Schema Master domain controller is now automatically detected in your environment and all you need to do is to browse for the Configuration Manager installation media so that it can detect and copy the executable. The user account running the tool would need to be able to access the C$ share on the Schema Master domain controller in order for the copy operation to be successful. Once the copy operation has completed, a PSSession is established and the executable is invoked to extend the schema.
Searching for an Active Directory group that you want to add to the System Management container is now easier than before. You can now directly in the UI specify a name of the group (searching is based upon samAccountName attribute). Once you’ve selected a group, you also have the option to create the System Management container, in the event that it doesn’t yet exist.
This part of the tool does not provide any new capabilities, except from waiting for the adksetup.exe processes to terminate. However, it still supports downloading of your desired version for Windows ADK from Microsoft Download and install it in addition to performing an offline installation when there’s no internet connectivity.
Installing the required Windows Features and configuring WSUS post install to prepare for a Software Update Point Site System server is still supported, and the UI has been updated to enhance the experience. Specify another location for where the WSUS content will be stored if the default C:\WSUSContent is not suitable in your environment. The option to select either a Windows Internal Database or a SQL Server for creating a database for WSUS are still there. When the SQL Server option has been selected, make sure that the user account running the ConfigMgr Prerequisites Tool have the proper permissions for either the default instance or specified one on the SQL Server used.
I’m very excited about this new tool, and must admit that I’m proud to have completed one of my goals to re-write the complete code base for this tool (almost 3000 lines of code). I’ve completed a series of tests to make sure that the tool is ready for use, however, I cannot cover every possible scenario and I do expect there to be bugs in this release. If you’d happen to run into any issue when using the tool, please send me an email or post a comment below and I’ll see what can be done. In previous versions, there were issues when running the tool in a sub-domain due to a bug in a .NET method being used. To overcome this, I’ve simply opted to not invoke that method to check if the current user is a member of the local Administrators group.
Finally, when time permits I’ll post updated versions of the tool incorporating new capabilities. For now, start using the new version and shift-delete the old one! I hope you’ll like this new version and appreciate is as much as I do.
And of course, if you have suggestions for improvements, please let me know.