我想将每天19 PM〜11 AM的主机池负载平衡方法从广度优先更改为深度优先,以降低VM的成本。
例如:主机池负载平衡方法:呼吸优先,11:00 AM〜17:00 PM主机池负载平衡方法:深度优先,17:00 PM〜11:00 AM
是否有人对此有所了解?参考:SET-Hostpool
您可以使用Azure自动运行手册来执行此操作,请按照以下步骤操作。
1.Navigate到蔚蓝的门户网站,创建一个自动化的帐户,然后创建一个PowerShell的运行手册。
2.导航到自动化帐户-> Modules
-> Browse Gallery
->搜索powershell模块Microsoft.RDInfra.RDPowerShell
并将其导入,导入后,如下图所示。
3.当使用设置Create Azure Run As account
as创建自动化帐户时Yes
,它将在您的Azure AD租户中创建一个AD应用程序以及一个服务主体,其名称将类似于automationaccountname_fc2Wgay6EkHrpgrpMSbF1V8uc6LVDkz9tgb8T6YUhaQ=
。在azure Runbook中,您无法使用交互式方式登录虚拟桌面,因此该选项是使用服务主体(以帐户身份运行)登录。
登录之前,您需要创建一个角色分配,以便服务主体可以登录Virtual Desktop,只需点击此链接即可。
Add-RdsAccount -DeploymentUrl "https://rdbroker.wvd.microsoft.com"
Get-RdsTenant
$myTenantName = "<Windows Virtual Desktop Tenant Name>"
New-RdsRoleAssignment -RoleDefinitionName "RDS Owner" -ApplicationId <service-principal-appid> -TenantName $myTenantName
要查找ApplicationId
上面的in脚本,请导航至Azure Active Directory
门户中的-> App registrations
-> All applications
->查找您的“以帐户身份运行”的AD应用->ApplicationId
如下所示。
4.导航到在步骤1中创建的Powershell Runbook,使用如下脚本,它将主机池设置为使用广度优先负载平衡。
$connectionName = "AzureRunAsConnection"
try
{
# Get the connection "AzureRunAsConnection "
$servicePrincipalConnection=Get-AutomationConnection -Name $connectionName
"Logging in to Windows Virtual Desktop..."
Add-RdsAccount `
-DeploymentUrl "https://rdbroker.wvd.microsoft.com" `
-AadTenantId $servicePrincipalConnection.TenantId `
-ApplicationId $servicePrincipalConnection.ApplicationId `
-CertificateThumbprint $servicePrincipalConnection.CertificateThumbprint
}
catch {
if (!$servicePrincipalConnection)
{
$ErrorMessage = "Connection $connectionName not found."
throw $ErrorMessage
} else{
Write-Error -Message $_.Exception
throw $_.Exception
}
}
Set-RdsHostPool -TenantName "<contoso>" -Name "<contosoHostPool>" -BreadthFirstLoadBalancer
然后保存runbook1,并创建另一个runbook2,使用下面的脚本,它将主机池设置为使用深度优先负载平衡。
$connectionName = "AzureRunAsConnection"
try
{
# Get the connection "AzureRunAsConnection "
$servicePrincipalConnection=Get-AutomationConnection -Name $connectionName
"Logging in to Windows Virtual Desktop..."
Add-RdsAccount `
-DeploymentUrl "https://rdbroker.wvd.microsoft.com" `
-AadTenantId $servicePrincipalConnection.TenantId `
-ApplicationId $servicePrincipalConnection.ApplicationId `
-CertificateThumbprint $servicePrincipalConnection.CertificateThumbprint
}
catch {
if (!$servicePrincipalConnection)
{
$ErrorMessage = "Connection $connectionName not found."
throw $ErrorMessage
} else{
Write-Error -Message $_.Exception
throw $_.Exception
}
}
Set-RdsHostPool -TenantName "<contoso>" -Name "<contosoHostPool>" -DepthFirstLoadBalancer -MaxSessionLimit 10
5.导航到Schedule
runbook1中的,有关如何使用它的更多详细信息,请参阅此文档。例如,根据您的情况,将其设置如下。然后runbook1将11:00 AM
每天运行。在runbook2中,这是相同的逻辑,然后runbook2将17:00 PM
每天运行。配置计划后,将两个运行手册分层。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句