无人参与的桌面流运行失败,出现 MSEntraMachineAlwaysPromptingForPassword 错误

本文提供了在 Microsoft Power Automate 桌面版 中运行无人参与桌面流时发生的错误的解决方案。

现象

无人参与的桌面流运行失败,并出现“MSEntraMachineAlwaysPromptingForPassword”错误代码(前为“AADMachineAlwaysPromptingForPassword”)。

{
    "error":{
        "code": "MSEntraMachineAlwaysPromptingForPassword",
        "message": "Could not create unattended session with these credentials."  
    }    
}

运行使用Power Automate 桌面版页生成的流的“正文”部分中显示的错误代码的屏幕截图。

原因

Power Automate 桌面版无法验证计算机上的 Microsoft Entra ID(前为 Azure Active Directory)凭据。 此问题通常是由计算机上的组策略设置引起的。

解决方法 1:对具有用户证书的远程桌面使用 Microsoft Entra 身份验证

此解决方案需要Power Automate 桌面版版本 2.50 或更高版本,并且当无法向桌面流连接帐户授予多重身份验证(MFA)异常时,必须使用此解决方案。

有关如何为 Power Automate 设置Microsoft基于 Entra 证书的身份验证的步骤,请参阅“配置基于证书的身份验证”(预览版)。

解决方法 2:对具有用户名和密码的远程桌面使用 Microsoft Entra 身份验证

此解决方法需要Power Automate 桌面版 2.49 或更高版本。 如果未为桌面流连接使用的帐户启用 MFA,则可以改为使用用户名和密码设置 Microsoft Entra 身份验证。

  1. 使用管理权限打开注册表编辑器(regedit)。 导航到以下注册表路径,使用名称 UseRdsAadAuthentication创建新的 DWORD-32 值,然后将值 UseRdsAadAuthentication 设置为 1

    注册表路径 注册表项 DWORD-32 值
    Computer\HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\Power Automate Desktop\Service UseRdsAadAuthentication 1
  2. 隐藏目标设备组的同意提示对话框。

  3. 重启 Power Automate 服务。

  4. 使用具有用户名和密码凭据的 Microsoft Entra ID 连接。 请注意,此帐户需要 MFA 异常。

解决方法 3:禁用 fPromptForPassword

若要解决此问题,请检查计算机上的组策略设置。

  1. 按 Windows 键+R 打开 “运行 ”对话框。

  2. 键入 gpedit.msc ,然后按 Enter 打开本地组策略编辑器。

  3. 导航到计算机配置>管理模板>Windows 组件>远程桌面服务>远程桌面会话主机>安全性。

  4. 在连接设置时查找始终提示输入密码。

    • 如果启用此设置,请与 IT 部门合作,禁用该计算机的策略。

      备注

      此值也会反映在 Computer\HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows NT\Terminal Services注册表中。 如果终端服务密钥的 fPromptForPassword DWORD 值设置为 1,则会启用该设置,并且你需要与 IT 部门合作来禁用它(只是更改注册表值通常不够,因为它可能还原)。

    • 如果未启用连接设置时始终提示输入密码,但收到错误代码,请在“运行”对话框中键入 regedit以打开注册表编辑器。 在注册表编辑器中 ,导航到 Computer\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp 注册表项。 然后,查找 fPromptForPassword DWORD 并将其设置为 0。 如果 DWORD 不存在,请创建它并将其值设置为 0