I’ve always been a big fan of the PrettyGoodFrontEnd written by Johan Arwidmark. Originally written as a FrontEnd for ZTI deployments on SMS with BDD 2007 it has recently been updated for ConfigMgr (SCCM) 2007 Deployments with MDT 2010 integration. Similar to the Custom Boot Wizard I’ve mentioned already a couple times on this blog, Johan is now also using webservices to query the necessary information from MDT, Active Directory and ConfigMgr (SCCM). For this he wrote his own webservice reduced to the necessary functions and also published the full source code of the webservice to show how easy it actually is, to create your own. The complete project including the webservice binaries, the source files and full documentation is hosted on CodePlex (http://prettygoodfrontend.codeplex.com/).
But as a frequent reader of this Blog you are probably asking yourself, if you now need to add another webservice just to get this great FrontEnd working? Luckily it’s not a big deal to get Johans FrontEnd speaking to the Deployment Webservice that is also available on CodePlex. I’ve recently published a new version of this and the only thing I really had to add to get it working was a specific function for MDT that queries for all Roles assigned to a specific computer (That actually had been scheduled for the next version, so I just brought it a bit forward 😉 ).
As I just wanted to create a simple “Clone” of the this FrontEnd, I left almost everything the way it was and just implemented a few small changes.
- The PGFE assumes that a computer has only one single Role selected as maximum. I changed this into a full list of Roles in alphabetical order where you can select multiple Roles at the same time (Inspired by a great article from Michael Niehaus). As a goodie it will also query the MDT Database and pre-select all Roles already configured for the current computer.
- Extended the OU part to show a hierarchy of OUs.
- Added a custom property called “DeleteComputerFirst”. On default the FrontEnd would always delete the current computer from ConfigMgr (SCCM). I tweaked this behavior a bit. So this will happen only if you set this property to “YES”. On default it is now set to “NO” (or “False” in an earlier version”. But any value different then YES will prevent it from deleting the computer).
- Added the possibility to work with several primaries. The computer will query for the responsible Assigned Site Code itself.
This way the documentation from Johan is still valid, they behave the same way and if you are interested, you can just take both of them for comparison to get a better idea on how you could implement your own changes into this. Some parts, especially the one about adding the computer to a collection and waiting for the advertisement has also been used already in the Custom Boot Wizard. Please have a look on the before mentioned link to see how you can configure the necessary collections and influence what collections/task sequences will be shown. However you see it’s possible to combine all these things into something that really fits your needs.
Additionally you also need to have the “Deployment Webservice” installed. It is a bunch of more than 140 webservice functions covering typical tasks from Active Directory, MDT and ConfigMgr(SCCM) during Deployments. There is a simple Step-By-Step Installation Guide available on CodePlex.
Now to get it finally working you need to follow some simple steps:
- Download the most recent files from Codeplex and extract them to a temporary folder
- Customize the customsettings.ini file found in the “DeployScripts” folder
- replace “YourWebserver/YourWebserviceDirectory” with the server and path of your Deployment Webservice
- configure the properties defined in the “Initialize” and “Default” sections in the customsettings.ini
- DeleteComputerFirst – Set this to True if you would like to always delete the computer account from SCCM
- OUParentPath – The FrontEnd will show all OUs directly below this path for selection.
- OULevel – Defines how deep the OU search will iterate. Default is 0 which will show only the OUs directly below the OUParentPath. Be aware that traversing a large hierarchy of OUs might cause a timeout on the webservice call.
- AssignedSite – Set this to the default AssignedSite code in case no valid one could be found.
- Optional: UserID, UserPassword and UserDomain to supply credentials in case your webservice is restricted
- Finally you need to integrate these files into your current Boot image by either
- creating a new Boot image and point the “Extra Directory to add:” to the Directory your have extracted all the files to
- mounting the wim, copy the complete folder structure to the root, save the changes and update your Boot Image in ConfigMgr
Tip 1: You might want to have a look on a recent post from Jason Scheffelmaer, who showed how to move such wizard files of the boot disk and store them on a network location. (Jason Scheffelmaer: Moving the MDT Wizard off your boot disk). The steps described apply to the MDT Wizard but the idea also works for custom wizards.
Tip 2: For testing purposes you also might want to have a look on my last post Testing your wizard files, Gather steps, customsettings.ini, etc. Just follow the steps described to be able to test your wizard without doing a full deployment every time. (Just run the frontend.wsf file in the test folder and watch the logs for errors.) You might just want to comment out the “AddComputerToCollection” step so that your current computer does not suddenly get re-imaged 😉
I hope you enjoy this FrontEnd, thanks to Johan who has (again) done a great job on it. I appreciate all your comments and feedback on this and as always, it is provided AS IS. So be sure to test it well before putting it into production.