2021 Annual Petri Reader Survey - We want to know what's important to you! 2021 Annual Petri Reader Survey - We want to know what's important to you!
System Center

Deploying System Center Using the PowerShell Deployment Toolkit

What’s in a name? With the name “PowerShell Deployment Toolkit,” (PDT) one would be forgiven for assuming that this utility is some silly script created to assist those of us who are still living with some aging versions of Windows Client OS in our environment and and who need to get PowerShell deployed to these nodes.

PowerShell Deployment Toolkit (PDT) and System Center 2012 SP1/R2

Don’t get the wrong impression. The PowerShell Deployment Toolkit is a work of art and a mandatory utility for anyone who has the slightest requirement for getting an environment installed for System Center 2012 SP1 or R2. Locked behind this unassuming name is a super powerful set of three PowerShell scripts and two XML files that will forever change how you will prepare your lab, proof of concept – or, for the very accomplished – potentially your production installations.

At the time of this writing, PDT is floating at version 2.5.2708 and fully supports the deployment of both System Center 2012 SP1 and R2. It also will cater for building out an Active Directory Domain if you prefer to lab your installations – and of course you will require a SQL Server, which the toolkit is more than willing to also accommodate for you.

Getting the Bits

The first step in getting going with PDT is to take a quick trip to the Technet Gallery, where you will find the latest and greatest versions of the PowerShell Deployment Toolkit. Download this archive, mark it as unblocked, and extract the content.

You are going to need a working folder, which you will also share out once everything is prepared. This working folder will be home to the PDT files and also to all the media we need for deploying a System Center Installation. As you begin your folder will look similar to my sample (shown below).

PowerShell Deployment Toolkit installation

Now, before we get too excited, the first thing i like to do is edit the Variable.xml file and change the value for the Download setting to point to my working folder (this is also a good reason for sharing the folder), which in my case will look as follows.

PowerShell Deployment Toolkit installation

I am configuring the tool to download on the fly to $SystemDrive\Temp, and then place the files in S:\Workspace\PDT\Installer as the final destination. to define these I am using the following parameters

<Variable Name="TempPath" Value="$SystemDrive\Temp" />
<Variable Name="Download" Value="S:\Workspace\PDT\Installer" />

I have a third working parameter set called Source Path. This is is the UNC, or mount point, connected to the initial share I created for the PDT folder. It is utilized when I choose to execute the PDT Installer from a VM, which is a member of the target environment I am deploying. For example, my environment’s domain controller.

Downloading the Components

Our next task is to grab all the different components which will be required for installing our Windows Server System Center environment. PDT will assist us for the vast majority of these, reaching out to Microsoft and downloading all the necessary components. However, there are a few that PDT will not be automatically downloading, so we must take care of these by hand.

To determine which components PDT will not download, we can upload the workflow.xml file into a variable. As this is pure XML, we can easily create a simple query that will identify the components we must download. The following sample will complete this procedure for us.

$Workflow = [XML] (Get-Content ".\Workflow.xml")
$Workflow.Installer.Installables.Installable | foreach {If (! $_.Download.URL) { Write-Host $_.Name }}

The results of this query will be similar to the following.

PowerShell Deployment Toolkit download variable

Ignoring both Integrations and Prerequisites from this list, we can quickly determine that both Windows Server 2012 and Windows Server 2012 R2, along with the components of System Center 2012 R2, will need to be manually downloaded. These can be located on the Microsoft servers and placed in their respective folders in the PDT Installer tree. You can use the following as a reference.

│   ├───Download
│   │   ├───Prerequisites
│   │   │   └───ADK81
│   │   ├───SharePoint2010Module
│   │   ├───SharePoint2010SP2Foundation
│   │   ├───SQLServer2008R2
│   │   ├───SQLServer2012.en
│   │   │   └───SQLFULL_x64_ENU
│   │   ├───SystemCenter2012R2
│   │   │   ├───AppController
│   │   │   │    └SW_DVD5_Sys_Ctr_2012_R2_MultiLang_AppCont_MLF_X19-18210.ISO.ISO
│   │   │   ├───ConfigurationManager
│   │   │   │    └SW_DVD5_Sys_Ctr_2012_R2_MultiLang_ConfMgr_ML_MLF_X19-18215.ISO
│   │   │   ├───DataProtectionManager
│   │   │   │    └SW_DVD5_Sys_Ctr_Datacenter_2012_R2_MultiLang_DPM_MLF_X19-22687.ISO
│   │   │   ├───OperationsManager
│   │   │   │    └SW_DVD5_Sys_Ctr_2012_R2_English_OpsMgr_MLF_X19-18307.ISO
│   │   │   ├───Orchestrator
│   │   │   │    └SW_DVD5_Sys_Ctr_2012_R2_MultiLang_Orch_MLF_X19-18211.ISO
│   │   │   ├───ServiceManager
│   │   │   │    └SW_DVD5_Sys_Ctr_2012_R2_MultiLang_SvcMgr_MLF_X19-18213.ISO
│   │   │   └───VirtualMachineManager
│   │   │             └SW_DVD5_Sys_Ctr_2012_R2_MultiLang_VMM_MLF_X19-18212.ISO
│   │   ├───SystemCenter2012SP1
│   │   │   ├───AppController
│   │   │   ├───ConfigurationManager
│   │   │   ├───DataProtectionManager
│   │   │   ├───IntegrationPacks
│   │   │   ├───OperationsManager.en
│   │   │   ├───Orchestrator
│   │   │   ├───ServiceManager
│   │   │   └───VirtualMachineManager
│   │   ├───WindowsServer2012
│   │   │    └9200.16384.WIN8_RTM.120725-1247_X64FRE_SERVER_EVAL_EN-US-HRM_SSS_X64FREE_EN-US_DV5.ISO
│   │   └───WindowsServer2012R2
│   │        └9600.16384.WINBLUE_RTM.130821-1623_X64FRE_SERVER_EVAL_EN-US-IRM_SSS_X64FREE_EN-US_DV5.ISO
│   ├───Prerequisites
│   ├───Sharepoint2012Module

After you have placed each of the resources in the respective location, you can proceed to use the PDT utility called Downloader.ps1 to grab all the other components, after which it will then process and extract both the components it downloaded as well as the items you manually placed so that they are prepared for installation.

Getting Started

Once you have completed this, you are pretty much ready to get started. In our next post we will take a closer look at the variables.XML file, and walk through the procedure of editing this file to automatically deploy your first System Center component.

Related Topics:


Don't have a login but want to join the conversation? Sign up for a Petri Account

Comments (10)

10 responses to “Deploying System Center Using the PowerShell Deployment Toolkit”

  1. Gregory Suvalian

    What powershell editor are you using?
    • damian_flynn

      Greg, I am actually using Visual Studio. One of my fellow MVPs has created a new standalone PS integration called PoshTools - https://github.com/adamdriscoll/poshtools/releases/download/v0.6.5-beta/PowerShellTools.vsix It is amazing, and Ill cover this in a blog post very soon :)
  2. Powershell Deployment Toolkit: Variables.XML

    […] our previous post on how to use PowerShell Deployment Toolkit to deploy System Center, your PDT share is now in place and we can begin to leverage this great tool to help is quickly […]
  3. Dell’s Digest for January 15, 2014 | ServerKing

    […] Deploying System Center Using the PowerShell Deployment Toolkit by Damian Flynn […]
  4. Jay

    This happens when I run Install,ps1 and I have the source files already Validating (Local)... Validating media... Filter Pack 2.0... Failed C:TempPrerequisitesFilterPack20FilterPack64bit.exe missing Microsoft Chart Controls... Failed C:TempPrerequisitesChartMSChart.exe missing Report Viewer 2008 SP1 Redistributable... Failed C:TempPrerequisitesRV2008ReportViewer.exe missing Report Viewer 2012 Redistributable... Failed C:TempPrerequisitesRV2012ReportViewer.msi missing Server Speech Platform Runtime... Failed C:TempPrerequisitesSpeechSpeechPlatformRuntime.msi missing Server Speech Recognition Language en-US... Failed C:TempPrerequisitesSpeechMSSpeech_SR_en-US_TELE.msi missing SharePoint 2010 Foundation... Failed C:TempSharePoint2010SP2Foundationsetup.exe missing SharePoint 2010 Module... Failed C:TempSharePoint2010ModuleSPModuleSPModule.setupInstall-SharePoint.ps1 missing Silverlight... Failed C:TempPrerequisitesSilverlightSilverlight_x64.exe missing SQL Server 2008 Analysis Services ADOMD.NET... Failed C:TempPrerequisitesSQL2008ADOMDSQLSERVER2008_ASADOMD10.msi missing SQL Server 2008 Native Client... Failed C:TempPrerequisitesSQL2008NCsqlncli.msi missing SQL Server 2008 R2 SP2 SSRS... Failed C:TempPrerequisitesSQL2008R2RSSPrsSharePoint.msi missing SQL Server 2012... Failed C:TempSQLServer2012.ensetup.exe missing SQL Server 2012 Analysis Management Objects... Failed C:TempPrerequisitesSQL2012AMOSQL_AS_AMO.msi missing SQL Server 2012 Command Line Utilities... Failed C:TempPrerequisitesSQL2012CLUSqlCmdLnUtils.msi missing SQL Server 2012 Native Client... Failed C:TempPrerequisitesSQL2012NCsqlncli.msi missing SQL Server 2012 SP1... Failed C:TempSQLServer2012.enUpdatesSQLServer2012SP1-KB2674319-x64-ENU.exe missing SQL Server 2012 SP1 CU8... Failed C:TempSQLServer2012.enUpdatesSQLServer2012-KB2917531-x64.exe missing SQL Server 2012 System CLR Types... Failed C:TempPrerequisitesSQL2012CLRSQLSysClrTypes.msi missing Sync Framework Runtime 1.0... Failed C:TempPrerequisitesWSFSynchronization.msi missing System Center 2012 R2 App Controller... Failed C:TempSystemCenter2012R2AppControllersetup.exe missing System Center 2012 R2 Configuration Manager... Failed C:TempSystemCenter2012R2ConfigurationManagerSMSSETUPBINX64setup.exe missing System Center 2012 R2 Configuration Manager Prerequisites... Failed C:TempSystemCenter2012R2ConfigurationManager.DLConfigMgr.Manifest.cab missing System Center 2012 R2 Data Protection Manager... Failed C:TempSystemCenter2012R2DataProtectionManagerSCDPMSetup.exe missing System Center 2012 R2 Management Packs... Failed C:TempSystemCenter2012R2ManagementPacksMicrosoft.Windows.Server.Library.mp missing System Center 2012 R2 Operations Manager... Failed C:TempSystemCenter2012R2OperationsManager.ensetup.exe missing System Center 2012 R2 Orchestrator... Failed C:TempSystemCenter2012R2OrchestratorSetupOrchestrator.exe missing System Center 2012 R2 Service Manager... Failed C:TempSystemCenter2012R2ServiceManagersetup.exe missing System Center 2012 R2 Virtual Machine Manager... Failed C:TempSystemCenter2012R2VirtualMachineManagersetup.exe missing Visual C++ 2010 Redistributable... Failed C:TempPrerequisitesVC2010vcredist_x64.exe missing WCF Data Services 5.0... Failed C:TempPrerequisitesWCF50WcfDataServices.exe missing Windows Automated Deployment Kit 8.1... Failed C:TempPrerequisitesADK81adksetup.exe missing Windows Identity Foundation 3.5... Failed C:TempPrerequisitesWIF35Windows6.1-KB974405-x64.msu missing Windows Server 2012... Failed C:TempWindowsServer2012setup.exe missing Windows Server 2012 R2... Failed C:TempWindowsServer2012R2setup.exe missing Validation failed PS F:PDT2.64.2608>
  5. Jay

    I have the ISOs in folders an extracted the ISOs also. I named the folder same as the example above.
  6. PowerShell Deployment Toolkit – Deploying an Operations Manager 2012 R2 Lab | Kristopher Jon Turner

    […] Deploying System Center Using the PowerShell Deployment Toolkit by Petri […]
  7. PowerShell Deployment Toolkit V3.0 – Desired State Configuration - Damian Flynn MVP

    […] Deploying System Center Using the PowerShell Deployment Toolkit […]

Leave a Reply

Register for the Hybrid Identity Protection (HIP) Europe Conference!

Hybrid Identity Protection (HIP) Europe 2021 - Virtual Conference

Mobile workforces, cloud applications, and digitalization are changing every aspect of the modern enterprise. And with radical transformation come new business risks. Hybrid Identity Protection (HIP) is the premier educational forum for identity-centric practitioners. At the inaugural HIP Europe, join your local IAM experts and Microsoft MVPs to learn all the latest from the Hybrid Identity world.