2015-04-30 20:38:03 -04:00
# Build Validation script for vSphere 6.0 AutoLab
#
# Version 2.6
#
#
# Include the functions script, this is used to keep this script clean
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 AddHosts.ps1 "
Read-Host " Press <Enter> to exit "
exit
}
$Global:Pass = $true
if ( Test-Administrator ) {
Write-Host " Great, script is running as administrator " -foregroundcolor " Green "
} else {
Start-Process PowerShell . exe -Verb Runas -ArgumentList " c:\validate.ps1 "
exit
}
# make script window as tall as possible
$a = ( Get-Host ) . UI . RawUI
$b = $a . WindowSize
$b . Height = $a . MaxWindowSize . Height - 1
$a . WindowSize = $b
Import-Module C: \ windows \ system32 \ WASP . dll
Select-Window -Title " Administrator: " | set-windowposition -left 3 -top 3
If ( ! ( Test-Path " B:\* " ) ) {
net use B: \ \ 192.168 . 199 . 7 \ Build
}
$CompName = gc env : computername
Write-Host " Validating " $CompName -foregroundcolor " cyan "
Write-Host " Error events from system eventlog on " $CompName -foregroundcolor " cyan "
get-eventlog -LogName System -entrytype Error -ErrorAction SilentlyContinue | Format-table -property TimeGenerated , Message -autosize
if ( $CompName -eq " DC " ) {
Write-Host " Validating required Build share components. " -foregroundcolor " cyan "
$AdminPWD = ( ( Select-String -SimpleMatch " Adminpwd= " -Path " B:\Automate\automate.ini " ) . line ) . substring ( 9 )
If ( $AdminPWD -eq " VMware1! " ) {
Write-Host " Default admin password set, this isn't safe. " -foregroundcolor " Red "
$NewPWD = Read-Host " Enter a new admin password "
If ( $NewPWD -ne " " ) {
Write-Host " Setting new password " -foregroundcolor " Green "
$OldAdminPWD = $AdminPWD
$AdminPWD = $NewPWD
$FileContent = get-content B: \ Automate \ automate . ini
Set-Content B: \ Automate \ automate . ini " "
Foreach ( $Line in $FileContent ) {
If ( $Line . StartsWith ( " Adminpwd " ) ) { $Line = " Adminpwd= $NewPWD " }
Add-Content B: \ Automate \ automate . ini $Line
}
net user SVC_Veeam $AdminPWD > > C: \ AD-Users . log 2 > > C: \ Error . log
net user SVC_SRM $AdminPWD > > C: \ AD-Users . log 2 > > C: \ Error . log
net user DomUser $AdminPWD > > C: \ AD-Users . log 2 > > C: \ Error . log
net user vi-admin $AdminPWD > > C: \ AD-Users . log 2 > > C: \ Error . log
net user administrator $AdminPWD > > C: \ AD-Users . log 2 > > C: \ Error . log
net user ada $AdminPWD > > C: \ AD-Users . log 2 > > C: \ Error . log
net user alan $AdminPWD > > C: \ AD-Users . log 2 > > C: \ Error . log
net user grace $AdminPWD > > C: \ AD-Users . log 2 > > C: \ Error . log
net user charles $AdminPWD > > C: \ AD-Users . log 2 > > C: \ Error . log
B: \ automate \ _Common \ Autologon administrator lab $AdminPWD
$TempContent = Get-Content B: \ Automate \ Hosts \ esx1 - 4 . cfg | % { $_ -replace $OldAdminPWD , $AdminPWD }
$TempContent | Set-Content B: \ Automate \ Hosts \ esx1 - 4 . cfg
$TempContent = Get-Content B: \ Automate \ Hosts \ esx1 - 5 . cfg | % { $_ -replace $OldAdminPWD , $AdminPWD }
$TempContent | Set-Content B: \ Automate \ Hosts \ esx1 - 5 . cfg
$TempContent = Get-Content B: \ Automate \ Hosts \ esx2 - 4 . cfg | % { $_ -replace $OldAdminPWD , $AdminPWD }
$TempContent | Set-Content B: \ Automate \ Hosts \ esx2 - 4 . cfg
$TempContent = Get-Content B: \ Automate \ Hosts \ esx2 - 4c . cfg | % { $_ -replace $OldAdminPWD , $AdminPWD }
$TempContent | Set-Content B: \ Automate \ Hosts \ esx2 - 4c . cfg
$TempContent = Get-Content B: \ Automate \ Hosts \ esx2 - 5 . cfg | % { $_ -replace $OldAdminPWD , $AdminPWD }
$TempContent | Set-Content B: \ Automate \ Hosts \ esx2 - 5 . cfg
$TempContent = Get-Content B: \ Automate \ Hosts \ esx3 - 5 . cfg | % { $_ -replace $OldAdminPWD , $AdminPWD }
$TempContent | Set-Content B: \ Automate \ Hosts \ esx3 - 5 . cfg
$TempContent = Get-Content B: \ Automate \ Hosts \ esx4 - 5 . cfg | % { $_ -replace $OldAdminPWD , $AdminPWD }
$TempContent | Set-Content B: \ Automate \ Hosts \ esx4 - 5 . cfg
$TempContent = Get-Content B: \ Automate \ Hosts \ esx11 - 5 . cfg | % { $_ -replace $OldAdminPWD , $AdminPWD }
$TempContent | Set-Content B: \ Automate \ Hosts \ esx11 - 5 . cfg
$TempContent = Get-Content B: \ Automate \ Hosts \ esx12 - 5 . cfg | % { $_ -replace $OldAdminPWD , $AdminPWD }
$TempContent | Set-Content B: \ Automate \ Hosts \ esx12 - 5 . cfg
$service = gwmi win32_service -filter " name='MSSQL `$ SQLEXPRESS' "
$null = $service . change ( $null , $null , $null , $null , $null , $null , $null , $AdminPWD )
Write-Host " Restarting SQL Express with new password " -foregroundcolor " Green "
$null = Restart-Service " MSSQL `$ SQLEXPRESS " -force
}
}
If ( ( Get-WmiObject Win32_BIOS ) . Manufacturer . Tolower ( ) -like " bochs* " ) {
Write-Host " Building on Ravello, set some build options. " -foregroundcolor " green "
$AutoAddHosts = ( Read-Host " Automatically add hosts to vCentre when it builds (y/n) " ) . ToLower ( )
If ( $AutoAddHosts -eq " n " ) {
$TempContent = Get-Content B: \ Automate \ Automate . ini | % { $_ -replace " AutoAddHosts=true " , " AutoAddHosts=false " }
$TempContent | Set-Content B: \ Automate \ Automate . ini
}
If ( $AutoAddHosts -eq " y " ) {
$TempContent = Get-Content B: \ Automate \ Automate . ini | % { $_ -replace " AutoAddHosts=false " , " AutoAddHosts=true " }
$TempContent | Set-Content B: \ Automate \ Automate . ini
Write-Host " Make sure the ESXi hosts are properly built & restart cleanly " -foregroundcolor " cyan "
}
}
$vSpherePaths = @ { " ESX41 " = " \\192.168.199.7\Build\ESX41\* " ; " ESXi41 " = " \\192.168.199.7\Build\ESXi41\* " ; " vCenter41 " = " \\192.168.199.7\Build\VIM_41\* " ; " ESXi50 " = " \\192.168.199.7\Build\ESXi50\* " ; " vCenter50 " = " \\192.168.199.7\Build\VIM_50\* " ; " ESXi51 " = " \\192.168.199.7\Build\ESXi51\* " ; " vCenter51 " = " \\192.168.199.7\Build\VIM_51\* " ; " ESXi55 " = " \\192.168.199.7\Build\ESXi55\* " ; " vCenter55 " = " \\192.168.199.7\Build\VIM_55\* " ; " ESXi60 " = " \\192.168.199.7\Build\ESXi60\* " ; " vCenter60 " = " \\192.168.199.7\Build\VIM_60\* " }
$vSpherePaths . GetEnumerator ( ) | % { if ( ! ( Test-Path $_ . Value ) ) { New-Variable -Name $_ . Name -Value $false -force } else { New-Variable -Name $_ . Name -Value $true -force } }
if ( $vCenter41 -and ( $ESXi41 -or $ESX41 ) ) {
Write-Host " vCenter 4.1 & ESXi 4.1 found. " -foregroundcolor " green "
$vSphere41 = $true
} elseif ( $vCenter41 -or ( $ESXi41 -or $ESX41 ) ) {
Write-Host " vSphere 4.1 installation requirements not met. Please verify that both vCenter 4.1 & ESXi 4.1 exist on Build share. " -foregroundcolor " red "
$vSphere41 = $false
} else {
Write-Host " vCenter 4.1 & ESXi 4.1 not found. " -foregroundcolor " cyan "
$vSphere41 = $false
}
if ( $vCenter50 -and $ESXi50 ) {
Write-Host " vCenter 5.0 & ESXi 5.0 found. " -foregroundcolor " green "
$vSphere50 = $true
} elseif ( $vCenter50 -or $ESXi50 ) {
Write-Host " vSphere 5.0 installation requirements not met. Please verify that both vCenter 5.0 & ESXi 5.0 exist on Build share. " -foregroundcolor " red "
$vSphere50 = $false
} else {
Write-Host " vCenter 5.0 & ESXi 5.0 not found. " -foregroundcolor " cyan "
$vSphere50 = $false
}
if ( $vCenter51 -and $ESXi51 ) {
Write-Host " vCenter 5.1 & ESXi 5.1 found. " -foregroundcolor " green "
$vSphere51 = $true
} elseif ( $vCenter51 -or $ESXi51 ) {
Write-Host " vSphere 5.1 installation requirements not met. Please verify that both vCenter 5.1 & ESXi 5.1 exist on Build share. " -foregroundcolor " red "
$vSphere51 = $false
} else {
Write-Host " vCenter 5.1 & ESXi 5.1 not found. " -foregroundcolor " cyan "
$vSphere51 = $false
}
if ( $vCenter55 -and $ESXi55 ) {
Write-Host " vCenter 5.5 & ESXi 5.5 found. " -foregroundcolor " green "
$vSphere55 = $true
} elseif ( $vCenter55 -or $ESXi55 ) {
Write-Host " vSphere 5.5 installation requirements not met. Please verify that both vCenter 5.5 & ESXi 5.5 exist on Build share. " -foregroundcolor " red "
$vSphere55 = $false
} else {
Write-Host " vCenter 5.5 & ESXi 5.5 not found. " -foregroundcolor " cyan "
$vSphere55 = $false
}
if ( $vCenter60 -and $ESXi60 ) {
Write-Host " vCenter 6.0 & ESXi 6.0 found. " -foregroundcolor " green "
$vSphere60 = $true
} elseif ( $vCenter60 -or $ESXi60 ) {
Write-Host " vSphere 6.0 installation requirements not met. Please verify that both vCenter 6.0 & ESXi 6.0 exist on Build share. " -foregroundcolor " red "
$vSphere60 = $false
} else {
Write-Host " vCenter 6.0 & ESXi 6.0 not found. " -foregroundcolor " cyan "
$vSphere60 = $false
}
if ( ! ( $vSphere41 -or $vSphere50 -or $vSphere51 -or $vSphere55 -or $vSphere60 ) ) {
Write-Host " Matching vCenter & ESXi distributions not found. Please check the Build share. " -foregroundcolor " red "
$Global:Pass = $false
}
Check-File " \\192.168.199.7\Build\VMware-PowerCLI*.exe " " PowerCLI installer "
If ( ! ( Test-Path " \\192.168.199.7\Build\VMware-PowerCLI*.exe " ) ) {
If ( ( Read-Host " Would you like to go to the PowerCLI download site (y/n)? " ) -like " y " ) {
$IE = new-object -com internetexplorer . application
if ( ( ( [ System.Environment ] :: OSVersion . Version . Major * 10 ) + [ System.Environment ] :: OSVersion . Version . Minor ) -ge 62 ) { $IE . navigate2 ( " https://my.vmware.com/group/vmware/get-download?downloadGroup=PCLI600R1 " ) }
if ( ( ( [ System.Environment ] :: OSVersion . Version . Major * 10 ) + [ System.Environment ] :: OSVersion . Version . Minor ) -le 62 ) { $IE . navigate2 ( " https://my.vmware.com/group/vmware/get-download?downloadGroup=PCLI58R1 " ) }
$IE . visible = $true
} Else {
Write-Host " OK, but the VC build will not work correctly without PowerCLI "
}
}
if ( Test-Path " b:\VMware-PowerCLI-5*.exe " ) {
If ( ( $vSphere50 -and ( ( Get-ChildItem B: \ VMware-PowerCLI - * . exe | where { $_ . VersionInfo . ProductVersion -like " 5.0* " } ) -eq $Null ) ) ) { Write-Host " vSphere 5.0 found, matching PowerCLI version missing. Please check the Build share. " -foregroundcolor " Yellow " }
If ( ( $vSphere51 -and ( ( Get-ChildItem B: \ VMware-PowerCLI - * . exe | where { $_ . VersionInfo . ProductVersion -like " 5.1* " } ) -eq $Null ) ) ) { Write-Host " vSphere 5.1 found, matching PowerCLI version missing. Please check the Build share. " -foregroundcolor " Yellow " }
2016-04-14 21:59:32 -04:00
If ( ( $vSphere55 -and ( ( ( Get-ChildItem B: \ VMware-PowerCLI - * . exe | where { $_ . VersionInfo . ProductVersion -like " 5.5* " } ) -eq $Null ) -and ( ( Get-ChildItem B: \ VMware-PowerCLI - * . exe | where { $_ . VersionInfo . ProductVersion -like " 5.8* " } ) -eq $Null ) ) ) ) { Write-Host " vSphere 5.5 found, matching PowerCLI version missing. Please check the Build share. " -foregroundcolor " Yellow " }
If ( ( $vSphere60 -and ( ( ( Get-ChildItem B: \ VMware-PowerCLI - * . exe | where { $_ . VersionInfo . ProductVersion -like " 5.8* " } ) -eq $Null ) -and ( ( ( [ System.Environment ] :: OSVersion . Version . Major * 10 ) + [ System.Environment ] :: OSVersion . Version . Minor ) -le 62 ) ) ) ) { Write-Host " vSphere 6.0 on Windows 2008 found, matching PowerCLI version 5.8 missing. Please check the Build share. " -foregroundcolor " Yellow " }
If ( ( $vSphere60 -and ( ( ( Get-ChildItem B: \ VMware-PowerCLI - * . exe | where { $_ . VersionInfo . ProductVersion -like " 6* " } ) -eq $Null ) -and ( ( ( [ System.Environment ] :: OSVersion . Version . Major * 10 ) + [ System.Environment ] :: OSVersion . Version . Minor ) -ge 62 ) ) ) ) { Write-Host " vSphere 6.0 on Windows 2012 found, matching PowerCLI version 6 missing. Please check the Build share. " -foregroundcolor " Yellow " }
2015-04-30 20:38:03 -04:00
}
Check-OptionalFile " \\192.168.199.7\Build\Win2K3.iso " " Windows Server 2003 ISO "
Check-OptionalFile " \\192.168.199.7\Build\WinXP.iso " " Windows XP ISO "
Write-Host " Validate SQL & TFTP Install " -foregroundcolor " cyan "
if ( Test-Path -LiteralPath " C:\Program Files\Microsoft SQL Server\MSSQL10_50.SQLEXPRESS\MSSQL\DATA\ " ) {
Check-File " C:\Program Files\Microsoft SQL Server\MSSQL10_50.SQLEXPRESS\MSSQL\DATA\vCenter.mdf " " vCenter Database "
Check-File " C:\Program Files\Microsoft SQL Server\MSSQL10_50.SQLEXPRESS\MSSQL\DATA\VUM.mdf " " vCenter Update Manager Database "
} elseif ( Test-Path -LiteralPath " C:\Program Files (x86)\Microsoft SQL Server\MSSQL.1\MSSQL\Data\ " ) {
Check-File " C:\Program Files (x86)\Microsoft SQL Server\MSSQL.1\MSSQL\Data\vCenter.mdf " " vCenter Database "
Check-File " C:\Program Files (x86)\Microsoft SQL Server\MSSQL.1\MSSQL\Data\VUM.mdf " " vCenter Update Manager Database "
}
Check-File " C:\Program Files\Tftpd64_SE\Tftpd64_SVC.exe " " TFTP Server "
Check-File " C:\TFTP-Root\pxelinux.0 " " PXE boot file "
Check-File " C:\TFTP-Root\pxelinux.cfg " " PXE boot configuration file "
if ( $ESX41 -and ( Test-Path " C:\TFTP-Root\ESX41\* " ) ) {
Write-Host " ESX 4.1 TFTP files found. " -foregroundcolor " green "
} elseif ( $ESX41 -and ! ( Test-Path " C:\TFTP-Root\ESX41\* " ) ) {
Write-Host " ESX 4.1 TFTP files not found on DC, but they exist on Build share. " -foregroundcolor " red "
$Global:Pass = $false
}
if ( $ESXi41 -and ( Test-Path " C:\TFTP-Root\ESXi41\* " ) ) {
Write-Host " ESXi 4.1 TFTP files found. " -foregroundcolor " green "
} elseif ( $ESXi41 -and ! ( Test-Path " C:\TFTP-Root\ESXi41\* " ) ) {
Write-Host " ESXi 4.1 TFTP files not found on DC, but they exist on Build share. " -foregroundcolor " red "
$Global:Pass = $false
}
if ( $ESXi50 -and ( Test-Path " C:\TFTP-Root\ESXi50\* " ) ) {
Write-Host " ESXi 5.0 TFTP files found. " -foregroundcolor " green "
} elseif ( $ESXi50 -and ! ( Test-Path " C:\TFTP-Root\ESXi50\* " ) ) {
Write-Host " ESXi 5.0 TFTP files not found on DC, but they exist on Build share. " -foregroundcolor " red "
$Global:Pass = $false
}
if ( $ESXi51 -and ( Test-Path " C:\TFTP-Root\ESXi51\* " ) ) {
Write-Host " ESXi 5.1 TFTP files found. " -foregroundcolor " green "
} elseif ( $ESXi51 -and ! ( Test-Path " C:\TFTP-Root\ESXi51\* " ) ) {
Write-Host " ESXi 5.1 TFTP files not found on DC, but they exist on Build share. " -foregroundcolor " red "
$Global:Pass = $false
}
2016-04-14 21:59:32 -04:00
if ( $ESXi55 -and ( Test-Path " C:\TFTP-Root\ESXi515\* " ) ) {
Write-Host " ESXi 5.5 TFTP files found. " -foregroundcolor " green "
} elseif ( $ESXi55 -and ! ( Test-Path " C:\TFTP-Root\ESXi55\* " ) ) {
Write-Host " ESXi 5.5 TFTP files not found on DC, but they exist on Build share. " -foregroundcolor " red "
$Global:Pass = $false
}
if ( $ESXi60 -and ( Test-Path " C:\TFTP-Root\ESXi60\* " ) ) {
Write-Host " ESXi 6.0 TFTP files found. " -foregroundcolor " green "
} elseif ( $ESXi60 -and ! ( Test-Path " C:\TFTP-Root\ESXi60\* " ) ) {
Write-Host " ESXi 6.0 TFTP files not found on DC, but they exist on Build share. " -foregroundcolor " red "
$Global:Pass = $false
}
2015-04-30 20:38:03 -04:00
$vcinstall = ( ( Select-String -SimpleMatch " VCInstall= " -Path " B:\Automate\automate.ini " ) . line ) . substring ( 10 )
If ( $vcinstall -eq " 50 " ) { $vcinstall = " 5 " }
If ( ! ( $vSphere50 ) -and ( $vcinstall -eq " 5 " ) ) {
Write-Host " You wish to install vSphere 5.0 but the installers aren't on the build share " -foregroundcolor " red "
$Global:Pass = $false
}
If ( ! ( $vSphere51 ) -and ( $vcinstall -eq " 51 " ) ) {
Write-Host " You wish to install vSphere 5.1 but the installers aren't on the build share " -foregroundcolor " red "
$Global:Pass = $false
}
If ( ! ( $vSphere55 ) -and ( $vcinstall -eq " 55 " ) ) {
Write-Host " You wish to install vSphere 5.5 but the installers aren't on the build share " -foregroundcolor " red "
$Global:Pass = $false
}
2016-04-14 21:59:32 -04:00
If ( ! ( $vSphere60 ) -and ( $vcinstall -eq " 60 " ) ) {
Write-Host " You wish to install vSphere 6.0 but the installers aren't on the build share " -foregroundcolor " red "
$Global:Pass = $false
}
2015-04-30 20:38:03 -04:00
Write-Host " Check Domain " -foregroundcolor " cyan "
$domain = [ System.DirectoryServices.ActiveDirectory.Domain ] :: GetCurrentDomain ( )
if ( $domain . Name -eq " lab.local " ) {
Write-Host ( " Correct Domain " ) -foregroundcolor " green "
} else {
Write-Host ( " Domain Broken " ) -foregroundcolor " red "
$Global:Pass = $false
}
Write-Host " Check Services " -foregroundcolor " cyan "
Check-ServiceRunning " Active Directory Domain Services "
Check-ServiceRunning " DHCP Server "
Check-ServiceRunning " DNS Server "
Check-ServiceRunning " Netlogon "
Check-ServiceRunning " Tftpd32_svc "
Check-ServiceRunning " SQL Server (SQLEXPRESS) "
Check-ServiceRunning " SQLBrowser "
If ( ( Get-VMPlatform ) -eq " VMware " ) { Check-ServiceRunning " VMTools " }
Write-Host " Check DNS " -foregroundcolor " cyan "
Check-DNSRecord ( " dc.lab.local " )
Check-DNSRecord ( " vc.lab.local " )
Check-DNSRecord ( " vma.lab.local " )
Check-DNSRecord ( " nas.lab.local " )
Check-DNSRecord ( " host1.lab.local " )
Check-DNSRecord ( " host2.lab.local " )
Check-DNSRecord ( " 192.168.199.4 " )
Check-DNSRecord ( " 192.168.199.5 " )
Check-DNSRecord ( " 192.168.199.6 " )
Check-DNSRecord ( " 192.168.199.7 " )
Check-DNSRecord ( " 192.168.199.11 " )
Check-DNSRecord ( " 192.168.199.12 " )
Check-DNSRecord ( " 192.168.199.38 " )
Check-DNSRecord ( " 192.168.199.39 " )
Check-DNSRecord ( " 192.168.199.40 " )
}
if ( $CompName -eq " VC " ) {
$HaveXP = test-Path ( " \\192.168.199.7\Build\WinXP.iso " )
$Have2K3 = test-Path ( " \\192.168.199.7\Build\Win2K3.iso " )
If ( ( Get-VMPlatform ) -eq " VMware " ) { Check-ServiceRunning " VMTools " }
$VCPath = " None "
If ( Test-path " C:\ProgramData\VMware\VMware VirtualCenter " ) {
$VCPath = " C:\ProgramData\VMware\VMware VirtualCenter "
$VCVer = ( Get-ItemProperty -Path " HKLM:\SOFTWARE\VMware, Inc.\VMware VirtualCenter " ) . InstalledVersion
}
If ( Test-path " C:\ProgramData\VMware\vCenterServer " ) {
$VCPath = " C:\ProgramData\VMware\vCenterServer\cfg\vmware-vpx "
$VCVer = ( Get-ItemProperty -Path " HKLM:\SOFTWARE\VMware, Inc.\vCenter Server " ) . ProductVersion
}
Write-Host " VC version $VCVer "
If ( ! ( $VCPath -eq " None " ) ) {
Write-Host " Check Files " -foregroundcolor " cyan "
if ( $Have2K3 -eq $True ) { Check-File " $VCPath \sysprep\svr2003\sysprep.exe " " Windows 2003 SysPrep " }
if ( $HaveXP -eq $True ) { Check-File " $VCPath \sysprep\xp\sysprep.exe " " Windows XP SysPrep " }
if ( Test-Path " B:\Automate\automate.ini " ) {
if ( $VCVer . StartsWith ( " 4 " ) ) {
if ( ( ( ( Select-String -SimpleMatch " DeployVUM= " -Path " B:\Automate\automate.ini " ) . line ) . substring ( 10 ) ) -like " true " ) { Check-ServiceRunning " VMware vCenter Update Manager Service " }
Check-ServiceRunning " ADAM_VMwareVCMSDS "
Check-ServiceRunning " VMware VirtualCenter Management Webservices "
Check-ServiceRunning " VMware VirtualCenter Server "
}
if ( $VCVer . StartsWith ( " 5 " ) ) {
if ( ( ( ( Select-String -SimpleMatch " DeployVUM= " -Path " B:\Automate\automate.ini " ) . line ) . substring ( 10 ) ) -like " true " ) { Check-ServiceRunning " VMware vSphere Update Manager Service " }
Check-ServiceRunning " ADAM_VMwareVCMSDS "
Check-ServiceRunning " VMware VirtualCenter Management Webservices "
Check-ServiceRunning " VMware VirtualCenter Server "
}
if ( $VCVer . StartsWith ( " 6 " ) ) {
if ( ( ( ( Select-String -SimpleMatch " DeployVUM= " -Path " B:\Automate\automate.ini " ) . line ) . substring ( 10 ) ) -like " true " ) { Check-ServiceRunning " VMware vSphere Update Manager Service " }
Check-ServiceRunning " VMware VirtualCenter Server "
2016-04-14 21:59:32 -04:00
Check-ServiceRunning " VMware vSphere Web Client "
Check-ServiceRunning " VMware Directory Service "
Check-ServiceRunning " VMware vSphere Profile-Driven Storage Service "
2015-04-30 20:38:03 -04:00
}
}
} Else {
Write-Host " vCenter is not installed " -foregroundcolor " Yellow "
}
if ( $Have2K3 -eq $true ) {
Check-OptionalFile " \\192.168.199.7\Build\Windows2K3.iso " " Lightly automated Windows Server 2003 ISO "
Check-OptionalFile " \\192.168.199.7\Build\Auto2K3.iso " " Fully automated Windows Server 2003 ISO "
}
if ( $HaveXP -eq $true ) { Check-OptionalFile " \\192.168.199.7\Build\AutoXP.iso " " Fully automated Windows XP ISO " }
}
if ( $CompName -eq " DC2 " ) {
Write-Host " Check Domain " -foregroundcolor " cyan "
$domain = [ System.DirectoryServices.ActiveDirectory.Domain ] :: GetCurrentDomain ( )
if ( $domain . Name -eq " lab.local " ) {
Write-Host ( " Correct Domain " ) -foregroundcolor " green "
} else {
Write-Host ( " Domain Broken " ) -foregroundcolor " red "
$Global:Pass = $false
}
Write-Host " Check Services " -foregroundcolor " cyan "
Check-ServiceRunning " Active Directory Domain Services "
Check-ServiceRunning " DNS Server "
Check-ServiceRunning " Netlogon "
Check-ServiceRunning " SQL Server (SQLEXPRESS) "
Check-ServiceRunning " SQLBrowser "
If ( ( Get-VMPlatform ) -eq " VMware " ) { Check-ServiceRunning " VMTools " }
Write-Host " Check DNS " -foregroundcolor " cyan "
Check-DNSRecord ( " dc.lab.local " )
Check-DNSRecord ( " vc.lab.local " )
Check-DNSRecord ( " vma.lab.local " )
Check-DNSRecord ( " nas.lab.local " )
Check-DNSRecord ( " host1.lab.local " )
Check-DNSRecord ( " host2.lab.local " )
Check-DNSRecord ( " 192.168.199.4 " )
Check-DNSRecord ( " 192.168.199.5 " )
Check-DNSRecord ( " 192.168.199.6 " )
Check-DNSRecord ( " 192.168.199.7 " )
Check-DNSRecord ( " 192.168.199.11 " )
Check-DNSRecord ( " 192.168.199.12 " )
Check-DNSRecord ( " 192.168.199.38 " )
Check-DNSRecord ( " 192.168.199.39 " )
Check-DNSRecord ( " 192.168.199.40 " )
}
if ( $CompName -eq " VC2 " ) {
If ( ( Get-VMPlatform ) -eq " VMware " ) { Check-ServiceRunning " VMTools " }
If ( Test-path " C:\ProgramData\VMware\VMware VirtualCenter " ) {
Write-Host " Check Services " -foregroundcolor " cyan "
Check-ServiceRunning " VMware VirtualCenter Management Webservices "
Check-ServiceRunning " VMware VirtualCenter Server "
Check-ServiceRunning " ADAM_VMwareVCMSDS "
} Else {
Write-Host " vCenter is not installed " -foregroundcolor " Yellow "
}
}
Write-Host " The final result " -foregroundcolor " cyan "
if ( $Global:Pass -eq $false ) {
Write-Host ( " ***************************************** " ) -foregroundcolor " red "
Write-Host ( " * " ) -foregroundcolor " red "
Write-Host ( " * Oh dear, we seem to have a problem " ) -foregroundcolor " red "
Write-Host ( " * " ) -foregroundcolor " red "
Write-Host ( " * Check the build log to see what failed " ) -foregroundcolor " red "
Write-Host ( " * " ) -foregroundcolor " red "
Write-Host ( " ***************************************** " ) -foregroundcolor " red "
} else {
Write-Host ( " ************************************** " ) -foregroundcolor " green "
Write-Host ( " * " ) -foregroundcolor " green "
Write-Host ( " * Build looks good " ) -foregroundcolor " green "
Write-Host ( " * " ) -foregroundcolor " green "
Write-Host ( " * Move on to the next stage " ) -foregroundcolor " green "
Write-Host ( " * " ) -foregroundcolor " green "
Write-Host ( " ************************************** " ) -foregroundcolor " green "
}
Read-host " Press <Enter> to exit "