有没有设置动态Windows虚拟桌面主机池负载平衡方法的解决方案?

我想在每天的19 PM〜11 AM将主机池负载平衡方法从广度优先更改为深度优先,以减少VM的成本。

例如: 主机池负载平衡方法:呼吸优先,11:00 AM〜17:00 PM 主机池负载平衡方法:深度优先,下午17:00到上午11:00

有人知道这件事吗? 参考:SET-Hostpool

xw7932 回答:有没有设置动态Windows虚拟桌面主机池负载平衡方法的解决方案?

您可以使用Azure自动运行手册来执行此操作,请按照以下步骤操作。

1。导航至Azure门户create an automation account,然后创建一个powershell runbook

2。导航到自动化帐户-> Modules-> Browse Gallery->搜索Powershell模块Microsoft.RDInfra.RDPowerShell并将其导入,在导入后,如下图所示。>

enter image description here

3。在将Create Azure Run As account设置为Yes的情况下创建自动化帐户时,它将在您的Azure AD租户中创建一个AD应用程序以及一个服务主体,其名称将类似于{{ 1}}。在azure Runbook中,您无法使用交互方式登录虚拟桌面,因此该选项是使用服务主体(以帐户身份运行)登录。

在登录之前,您需要创建一个角色分配,以便服务主体可以登录到Virtual Desktop,只需遵循此link

automationaccountname_fc2Wgay6EkHrpgrpMSbF1V8uc6LVDkz9tgb8T6YUhaQ=

要在上面的脚本中找到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-> Azure Active Directory-> App registrations->查找“运行方式”的AD应用帐户->像下面一样获得All applications

enter image description here

4。导航到在步骤1中创建的powershell Runbook,使用如下脚本,它将主机池设置为使用广度优先负载平衡。

ApplicationId

然后保存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>" -BreadthFirstLoadBalancer

5。在runbook1中导航到$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 ,有关如何使用它的更多详细信息,请参阅此doc。例如,在您的情况下,只需将其设置如下。然后runbook1将每天在Schedule运行。在runbook2中,这是相同的逻辑,然后runbook2将每天在11:00 AM上运行。配置完计划后,将两个运行手册分层。

enter image description here

本文链接:https://www.f2er.com/2855537.html

大家都在问