This is all about taking a Target Device Template that exists within a Provisioning Server (PVS) Farm Collection and copying it to create target devices from a bunch of VMs.
If you have been following I took a MasterVM on a Hyper-V server and I copied that into a number of differently named / unique virtual machines (this includes local cache VHD and settings). And then I cycled through powering them on, getting their assigned MAC address and powering them off.
I now want to add those VMs into PVS as Target Devices.
From the last step in my script I have this array of VM Names and MAC addresses; $arrUpdatedVms
One hairy bit of this is adding the PVS cmdlets into the session. I do this as multiple steps but it could be a one-liner as well.
$installutil = $env:systemroot + '\Microsoft.NET\Framework64\v2.0.50727\installutil.exe'
& $installutil "$env:ProgramFiles\Citrix\Provisioning Services Console\McliPSSnapIn.dll"
Add-PSSnapin McliPSsnapin
Now, I want to iterate through the array and add each VM to the Collection, and I want to duplicate the settings of the Collection Template to save myself work later on.
(one note – this checks for the variable $copyTemplate to match “yes” – this just gives me a choice)
write-progress -Id 1 "Addding the VMs to the PVS collection" -Status "Executing"
foreach($e in $arrUpdatedVms){
$vm = $e.Split(",")
$deviceName = $vm[0]
$deviceMac = $vm[1]
"siteName=$siteName, collectionName=$collectionName, deviceName=$deviceName, deviceMac=$deviceMac"
if($copyTemplate -match "yes"){
#Optimally a Template was created that defines the vDisk and other settings.
& Mcli-Add Device -r siteName=$siteName, collectionName=$collectionName, deviceName=$deviceName, deviceMac=$deviceMac, copyTemplate=1
}
else{
#adding the device
& Mcli-Add Device -r siteName=$siteName, collectionName=$collectionName, deviceName=$deviceName, deviceMac=$deviceMac
}
}
write-progress -Id 1 "Addding the VMs to the PVS collection" -Completed $TRUE
Don’t blink, this is a pretty fast loop to go through all the VMs. Especially compared to the copy operation.
No comments:
Post a Comment