Citrix录屏服务器重置QMID,解决部分用户录屏失败
代码的功能如下:主要是为了防止QMID冲突,导致部分用户录屏失败。
移除注册表中的旧 QMId,该操作可能是为了清理之前的配置。
设置 MSMQ 的 SysPrep 标志为 1,可能是为了在 SysPrep 过程中进行一些特殊处理。
获取依赖于 MSMQ 服务的其他服务。
强制重启 MSMQ 服务,以获取一个新的 QMId。
启动依赖于 MSMQ 服务的其他服务,前提是这些服务的启动模式为自动。
先执行 Set-ExecutionPolicy RemoteSigned 确保在 PowerShell 中,将执行策略设置为 RemoteSigned 或不限制。
如下内容通过PS1后缀保存,放在计划任务执行,通过system用户执行。
# 移除旧的 QMId 并设置 MSMQ 的 SysPrep 标志 Remove-ItemProperty -Path HKLM:Software\Microsoft\MSMQ\Parameters\MachineCache -Name QMId -Force Set-ItemProperty -Path HKLM:Software\Microsoft\MSMQ\Parameters -Name "SysPrep" -Type DWord -Value 1 # 获取依赖的服务 $depServices = Get-Service -name MSMQ -dependentservices | Select -Property Name # 重启 MSMQ 以获取新的 QMId Restart-Service -Force MSMQ # 启动依赖的服务 if ($depServices -ne $null) { foreach ($depService in $depServices) { $startMode = Get-WmiObject win32_service -filter "NAME = '$($depService.Name)'" | Select -Property StartMode if ($startMode.StartMode -eq "Auto") { Start-Service $depService.Name } } }