application-workloads/sccm/sccm-technicalpreview/DSC/ScriptWorkFlow.ps1 (87 lines of code) (raw):
Param($DomainFullName,$CM,$CMUser,$DPMPName,$ClientName)
$Role = "PS1"
$ProvisionToolPath = "$env:windir\temp\ProvisionScript"
if(!(Test-Path $ProvisionToolPath))
{
New-Item $ProvisionToolPath -ItemType directory | Out-Null
}
$ConfigurationFile = Join-Path -Path $ProvisionToolPath -ChildPath "$Role.json"
if (Test-Path -Path $ConfigurationFile)
{
$Configuration = Get-Content -Path $ConfigurationFile | ConvertFrom-Json
}
else
{
if($ClientName -eq 'Empty')
{
[hashtable]$Actions = @{
InstallSCCM = @{
Status = 'NotStart'
StartTime = ''
EndTime = ''
}
UpgradeSCCM = @{
Status = 'NotStart'
StartTime = ''
EndTime = ''
}
InstallDP = @{
Status = 'NotStart'
StartTime = ''
EndTime = ''
}
InstallMP = @{
Status = 'NotStart'
StartTime = ''
EndTime = ''
}
}
}
else
{
[hashtable]$Actions = @{
InstallSCCM = @{
Status = 'NotStart'
StartTime = ''
EndTime = ''
}
UpgradeSCCM = @{
Status = 'NotStart'
StartTime = ''
EndTime = ''
}
InstallDP = @{
Status = 'NotStart'
StartTime = ''
EndTime = ''
}
InstallMP = @{
Status = 'NotStart'
StartTime = ''
EndTime = ''
}
InstallClient = @{
Status = 'NotStart'
StartTime = ''
EndTime = ''
}
}
}
$Configuration = New-Object -TypeName psobject -Property $Actions
$Configuration | ConvertTo-Json | Out-File -FilePath $ConfigurationFile -Force
}
#Install CM and Config
$ScriptFile = Join-Path -Path $ProvisionToolPath -ChildPath "InstallAndUpdateSCCM.ps1"
. $ScriptFile $DomainFullName $CM $CMUser $Role $ProvisionToolPath
#Install DP
$ScriptFile = Join-Path -Path $ProvisionToolPath -ChildPath "InstallDP.ps1"
. $ScriptFile $DomainFullName $DPMPName $Role $ProvisionToolPath
#Install MP
$ScriptFile = Join-Path -Path $ProvisionToolPath -ChildPath "InstallMP.ps1"
. $ScriptFile $DomainFullName $DPMPName $Role $ProvisionToolPath
if($ClientName -ne 'Empty')
{
#Install Client
$ScriptFile = Join-Path -Path $ProvisionToolPath -ChildPath "InstallClient.ps1"
. $ScriptFile $DomainFullName $CMUser $ClientName $DPMPName $Role $ProvisionToolPath
}