Merge pull request #587 from Geo-Ron/issue-586
HV.Helper: Issue 586 - reEnable vTPM if previously defined on desktop pool
This commit is contained in:
@@ -7028,6 +7028,7 @@ function Start-HVPool {
|
||||
$poolList = @{}
|
||||
$poolType = @{}
|
||||
$poolSource = @{}
|
||||
$poolProvisioningSpecs = @{}
|
||||
if ($pool) {
|
||||
foreach ($item in $pool) {
|
||||
if ($item.GetType().name -eq 'DesktopInfo') {
|
||||
@@ -7056,6 +7057,19 @@ function Start-HVPool {
|
||||
Write-Error "No desktopsummarydata found with pool name: [$item]"
|
||||
break
|
||||
}
|
||||
try {
|
||||
$poolSettingsObj = Get-HVPool -poolName $item -suppressInfo $true -hvServer $hvServer
|
||||
} catch {
|
||||
Write-Error "Make sure Get-HVPool advanced function is loaded, $_"
|
||||
break
|
||||
}
|
||||
if ($poolSettingsObj) {
|
||||
$poolProvisioningSettings = $poolSettingsObj.AutomatedDesktopData.VirtualCenterProvisioningSettings
|
||||
Write-Verbose "retrieved Pool Settings: $($poolProvisioningSettings | Out-String)"
|
||||
} else {
|
||||
Write-Error "No pool information found with pool name: [$item]"
|
||||
break
|
||||
}
|
||||
} else {
|
||||
Write-Error "In pipeline did not get object of expected type DesktopSummaryView/DesktopInfo"
|
||||
break
|
||||
@@ -7063,6 +7077,7 @@ function Start-HVPool {
|
||||
$poolList.Add($id,$name)
|
||||
$poolType.Add($id,$type)
|
||||
$poolSource.Add($id,$source)
|
||||
$poolProvisioningSpecs.Add($id,$poolProvisioningSettings)
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -7124,6 +7139,11 @@ function Start-HVPool {
|
||||
$spec.Settings = New-Object VMware.Hv.DesktopPushImageSettings
|
||||
$spec.Settings.LogoffSetting = $logoffSetting
|
||||
$spec.Settings.StopOnFirstError = $stopOnFirstError
|
||||
$spec.Settings.AddVirtualTPM = ($poolProvisioningSpecs.$item).AddVirtualTPM
|
||||
If (($poolProvisioningSpecs.$item).AddVirtualTPM) {
|
||||
Write-Verbose -Message "Restoring previous vTPM state"
|
||||
}
|
||||
Write-Debug -Message "fetched pool provisioning specs: $(($poolProvisioningSpecs.$item) | Out-String)"
|
||||
if ($startTime) { $spec.Settings.startTime = $startTime }
|
||||
if (!$confirmFlag -OR $pscmdlet.ShouldProcess($poolList.$item)) {
|
||||
$desktop_helper.Desktop_SchedulePushImage($services,$item,$spec)
|
||||
|
||||
Reference in New Issue
Block a user