Artifacts/windows-ConfigurationManagerCurrentBranch(EVAL)/setupCMCB.ps1 (78 lines of code) (raw):

Param( [string]$SiteCode = 'TST', [string]$SiteName = 'Test Site' ) cd $($PSScriptRoot) #Check if System is Domain-Joined if((gwmi win32_computersystem).partofdomain -eq $true) { #Download RZUpdate if missing... if((Test-Path "$($env:temp)\RZUpdate.exe") -eq $false) { # Ensure we force use of TLS 1.2 for all downloads. [Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12 (New-Object System.Net.WebClient).DownloadFile("https://ruckzuck.azurewebsites.net/DL/RZUpdate.exe", "$($env:temp)\RZUpdate.exe") } #Check if an unattend File already exists; otherwise create a new one... if(!(Test-Path c:\sccmsetup.ini)) { $hostname = [System.Net.Dns]::GetHostByName(($env:computerName)).Hostname; '[Identification]' | out-file -filepath C:\sccmsetup.ini 'Action=InstallPrimarySite' | out-file -filepath C:\sccmsetup.ini -append '[Options]' | out-file -filepath C:\sccmsetup.ini -append 'ProductID="EVAL"' | out-file -filepath C:\sccmsetup.ini -append 'PrerequisiteComp=0' | out-file -filepath C:\sccmsetup.ini -append 'PrerequisitePath="C:\SCCMDownloads"' | out-file -filepath C:\sccmsetup.ini -append "SiteCode=$($SiteCode)" | out-file -filepath C:\sccmsetup.ini -append 'SiteName="' + $SiteName + '"' | out-file -filepath C:\sccmsetup.ini -append 'SMSInstallDir="C:\Microsoft Configuration Manager"' | out-file -filepath C:\sccmsetup.ini -append "SDKServer=$($hostname)" | out-file -filepath C:\sccmsetup.ini -append 'AdminConsole=1' | out-file -filepath C:\sccmsetup.ini -append 'JoinCEIP=0' | out-file -filepath C:\sccmsetup.ini -append 'RoleCommunicationProtocol=HTTPorHTTPS' | out-file -filepath C:\sccmsetup.ini -append 'ClientsUsePKICertificate=0' | out-file -filepath C:\sccmsetup.ini -append 'AddServerLanguages=' | out-file -filepath C:\sccmsetup.ini -append 'AddClientLanguages=DEU' | out-file -filepath C:\sccmsetup.ini -append 'MobileDeviceLanguage=0' | out-file -filepath C:\sccmsetup.ini -append "ManagementPoint=$($hostname)" | out-file -filepath C:\sccmsetup.ini -append 'ManagementPointProtocol=HTTP' | out-file -filepath C:\sccmsetup.ini -append "DistributionPoint=$($hostname)" | out-file -filepath C:\sccmsetup.ini -append 'DistributionPointProtocol=HTTP' | out-file -filepath C:\sccmsetup.ini -append 'DistributionPointInstallIIS=0' | out-file -filepath C:\sccmsetup.ini -append '[SQLConfigOptions]' | out-file -filepath C:\sccmsetup.ini -append "SQLServerName=$($hostname)" | out-file -filepath C:\sccmsetup.ini -append 'DatabaseName=CM_' + $SiteCode | out-file -filepath C:\sccmsetup.ini -append 'SQLSSBPort=4022' | out-file -filepath C:\sccmsetup.ini -append '[HierarchyExpansionOption]' | out-file -filepath C:\sccmsetup.ini -append } #Make SYSTEM a SYSADMIN in SQL : https://gallery.technet.microsoft.com/scriptcenter/Reset-SQL-SA-Password-15fb488d#content import-module .\Reset-SqlAdmin.psm1 Reset-SqlAdmin -SqlServer $env:COMPUTERNAME -Login "NT AUTHORITY\SYSTEM" #Set SQL to run as LocalSystem $service = gwmi win32_service -filter "name='MSSQLSERVER'" if($service -eq $null) { exit 1 } $service.Change($null, $null, $null, $null, $null, $null, "LocalSystem", $null, $null, $null, $null) Stop-Service 'MSSQLSERVER' -Force Start-Service 'MSSQLSERVER' #Install ADK10 $proc = (Start-Process -FilePath "$($env:temp)\RZUpdate.exe" -ArgumentList "ADK10" -PassThru) $proc.WaitForExit() if((test-path "HKLM:\SOFTWARE\Wow6432Node\Microsoft\Windows Kits\Installed Roots") -eq $false) { exit 2 } #Cleanup Files from previous attempts.. if(Test-Path "$($env:temp)\SMSSETUP") { Remove-Item "$($env:temp)\SMSSETUP" -Force -Recurse } #Install Configuration Manager $proc = (Start-Process -FilePath "$($env:temp)\RZUpdate.exe" -ArgumentList "`"Configuration Manager Current Branch (EVAL)`"" -PassThru) $proc.WaitForExit() if((test-path "HKLM:\SOFTWARE\Microsoft\SMS\COMPONENTS") -eq $false) { exit 3 } #Cleanup Files.. if(Test-Path "$($env:temp)\SMSSETUP") { Remove-Item "$($env:temp)\SMSSETUP" -Force -Recurse } #Add Tools $proc = (Start-Process -FilePath "$($env:temp)\RZUpdate.exe" -ArgumentList "`"ConfigMgrTools`";`"Collection Commander`";`"SCCMCliCtr`";`"RuckZuck for Configuration Manager`";`"SCUP`";`"Right Click Tools`"" -PassThru) $proc.WaitForExit() #Add Domain Admins as Full Admins #import-module (Join-Path $(Split-Path $env:SMS_ADMIN_UI_PATH) ConfigurationManager.psd1) import-module ("C:\Microsoft Configuration Manager\AdminConsole\bin\ConfigurationManager.psd1") new-psdrive -Name $SiteCode -PSProvider "AdminUI.PS.Provider\CMSite" -Root "localhost" cd ((Get-PSDrive -PSProvider CMSite).Name + ':') New-CMAdministrativeUser -Name "$($env:userdomain)\domain admins" -RoleName "Full Administrator" -SecurityScopeName "All" }