我对此感到困惑,找不到解决方案。我的目标是在主机状态为“不可用”的特定主机池中启动任何 AVD 主机。本质上,如果机器没有运行,我想按下“开始”按钮。这是我尝试过的:
Connect-AzAccount -Tenant $tenantid "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
$subscription = "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
$RG = "azr-wu2-avd-rg-prdpooled-1"
$hostpoolname = "azr-wu2-avdpooled-prdhostpool"
if ((get-azcontext).Subscription.id -ne $subscription) { Set-AzContext -Subscription $subscription }
$avdhosts = get-azwvdSessionHost -HostPoolName $hostpoolname -resourcegroupname $rg
foreach ($avdhost in $avdhosts) {
write-host "$($avdhost.name) - " -NoNewline
if ($avdhost.Status -eq "Unavailable") {
write-host " Starting " -ForegroundColor yellow -NoNewline
try {
start-azvm -name $avdhost.name -ResourceGroupName $RG -ErrorAction Stop
write-host "Succeeded" -ForegroundColor green
} catch {
write-host "FAILED" -ForegroundColor red
}
} else {
write-host $avdhost.Status -ForegroundColor Green
}
}
我可以成功读取机器状态。但是,当它到达“start-azvm”行时,我得到了这个错误:
start-azvm:找不到资源组“azr-wu2-avd-rg-prdpooled-1”下的资源“Microsoft.Compute/virtualMachines/azr-wu2-avdpooled-prdhostpool”。有关更多详细信息,请转到https://aka.ms/ARMResourceNotFoundFix ErrorCode: ResourceNotFound ErrorMessage: The Resource 'Microsoft.Compute/virtualMachines/azr-wu2-avdpooled-prdhostpool' 在资源组 'azr-wu2-avd-rg-prdpooled -1' 未找到。有关更多详细信息,请转到https://aka.ms/ARMResourceNotFoundFix ErrorTarget: StatusCode: 404 ReasonPhrase: Not Found OperationID : 6a51b1bf-e7de-4195-b4f0-4b776ab7fe1e At line:1 char:1
- start-azvm -name $avdhost.name -ResourceGroupName $RG -ErrorAction St ...
+ CategoryInfo : CloseError: (:) [Start-AzVM], ComputeCloudException + FullyQualifiedErrorId : Microsoft.Azure.Commands.Compute.StartAzureVMCommand
如您所见,我直接从我之前使用“get-azwvdsessionhost”检索的主机中提取主机名。我也在使用相同的资源组 ($rg)。有趣的是,错误表明它在资源组中找不到资源(主机池的名称)。该主机池位于资源组内,并且该错误永远不会指示我尝试启动的主机名。
这看起来应该很简单,我希望有人可以让我面面相觑并继续前进。
谢谢