From 366aef13c2863d0cb9cce0bf29c0dc44124a403f Mon Sep 17 00:00:00 2001 From: Ron Peeters Date: Mon, 15 Aug 2022 17:34:35 +0200 Subject: [PATCH 1/2] using get-hvpool to retrieve existing settings. Signed-off-by: Ron Peeters --- Modules/VMware.Hv.Helper/VMware.HV.Helper.psm1 | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/Modules/VMware.Hv.Helper/VMware.HV.Helper.psm1 b/Modules/VMware.Hv.Helper/VMware.HV.Helper.psm1 index c62fb11..b8925d3 100644 --- a/Modules/VMware.Hv.Helper/VMware.HV.Helper.psm1 +++ b/Modules/VMware.Hv.Helper/VMware.HV.Helper.psm1 @@ -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,18 @@ 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 + } 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 +7076,7 @@ function Start-HVPool { $poolList.Add($id,$name) $poolType.Add($id,$type) $poolSource.Add($id,$source) + $poolProvisioningSpecs.Add($id,$poolProvisioningSettings) } } } @@ -7124,6 +7138,8 @@ function Start-HVPool { $spec.Settings = New-Object VMware.Hv.DesktopPushImageSettings $spec.Settings.LogoffSetting = $logoffSetting $spec.Settings.StopOnFirstError = $stopOnFirstError + $spec.Settings.AddVirtualTPM = ($poolProvisioningSpecs.$item).AddVirtualTPM + Write-Verbose -Message "virtual TPM setting is: $($spec.Settings.AddVirtualTPM)" if ($startTime) { $spec.Settings.startTime = $startTime } if (!$confirmFlag -OR $pscmdlet.ShouldProcess($poolList.$item)) { $desktop_helper.Desktop_SchedulePushImage($services,$item,$spec) From e9f5fa2c526517020891e1b79e8c3a8407ac6255 Mon Sep 17 00:00:00 2001 From: Ron Peeters Date: Wed, 17 Aug 2022 13:07:41 +0200 Subject: [PATCH 2/2] restore vTPM if previously defined Signed-off-by: Ron Peeters --- Modules/VMware.Hv.Helper/VMware.HV.Helper.psm1 | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/Modules/VMware.Hv.Helper/VMware.HV.Helper.psm1 b/Modules/VMware.Hv.Helper/VMware.HV.Helper.psm1 index b8925d3..f9d53f1 100644 --- a/Modules/VMware.Hv.Helper/VMware.HV.Helper.psm1 +++ b/Modules/VMware.Hv.Helper/VMware.HV.Helper.psm1 @@ -7065,6 +7065,7 @@ function Start-HVPool { } 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 @@ -7139,7 +7140,10 @@ function Start-HVPool { $spec.Settings.LogoffSetting = $logoffSetting $spec.Settings.StopOnFirstError = $stopOnFirstError $spec.Settings.AddVirtualTPM = ($poolProvisioningSpecs.$item).AddVirtualTPM - Write-Verbose -Message "virtual TPM setting is: $($spec.Settings.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)