VMWare View installation script – Part 3

Hello,

Pour continuer dans cette série d’articles sur l’automatisaion de l’installation des infra VDI Horizon View, voici le script pour installer View Connection Manager.

J’ai pris le parti d’utiliser les cmdlets Quest pour piloter l’AD, n’étant pas sur que le serveur dispose des cmdlets Microsoft natifs d’installés.

Le script va installer le View Connection Manager, il va aussi aller configurer la base de données des events et enregistrer la licence.

Enjoy !

 

PS: la gestion des erreurs est sommaire, je sais Laurent 😀

param (
[String]$QuestBinaries = "c:\temp\ActiveRolesManagementShell_x64_1.6.0.msi",
[String]$ViewBinaries ="C:\temp\VMware-viewconnectionserver-x86_64-5.1.2-928164.exe",
[Parameter(Mandatory=$true)]
[String]$Licence,
[Parameter(Mandatory=$true)]
[String]$RecoveryPassword,
[String]$sid = "S-1-5-32-544", # Administrators SID account
[Parameter(Mandatory=$true)]
[String]$DatabaseServer,
[String]$DatabaseName = "ViewEvents",
[Parameter(Mandatory=$true)]
[String]$DBPassword,
[String]$DBPrefix = "AA_",
[String]$DBUser = "sql_view"
)

Try {
#Install silently view
$arg = '/S /v "/qn VDM_SERVER_INSTANCE_TYPE=1 VDM_INITIAL_ADMIN_SID=' + $sid + ' VDM_SERVER_RECOVERY_PWD=' + $RecoveryPassword + '"'
$Install = [System.Diagnostics.Process]::Start($ViewBinaries, $arg)
$Install.waitforexit()
}
Catch {
Throw "Installation of Connection Manager failed. Error: $($_.Exception.Message)"
}
Finally {
#Install View Broker cmdlets
$installpath = (get-itemproperty "HKLM:SoftwareVMware, Inc.VMware VDM").ServerInstallPath
set-alias installUtil $env:windirMicrosoft.NETFramework64v2.0.50727installUtil
$null = (installUtil ($installpath + "binPowershellServiceCmdlets.dll"))
Add-PSSnapin VMware.View.Broker
}

Try {
#Install Quest
$setup = "msiexec /i $QuestSetup /quiet /norestart"
Invoke-Expression $setup
}
Catch {
Throw "Installation of Quest AD Management failed. Error: $($_.Exception.Message)"
}
Finally {
Start-Sleep 300 # a little break to get time for Quest strange MSi to install correctly.
}

# Creating the database for view events
Try {
Add-PSSnapin Quest.ActiveRoles.ADManagement
Connect-QADService -service 'localhost:389' | Out-Null
}
Catch {
Throw "Connection to AD failed. Error: $($_.Exception.Message)"
}
Finally {
Try {
$CN = ([GUID]::NewGuid()).Tostring()
$props = @{sAMAccountName=$CN;
"pae-DatabaseUsername"=$DBUser;
"pae-DatabaseTablePrefix"=$DBPrefix;
"pae-DatabaseServerType"="SQLSERVER";
"pae-DatabasePortNumber"="1433";
"pae-DatabasePassword"=$DBPassword;
"pae-DatabaseName"=$DatabaseName;
"pae-DatabaseHostName"=$DatabaseServer}
New-QADObject -Type "pae-eventdatabase" -ParentContainer "OU=Database,OU=Properties,dc=vdi,dc=vmware,dc=int" -name $CN -ObjectAttributes $props | Out-Null
}
Catch {
Throw "Creating Database Object. Error: $($_.Exception.Message)"
}
}

Try {
#Add licence
Set-License -key $Licence
}
Catch {
}
Finally {
if (Test-Path "C:Program Files (x86)VMwareInfrastructurevSphere PowerCLIVMware.VimAutomation.dll") {
Write-Host "View Connection Manager successfully installed AND Configured !"
}
else {
Write-Error "View Connection Manager successfully installed AND Configured !"
}
}