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.
Download ConfigMgr Prerequisites Tool 2.0.0 on TechNet Gallery
Documentation
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.
Site Configuration
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.
Active Directory
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.
Windows ADK
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.
WSUS
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.
Summary
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.
Happy installing.
[…] Link: ConfigMgr Prerequisites Tool […]
Hi. Firstly thanks for this excellent tool.
However, there does not appear to be any documentation for the ‘System Managerment Container’ section, nor does it appear to work at all. The search button does nothing, the ‘Create the System Management Container if it doesn’t exist’ does nothing.
Please advise, this is a much saught after shortcut from my perspective.
Many thanks.
Mike C
Also, here are the modifications I applied to your script to be able to download and install Windows ADK v1703 :
In PS Script, line 1247, add :
“System.Windows.Controls.ComboBoxItem: Windows ADK 10 1703” {
$ADKDownloadURL = “https://go.microsoft.com/fwlink/p/?LinkId=845542”
$ADKVersion = “Windows ADK 10 1703”
}
And in XML file, line 86, add :
Regards, and thanks a lot for your awesome job !
Mmmh, I guess the XML code got parsed and is not displayed 🙁
Hi Nickolaj,
I encountered a problem today, with setupdl.exe running in an infinite loop. I checked in the script to see why, and there’s a loop running setupdl.exe until the prereqs file count is greater or equal to 59. It looks like ConfigMgr 1606 setupdl downloads 56 files and creates a directory, so C:\CMPrereqs> $(Get-ChildItem -Path .).Length = 57 on my lab server. I changed the line and everything works fine now 🙂
Much Much appreciated!
Does the tool log what is has done anywhere? I like the output while its working but would like please to see a logfile, if one doesn’t already exist, to show what has happened for review.
i confirm, wsus part not finishing got the same error, sql 2016 on server 2016
Hi When I try to run the Install from the WSUS tab it all validates, then after starting “WSUS post install config” it ends in “Unhandled error occurred after WSUS pos installtion config completed. Exit code:1.
I enter my sql fqdn and with and without my default instance name entered.
Seen this before?
I would like to see those two items you removed put back into 2.0. I find it very useful:
Create a NO_SMS_ON_DRIVE.SMS file
Ability to add Primary Site server to local Administrators group
[…] Andersen is the author of the very popular ConfigMgr Prerequisites Tool. You can reach him […]
Thank you for your great Job, Question, trying to use your ConfigMgr Prerequisites Tool 2.0.0, just to Deploy ADK 1067 on Windows 2012 R2 in either online or offline mode does not enable install button,
Hi,
Did you launch the tool by using the ConfigMgrPrerequisiteTool.exe wrapper? If not, the UI will not be responsive and work well.
Regards,
Nickolaj
Dear Nickolaj. To Your question, Yes,
I launch a PS as Admin, and from downloaded path Windows PowerShell
E:\Soft\ConfigMgrPrerequisitesTool2.0.0
PS E:\Soft\ConfigMgrPrerequisitesTool2.0.0> .\ConfigMgrPrerequisitesTool.exe
Pending reboot validation checks passed
Supported product type detected: Server
Supported build number detected: 9600
Detected PowerShell script file: E:\Soft\ConfigMgrPrerequisitesTool2.0.0\Invoke-ConfigMgrPrerequisitesTool_2.0.0.ps1
PS E:\Soft\ConfigMgrPrerequisitesTool2.0.0>
In my previous Failed test, your tool was executed on a Windows 2012 R2 server, with 1511 ADK version plus 1511 hotfix installed, and dis not work, Today I rerun your tool, in a Windows 2012 R2 fully patched, with no previous ADK installation and the tool was working as is expected, been able to install ADK version 1607, I test both modes, online and Offline. ConfigMgrPrerequisitesTool2.0.0 deploy
following ADK version 1607 features:
Deployment Tools
Windows PE
USTM
I also rerun the tool in a 1606 CAS server and a 1606 Primary server, and the tool work as is expected, So, I can not offer you a clue about what did the tool to fail, with the exception of previous ADK 1511 with hotfix, was installed. This version was previously uninstalled and the server was rebooted until to execute your tool. So can not offer you more info about the issue, that right now is out.
Thank you for your time and effort,
Hi,
ConfigMgr Prerequisites Tool doesn’t support removing previous versions of ADK that are installed on the system, so the experience with a failed installation in your first test is expected.
Regards,
Nickolaj
Hi Nickolaj
Thank you for your quick reply, just as info, previous ADK version was manually removed using add remove programs, server was rebooted, and your tool was executed after that reboot.
I got this same problem though I’m at a loss to explain it. What I can say is this (and I know this sounds odd):
If I had the 3 files (exe, ps1 and xaml) under ‘C:\Temp\PreReqTool 2.0’ the INSTALL button wouldn’t work. If I took the files out of the PreReqTool 2.0 folder and just put them flat into the C:\Temp it did work. I also had the problem on another server under the PreReqTool 2.0 folder and it didn’t work in that either. Took it out and it worked. Seems it might be something to do with not liking the space in the folder name.
Great stuff as always, well done! Congrats on making the move to WPF 🙂
You are the craziest guy I have ever seen. Thanks for the good work!
[…] Andersen hat auf seinem Blog das ConfigMgr Prerequisites Tool in der Version 2.0.0 veröffentlicht. Das Tool unterstützt Euch bei der Installation und Konfiguration der Prerequisites, um eine […]
Amazing work,
How the hell do you get your code so neat and organised!
Excellent work!! This is definitely going into my toolbox!
Thanks for creating this.