在做POC过程中,遇到了会话主机状态一直处于正在升级,如下图
会话主机处于正在升级,无法使用,可能的原因是代理或堆栈未成功安装。需要使用管理员登录会话主机进行检查相关服务,在PowerShell 提示符下运行 qwinsta.exe,并记下 SESSIONNAME 列中 rdp-sxs 旁边显示的版本号。 如果 rdp-tcp 和 rdp-sxs 条目的 STATE 列不是“Listen”,或者 rdp-tcp 和 rdp-sxs 条目根本未列出,则表示存在堆栈问题。
执行完qwinsta.exe 结果如下图
可以发现少了rdp-sxs条目。正常状态的会话主机,运行完qwinsta.exe结果如下图
解决方案:重新安装sxs堆栈
运行Stop-Service RDAgentBootLoader命令来停止 RDAgentBootLoader 服务
在转到“控制面板”>“程序”>“程序和功能”,或在 Windows 11 上转到“设置应用”>“应用”。卸载“远程桌面服务 SxS 网络堆栈”的最新版本。
返回到 PowerShell 提示符,运行以下命令,将会话主机 VM 上可用于并行堆栈的最新安装程序的文件路径添加到变量并列出其名称:
$sxsMsi = (Get-ChildItem "$env:SystemDrive\Program Files\Microsoft RDInfra\" | ? Name -like SxSStack*.msi | Sort-Object CreationTime -Descending | Select-Object -First 1).FullName
$sxsMsi
运行以下命令,安装会话主机 VM 上可用于并行堆栈的最新安装程序:
msiexec /i $sxsMsi
安装完成之后,重新启动会话主机。在此执行qwinsta.exe命令查看服务运行状态
服务状态已正常处于侦听状态,回到Azure 门户中检查会话主机状态,发现状态已变为可用
至此问题解决。