【问题现象】

MCS出来的虚拟机无法被删除

【环境】

VDA:Win7SP1 Enterprise 32bit

DDC:XenDesktop5.6

Machine Type:Pool-Randomly

【问题分析及处理】

1. 将虚拟机先从桌面组中移除并将其置成维护模式。

2. 右键删除虚拟机并从Active Directory中删除。界面开始停留在删除vm的进度条中,如下图:

clip_image001

3. 打开并查看windows事件查看器,发现以下报错信息:

虚拟机删除工作流操作失败,错误消息为: System.InvalidOperationException: Provisioning Scheme 'pool-xxxl' already has another task running

在 Citrix.DesktopUpdateManager.SDK.ProvVM.ProvVMLogic.CheckSchemeNotInUse(ProvisioningScheme scheme, Guid workflowId, Action setState)

在 Citrix.DesktopUpdateManager.SDK.RemoveVMsSupport.RemoveProvVMLogic.ValidateRemoval(RemoveVMsWorkflow context)

在 Citrix.DesktopUpdateManager.SDK.RemoveVMsSupport.RemoveVMsWorkflow.DoValidateInputs(Object sender, EventArgs e)

在 System.Workflow.ComponentModel.Activity.RaiseEvent(DependencyProperty dependencyEvent, Object sender, EventArgs e)

在 System.Workflow.Activities.CodeActivity.Execute(ActivityExecutionContext executionContext)

在 System.Workflow.ComponentModel.ActivityExecutor`1.Execute(T activity, ActivityExecutionContext executionContext)

在 System.Workflow.ComponentModel.ActivityExecutor`1.Execute(Activity activity, ActivityExecutionContext executionContext)

在 System.Workflow.ComponentModel.ActivityExecutorOperation.Run(IWorkflowCoreRuntime workflowCoreRuntime)

在 System.Workflow.Runtime.Scheduler.Run()

clip_image003

4. 管理员权限打开Powershell并通过asnp citrix.*加载snapin.查看provtask,发现workflowstatus是终止(Terminated)状态,且Task状态是TaskAlreadyRunningForProvisioningScheme

clip_image004

5. 这种情况是因为计算机目录对应的ProvsioningScheme被lock住导致

【解决方法】

1. 先根据用户的计算机目录找到对应的provschemeName,格式为”catlog_host”

2. 记录该provscheme对应的UID并通过powershell unlock即可

Unlock-ProvScheme -ProvisioningSchemeUid "Provschemeid"

3. 打开studio,重新删除vm->删除成功!