vSphereAutoLab/Build/Automate/DC2/Phase2.ps1

292 lines
18 KiB
PowerShell

if (Test-Path C:\PSFunctions.ps1) {
. "C:\PSFunctions.ps1"
} else {
Write-Host "PSFunctions.ps1 not found. Please copy all PowerShell files from B:\Automate to C:\ and rerun Build.ps1"
Read-Host "Press <Enter> to exit"
exit
}
# Start DC configuration process
if (Test-Path B:\Automate\automate.ini) {
$AdminPWD = "VMware1!"
$AdminPWD = ((Select-String -SimpleMatch "Adminpwd=" -Path "B:\Automate\automate.ini").line).substring(9)
B:\automate\_Common\Autologon administrator lab $AdminPWD
}
Write-BuildLog "Correct DNS client settings"
$wmi = Get-WmiObject win32_networkadapterconfiguration -filter "ipenabled = 'true'"
$null = $wmi.SetDNSServerSearchOrder("192.160.201.4")
Write-BuildLog "Installing 7-zip."
try {
msiexec /qb /i B:\Automate\_Common\7z920-x64.msi
Write-BuildLog "Installation of 7-zip completed."
}
catch {
Write-BuildLog "7-zip installation failed."
}
Write-BuildLog ""
Write-BuildLog "Installing TFTP."
Write-BuildLog "Creating C:\TFTP-Root directory."
$null = $null = New-Item -Path C:\TFTP-Root -ItemType Directory -Force -Confirm:$false
Write-BuildLog "Creating C:\Program Files\Tftpd64_SE directory."
$null = $null = New-Item -Path "C:\Program Files\Tftpd64_SE" -ItemType Directory -Force -Confirm:$false
xcopy B:\Automate\DC2\Tftpd64_SE\*.* "C:\Program Files\Tftpd64_SE\" /s /c /y /q
Start-Sleep -Seconds 30
Start-Process "C:\Program Files\Tftpd64_SE\Tftpd64_SVC.exe" -ArgumentList "-install" -Wait
Write-BuildLog "Setting TFTP service startup type and starting it."
$null = Set-Service -Name "Tftpd32_svc" -StartupType "Automatic"
$null = Start-Service -Name "Tftpd32_svc"
Write-BuildLog "Copying B:\Automate\DC2\TFTP-Root\ contents to C:\TFTP-Root."
xcopy B:\Automate\DC2\TFTP-Root\*.* C:\TFTP-Root\ /s /c /y /q
Write-BuildLog "Installation of TFTP completed."
Write-BuildLog ""
Write-BuildLog "Checking for VMware Tools..."
if (Test-Path -Path "B:\VMTools\setup*") {
Write-BuildLog "VMware Tools found."
$vmtools = $true
} else {
if (Test-Path "B:\VMTools\windows.iso") {
Write-BuildLog "Extracting VMware Tools from ISO."
. "C:\Program Files\7-Zip\7z.exe" x -r -y -aoa -oB:\VMtools\ B:\VMTools\windows.iso >> C:\BuildLog.txt
$vmtools = $true
}
Else {Write-BuildLog "VMware Tools not found on Build share."}
Write-BuildLog ""
}
Write-BuildLog "Checking for vSphere files..."
if (Test-Path "B:\ESXi55\*") {
if (Test-Path "B:\ESXi55\*.iso") {
Write-BuildLog "Extracting ESXi 5.5 installer from ISO."
. "C:\Program Files\7-Zip\7z.exe" x -r -y -aoa -oB:\ESXi55\ B:\ESXi55\*.iso >> C:\ExtractLog.txt
}
Write-BuildLog "ESXi 5.5 found; creating C:\TFTP-Root\ESXi55 and copying ESXi 5.5 boot files."
$null = $null = New-Item -Path C:\TFTP-Root\ESXi55 -ItemType Directory -Force -Confirm:$false
xcopy B:\ESXi55\*.* C:\TFTP-Root\ESXi55 /s /c /y /q
Get-Content C:\TFTP-Root\ESXi55\BOOT.CFG | %{$_ -replace "/","/ESXi55/"} | Set-Content C:\TFTP-Root\ESXi55\Besx11-55.cfg
Add-Content C:\TFTP-Root\ESXi55\\Besx11-55.cfg "kernelopt=ks=nfs://192.168.199.7/mnt/LABVOL/Build/Automate/Hosts/esx11-5.cfg"
Get-Content C:\TFTP-Root\ESXi55\BOOT.CFG | %{$_ -replace "/","/ESXi55/"} | Set-Content C:\TFTP-Root\ESXi55\Besx12-55.cfg
Add-Content C:\TFTP-Root\ESXi55\\Besx12-55.cfg "kernelopt=ks=nfs://192.168.199.7/mnt/LABVOL/Build/Automate/Hosts/esx12-5.cfg"
powershell C:\PXEMenuConfig.ps1 ESXi55
Write-BuildLog "ESXi 5.5 added to TFTP and PXE menu."
Write-BuildLog ""
$esxi55 = $true
} else {
$esxi55 = $false
}
if (Test-Path "B:\ESXi51\*") {
if (Test-Path "B:\ESXi51\*.iso") {
Write-BuildLog "Extracting ESXi 5.1 installer from ISO."
. "C:\Program Files\7-Zip\7z.exe" x -r -y -aoa -oB:\ESXi51\ B:\ESXi51\*.iso >> C:\ExtractLog.txt
}
Write-BuildLog "ESXi 5.1 found; creating C:\TFTP-Root\ESXi51 and copying ESXi 5.1 boot files."
$null = $null = New-Item -Path C:\TFTP-Root\ESXi51 -ItemType Directory -Force -Confirm:$false
xcopy B:\ESXi51\*.* C:\TFTP-Root\ESXi51 /s /c /y /q
Get-Content C:\TFTP-Root\ESXi51\BOOT.CFG | %{$_ -replace "/","/ESXi51/"} | Set-Content C:\TFTP-Root\ESXi51\Besx1-5.cfg
Add-Content C:\TFTP-Root\ESXi51\Besx1-5.cfg "kernelopt=ks=nfs://192.168.199.7/mnt/LABVOL/Build/Automate/Hosts/esx1-5.cfg"
Get-Content C:\TFTP-Root\ESXi51\BOOT.CFG | %{$_ -replace "/","/ESXi51/"} | Set-Content C:\TFTP-Root\ESXi51\Besx2-5.cfg
Add-Content C:\TFTP-Root\ESXi51\Besx2-5.cfg "kernelopt=ks=nfs://192.168.199.7/mnt/LABVOL/Build/Automate/Hosts/esx2-5.cfg"
Get-Content C:\TFTP-Root\ESXi51\BOOT.CFG | %{$_ -replace "/","/ESXi51/"} | Set-Content C:\TFTP-Root\ESXi51\Besx3-5.cfg
Add-Content C:\TFTP-Root\ESXi51\Besx3-5.cfg "kernelopt=ks=nfs://192.168.199.7/mnt/LABVOL/Build/Automate/Hosts/esx3-5.cfg"
Get-Content C:\TFTP-Root\ESXi51\BOOT.CFG | %{$_ -replace "/","/ESXi51/"} | Set-Content C:\TFTP-Root\ESXi51\Besx4-5.cfg
Add-Content C:\TFTP-Root\ESXi51\Besx4-5.cfg "kernelopt=ks=nfs://192.168.199.7/mnt/LABVOL/Build/Automate/Hosts/esx4-5.cfg"
powershell C:\PXEMenuConfig.ps1 ESXi51
Write-BuildLog "ESXi 5.1 added to TFTP and PXE menu."
Write-BuildLog ""
$esxi51 = $true
} else {
$esxi51 = $false
}
if (Test-Path "B:\ESXi50\*") {
if (Test-Path "B:\ESXi50\*.iso") {
Write-BuildLog "Extracting ESXi 5.0 installer from ISO."
. "C:\Program Files\7-Zip\7z.exe" x -r -y -aoa -oB:\ESXi50\ B:\ESXi50\*.iso >> C:\ExtractLog.txt
}
Write-BuildLog "ESXi 5.0 found; creating C:\TFTP-Root\ESXi50 and copying ESXi 5.0 boot files."
$null = $null = New-Item -Path C:\TFTP-Root\ESXi50 -ItemType Directory -Force -Confirm:$false
xcopy B:\ESXi50\*.* C:\TFTP-Root\ESXi50 /s /c /y /q
Get-Content C:\TFTP-Root\ESXi50\BOOT.CFG | %{$_ -replace "/","/ESXi50/"} | Set-Content C:\TFTP-Root\ESXi50\Besx1-5.cfg
Add-Content C:\TFTP-Root\ESXi50\Besx1-5.cfg "kernelopt=ks=nfs://192.168.199.7/mnt/LABVOL/Build/Automate/Hosts/esx1-5.cfg"
Get-Content C:\TFTP-Root\ESXi50\BOOT.CFG | %{$_ -replace "/","/ESXi50/"} | Set-Content C:\TFTP-Root\ESXi50\Besx2-5.cfg
Add-Content C:\TFTP-Root\ESXi50\Besx2-5.cfg "kernelopt=ks=nfs://192.168.199.7/mnt/LABVOL/Build/Automate/Hosts/esx2-5.cfg"
Get-Content C:\TFTP-Root\ESXi50\BOOT.CFG | %{$_ -replace "/","/ESXi50/"} | Set-Content C:\TFTP-Root\ESXi50\Besx3-5.cfg
Add-Content C:\TFTP-Root\ESXi50\Besx3-5.cfg "kernelopt=ks=nfs://192.168.199.7/mnt/LABVOL/Build/Automate/Hosts/esx3-5.cfg"
Get-Content C:\TFTP-Root\ESXi50\BOOT.CFG | %{$_ -replace "/","/ESXi50/"} | Set-Content C:\TFTP-Root\ESXi50\Besx4-5.cfg
Add-Content C:\TFTP-Root\ESXi50\Besx4-5.cfg "kernelopt=ks=nfs://192.168.199.7/mnt/LABVOL/Build/Automate/Hosts/esx4-5.cfg"
powershell C:\PXEMenuConfig.ps1 ESXi50
Write-BuildLog "ESXi 5.0 added to TFTP and PXE menu."
Write-BuildLog ""
$esxi50 = $true
} else {
$esxi50 = $false
}
if (Test-Path "B:\ESXi41\*") {
if (Test-Path "B:\ESXi41\*.iso") {
Write-BuildLog "Extracting ESXi 4.1 installer from ISO."
. "C:\Program Files\7-Zip\7z.exe" x -r -y -aoa -oB:\ESXi41\ B:\ESXi41\*.iso >> C:\ExtractLog.txt
}
Write-BuildLog "ESXi 4.1 found; creating C:\TFTP-Root\ESXi41 and copying ESXi 4.1 boot files."
$null = $null = New-Item -Path C:\TFTP-Root\ESXi41 -ItemType Directory -Force -Confirm:$false
xcopy B:\ESXi41\vmkboot.gz C:\TFTP-Root\ESXi41 /s /c /y /q
xcopy B:\ESXi41\vmkernel.gz C:\TFTP-Root\ESXi41 /s /c /y /q
xcopy B:\ESXi41\sys.vgz C:\TFTP-Root\ESXi41 /s /c /y /q
xcopy B:\ESXi41\cim.vgz C:\TFTP-Root\ESXi41 /s /c /y /q
xcopy B:\ESXi41\ienviron.vgz C:\TFTP-Root\ESXi41 /s /c /y /q
xcopy B:\ESXi41\install.vgz C:\TFTP-Root\ESXi41 /s /c /y /q
xcopy B:\ESXi41\mboot.c32 C:\TFTP-Root\ESXi41 /s /c /y /q
powershell C:\PXEMenuConfig.ps1 ESXi41
Write-BuildLog "ESXi 4.1 added to TFTP and PXE menu."
Write-BuildLog ""
$esxi41 = $true
} else {
$esxi41 = $false
}
if (Test-Path "B:\ESX41\*") {
if (Test-Path "B:\ESX41\*.iso") {
Write-BuildLog "Extracting ESX 4.1 installer from ISO."
. "C:\Program Files\7-Zip\7z.exe" x -r -y -aoa -oB:\ESX41\ B:\ESX41\*.iso >> C:\ExtractLog.txt
}
Write-BuildLog "ESX 4.1 found; creating C:\TFTP-Root\ESX41 and copying ESX 4.1 boot files."
$null = $null = New-Item -Path C:\TFTP-Root\ESX41 -ItemType Directory -Force -Confirm:$false
xcopy B:\ESX41\isolinux\vmlinuz C:\TFTP-Root\ESX41 /s /c /y /q
xcopy B:\ESX41\isolinux\initrd.img C:\TFTP-Root\ESX41 /s /c /y /q
powershell C:\PXEMenuConfig.ps1 ESX41
Write-BuildLog "ESX 4.1 added to TFTP and PXE menu."
Write-BuildLog ""
$esx41 = $true
} else {
$esx41 = $false
}
if (!($esx41 -or $esxi41 -or $esxi50 -or $esxi51 -or $esxi55)) {
Write-BuildLog "No ESX or ESXi files found."
Write-BuildLog "Is the NAS VM running? If so, make sure the Build share is available and populated."
Write-BuildLog "Restart this machine when Build share is available; build will proceed after restart."
exit
}
Write-BuildLog ""
Write-BuildLog "Authorise and configure DHCP"
netsh dhcp add server dc2.lab.local 192.168.201.4
netsh dhcp server 192.168.201.4 add scope 192.168.201.0 255.255.255.0 "Lab scope" "Scope for lab.local"
netsh dhcp server 192.168.201.4 scope 192.168.201.0 add iprange 192.168.201.100 192.168.201.199
netsh dhcp server 192.168.201.4 scope 192.168.201.0 set optionvalue 003 IPADDRESS 192.168.201.2
netsh dhcp server 192.168.201.4 scope 192.168.201.0 set optionvalue 005 IPADDRESS 192.168.201.4
netsh dhcp server 192.168.201.4 scope 192.168.201.0 set optionvalue 006 IPADDRESS 192.168.201.4
netsh dhcp server 192.168.201.4 scope 192.168.201.0 set optionvalue 015 STRING lab.local
netsh dhcp server 192.168.201.4 scope 192.168.201.0 set optionvalue 066 STRING 192.168.201.4
netsh dhcp server 192.168.201.4 scope 192.168.201.0 set optionvalue 067 STRING pxelinux.0
netsh dhcp server 192.168.201.4 scope 192.168.201.0 set state 1
Write-BuildLog ""
Write-BuildLog "Checking available SQL Express versions."
$null = $null = New-Item -Path C:\temp -ItemType Directory -Force -Confirm:$false
Write-BuildLog ""
Write-BuildLog "Checking available SQL Express versions."
$null = New-Item -Path C:\temp -ItemType Directory -Force -Confirm:$false
if (Test-Path "C:\Program Files\Microsoft SQL Server\100\Tools\Binn\sqlcmd.exe") {
Write-BuildLog "SQL Server Install found, not installing"
}Else {
if (Test-Path "B:\VIM_55\redist\SQLEXPR\SQLEXPR_x64_ENU.exe") {
$vc5SQL = $true
Write-BuildLog "SQL Server 2008 R2 Express SP1 for vCenter 5.5 found; installing."
copy B:\VIM_55\redist\SQLEXPR\SQLEXPR_x64_ENU.exe C:\temp
$Arguments = '/IACCEPTSQLSERVERLICENSETERMS /action=Install /FEATURES=SQL,Tools /SQLSYSADMINACCOUNTS="Lab\Domain Admins" /SQLSVCACCOUNT="Lab\vi-admin" /SQLSVCPASSWORD="' + $AdminPWD + '" /AGTSVCACCOUNT="Lab\vi-admin" /AGTSVCPASSWORD="' + $AdminPWD + '" /ADDCURRENTUSERASSQLADMIN /SECURITYMODE=SQL /SAPWD="VMware1!" /INSTANCENAME=SQLExpress /BROWSERSVCSTARTUPTYPE="Automatic" /TCPENABLED=1 /NPENABLED=1 /SQLSVCSTARTUPTYPE=Automatic /q'
Start-Process C:\temp\SQLEXPR_x64_ENU.exe -ArgumentList $Arguments -Wait
del c:\TEMP\SQLEXPR_x64_ENU.EXE
Write-BuildLog "Creating Databases."
Start-Process "C:\Program Files\Microsoft SQL Server\100\Tools\Binn\sqlcmd.exe" -ArgumentList "-S dc2\SQLEXPRESS -i B:\Automate\DC2\MakeDB.txt" -RedirectStandardOutput c:\sqllog.txt -Wait
Start-Process "C:\Program Files\Microsoft SQL Server\100\Tools\Binn\sqlcmd.exe" -ArgumentList "-S dc2\SQLEXPRESS -i B:\Automate\DC2\MakeDBvCD51.txt" -RedirectStandardOutput c:\sqllog.txt -Wait
Start-Process "C:\Program Files\Microsoft SQL Server\100\Tools\Binn\sqlcmd.exe" -ArgumentList "-S dc2\SQLEXPRESS -i B:\Automate\DC2\MakeDBvCD15.txt" -RedirectStandardOutput c:\sqllog.txt -Wait
regedit -s B:\Automate\DC2\SQLTCP.reg
} elseif (Test-Path "B:\VIM_51\redist\SQLEXPR\SQLEXPR_x64_ENU.exe") {
$vc5SQL = $true
Write-BuildLog "SQL Server 2008 R2 Express SP1 for vCenter 5.1 found; installing."
copy B:\VIM_51\redist\SQLEXPR\SQLEXPR_x64_ENU.exe C:\temp
$Arguments = '/IACCEPTSQLSERVERLICENSETERMS /action=Install /FEATURES=SQL,Tools /SQLSYSADMINACCOUNTS="Lab\Domain Admins" /SQLSVCACCOUNT="Lab\vi-admin" /SQLSVCPASSWORD="' + $AdminPWD + '" /AGTSVCACCOUNT="Lab\vi-admin" /AGTSVCPASSWORD="' + $AdminPWD + '" /ADDCURRENTUSERASSQLADMIN /SECURITYMODE=SQL /SAPWD="VMware1!" /INSTANCENAME=SQLExpress /BROWSERSVCSTARTUPTYPE="Automatic" /TCPENABLED=1 /NPENABLED=1 /SQLSVCSTARTUPTYPE=Automatic /q'
Start-Process C:\temp\SQLEXPR_x64_ENU.exe -ArgumentList $Arguments -Wait
Write-BuildLog "Creating Databases."
Start-Process "C:\Program Files\Microsoft SQL Server\100\Tools\Binn\sqlcmd.exe" -ArgumentList "-S dc2\SQLEXPRESS -i B:\Automate\DC2\MakeDB.txt" -RedirectStandardOutput c:\sqllog.txt -Wait
Start-Process "C:\Program Files\Microsoft SQL Server\100\Tools\Binn\sqlcmd.exe" -ArgumentList "-S dc2\SQLEXPRESS -i B:\Automate\DC2\MakeDBvCD51.txt" -RedirectStandardOutput c:\sqllog.txt -Wait
Start-Process "C:\Program Files\Microsoft SQL Server\100\Tools\Binn\sqlcmd.exe" -ArgumentList "-S dc2\SQLEXPRESS -i B:\Automate\DC2\MakeDBvCD15.txt" -RedirectStandardOutput c:\sqllog.txt -Wait
regedit -s B:\Automate\DC2\SQLTCP.reg
} elseif (Test-Path "B:\VIM_50\redist\SQLEXPR\SQLEXPR_x64_ENU.exe") {
$vc5SQL = $true
Write-BuildLog "SQL Server 2008 R2 Express SP1 for vCenter 5.0 found; installing."
copy B:\VIM_50\redist\SQLEXPR\SQLEXPR_x64_ENU.exe C:\temp
$Arguments = '/IACCEPTSQLSERVERLICENSETERMS /action=Install /FEATURES=SQL,Tools /SQLSYSADMINACCOUNTS="Lab\Domain Admins" /SQLSVCACCOUNT="Lab\vi-admin" /SQLSVCPASSWORD="' + $AdminPWD + '" /AGTSVCACCOUNT="Lab\vi-admin" /AGTSVCPASSWORD="' + $AdminPWD + '" /ADDCURRENTUSERASSQLADMIN /SECURITYMODE=SQL /SAPWD="VMware1!" /INSTANCENAME=SQLExpress /BROWSERSVCSTARTUPTYPE="Automatic" /TCPENABLED=1 /NPENABLED=1 /SQLSVCSTARTUPTYPE=Automatic /q'
Start-Process C:\temp\SQLEXPR_x64_ENU.exe -ArgumentList $Arguments -Wait
Write-BuildLog "Creating Databases."
Start-Process "C:\Program Files\Microsoft SQL Server\100\Tools\Binn\sqlcmd.exe" -ArgumentList "-S dc2\SQLEXPRESS -i B:\Automate\DC2\MakeDB.txt" -RedirectStandardOutput c:\sqllog.txt -Wait
Start-Process "C:\Program Files\Microsoft SQL Server\100\Tools\Binn\sqlcmd.exe" -ArgumentList "-S dc2\SQLEXPRESS -i B:\Automate\DC2\MakeDBvCD15.txt" -RedirectStandardOutput c:\sqllog.txt -Wait
regedit -s B:\Automate\DC2\SQLTCP.reg
} elseif (Test-Path "B:\VIM_41\redist\SQLEXPR\x64\SQLEXPR.EXE") {
copy B:\VIM_41\redist\SQLEXPR\x64\SQLEXPR.EXE C:\temp
Write-BuildLog "SQL Server 2005 Express for vCenter 4.1 found; installing."
$Arguments = '/qb INSTANCENAME=SQLExpress ADDLOCAL=ALL SAPWD="VMware1!" SQLACCOUNT="Lab\vi-admin" SQLPASSWORD="' + $AdminPWD + '" AGTACCOUNT="Lab\vi-admin" AGTPASSWORD="' + $AdminPWD + '" SQLBROWSERACCOUNT="Lab\vi-admin" SQLBROWSERPASSWORD="' + $AdminPWD + '" DISABLENETWORKPROTOCOLS=0'
Start-Process C:\temp\SQLEXPR_x64_ENU.exe -ArgumentList $Arguments -Wait
Write-BuildLog "Creating Databases."
Start-Process "C:\Program Files (x86)\Microsoft SQL Server\90\Tools\Binn\sqlcmd.exe" -ArgumentList "-S dc2\SQLEXPRESS -i B:\Automate\DC2\MakeDB41.txt" -RedirectStandardOutput c:\sqllog.txt -Wait; type C:\sqllog.txt | add-content C:\buildlog.txt
regedit -s B:\Automate\DC2\SQLTCP.reg
} else {
$vc5SQL = $false
$vc4SQL = $false
Write-BuildLog "No SQL Express installers found. Please verify that all contents of vCenter ISO are copied into the correct folder on the Build share."
Read-Host "Press <ENTER> to exit"
exit
}
}
If (([System.Environment]::OSVersion.Version.Major -eq 6) -and ([System.Environment]::OSVersion.Version.Minor -lt 2)) {
Write-BuildLog "Setup IIS on Windows 2008"
Start-Process pkgmgr -ArgumentList '/quiet /l:C:\IIS_Install_Log.txt /iu:IIS-WebServerRole;IIS-WebServer;IIS-CommonHttpFeatures;IIS-StaticContent;IIS-DefaultDocument;IIS-DirectoryBrowsing;IIS-HttpErrors;IIS-HttpRedirect;IIS-ApplicationDevelopment;IIS-ASPNET;IIS-NetFxExtensibility;IIS-ASP;IIS-CGI;IIS-ISAPIExtensions;IIS-ISAPIFilter;IIS-ServerSideIncludes;IIS-HealthAndDiagnostics;IIS-HttpLogging;IIS-LoggingLibraries;IIS-RequestMonitor;IIS-HttpTracing;IIS-CustomLogging;IIS-ODBCLogging;IIS-Security;IIS-BasicAuthentication;IIS-WindowsAuthentication;IIS-DigestAuthentication;IIS-ClientCertificateMappingAuthentication;IIS-IISCertificateMappingAuthentication;IIS-URLAuthorization;IIS-RequestFiltering;IIS-IPSecurity;IIS-Performance;IIS-HttpCompressionStatic;IIS-HttpCompressionDynamic;IIS-WebServerManagementTools;IIS-ManagementConsole;IIS-ManagementScriptingTools;IIS-ManagementService;IIS-IIS6ManagementCompatibility;IIS-Metabase;IIS-WMICompatibility;IIS-LegacyScripts;IIS-LegacySnapIn;IIS-FTPPublishingService;IIS-FTPServer;IIS-FTPManagement;WAS-WindowsActivationService;WAS-ProcessModel;WAS-NetFxEnvironment;WAS-ConfigurationAPI' -Wait
}
If (([System.Environment]::OSVersion.Version.Major -eq 6) -and ([System.Environment]::OSVersion.Version.Minor -ge 2)) {
Write-BuildLog "Setup IIS on Windows 2012"
import-module servermanager
$null = add-windowsfeature web-server -includeallsubfeature -source D:\Sources\sxs
Import-Module WebAdministration
New-WebBinding -Name "Default Web Site" -IP "*" -Port 443 -Protocol https
}
if (Test-Path B:\sqlmsssetup.exe) {
Rename-Item B:\sqlmsssetup.exe SQLManagementStudio_x64_ENU.exe
}
if (Test-Path B:\SQLManagementStudio_x64_ENU.exe) {
if ( (!(Get-ChildItem B:\SQLManagementStudio_x64_ENU.exe).VersionInfo.ProductVersion -like "10.50.2500*") -and ($vc5SQL -or $vc4SQL)) {
Write-BuildLog "The version of SQL Management Studio on the Build share is incompatible with SQL Server 2008 Express R2 SP1. Please see ReadMe.html on the Build share."
} else {
Write-BuildLog "SQL Management Studio found; installing."
Start-Process B:\SQLManagementStudio_x64_ENU.exe -ArgumentList "/ACTION=INSTALL /IACCEPTSQLSERVERLICENSETERMS /FEATURES=Tools /q" -Wait -Verb RunAs
}
} else { Write-BuildLog "SQL Management Studio not found (optional)."}
Write-BuildLog "Make Win32Time authoritative for NTP time."
reg add HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Config /v AnnounceFlags /t REG_DWORD /d 0x05 /f
Write-BuildLog "Cleanup and creating Desktop shortcuts."
reg delete HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run /v Build /f
wscript B:\Automate\DC2\Shortcuts.vbs
if (Test-Path B:\Automate\automate.ini) {
$timezone = ((Select-String -SimpleMatch "TZ=" -Path "B:\Automate\automate.ini").line).substring(3)
Write-BuildLog "Setting time zone to $timezone according to automate.ini."
tzutil /s "$timezone"
}
Write-BuildLog "Installing VMware tools, build complete after reboot."
Write-BuildLog "(Re)build vCenter next."
if ($vmtools) {
Start-Process B:\VMTools\setup64.exe -ArgumentList '/s /v "/qn"' -Verb RunAs -Wait
Start-Sleep -Seconds 30
}
Read-Host "Press <ENTER> to exit"