次の方法で共有


デスクトップ用 Power Automateでの直接接続の問題

この記事では、Microsoft デスクトップ用 Power Automate での直接接続の問題を解決する方法について詳しく説明します。

適用対象: Power Automate
元の KB 番号: 5016345

現象

クラウド フローからデスクトップ フローを実行したり、デスクトップ フロー マシンを管理したりしようとすると、次のいずれかの問題が発生する可能性があります。

シナリオ 1

  • 以前に登録したマシンは、起動してネットワークに接続するとオフラインで表示されます。

  • 実行は、次のいずれかのエラー メッセージで失敗します。

    • ConnectionNotEstablished - 許可されたタイムアウト内に接続されたリスナーのいずれも接続を受け入れられませんでした。 コンピューターがオンラインであることを確認します。

    • NoListenerConnected - エンドポイントが見つかりませんでした。 エンドポイントに接続されているリスナーはありません。 コンピューターがオンラインであることを確認します。

シナリオ 2

  • デスクトップ フローは、ユーザー セッションが実行されている (参加済みの実行) 限り、または最後のユーザーがサインアウトしてから数分 (無人実行) 場合でも、登録済みのコンピューター上で実行されます。
  • マシンへの接続は、数分後に失われます (たとえば、15 分)。
  • ユーザーがコンピューターにサインインし直すと、接続が再確立されます。

シナリオ 3

Windows コンピューターからサインアウトすると、Power Automate ポータルでマシンの状態が切断済みとして表示されます。

原因

マシンへの直接接続では 、Azure Windows Communication Foundation (WCF) リレー を使用して、Microsoft クラウドがオンプレミスのマシンに接続し、デスクトップ フローの実行をスケジュールできます。 オンプレミスで実行される Power Automate Windows サービスは、Web ソケットを開くことで Azure クラウドに接続するリレー リスナーを開きます。

リレー接続の問題の最も一般的な原因は、マシンがネットワークへの接続を失うことです。 これは、ユーザーがマシンにサインインしていないときに、コンピューターの電源がオンにされていないか、ネットワークが失われていることが原因で発生する可能性があります。

Power Automate サービスは、ネットワークにアクセスでき、 *.servicebus.windows.net に接続できる必要がある独自の Windows アカウント (NT Service\UIFlowService 既定) で実行されます。 詳細については、ネットワークの要件に関するページを参照してください。

Azure 仮想マシン (VM) を使用してデスクトップ用 Power Automateを実行する場合は、Azure VM が配置されているサブネット レベルで Microsoft.ServiceBus エンドポイントがオフになっていることを確認します。 これは、既知の制限です。 詳細については、「 Azure Relay はネットワーク サービス エンドポイントをサポートしていませんを参照してください。

マシンと Power Automate サービスがネットワークへの信頼性の高いアクセス権を持っている場合、次に問題の原因は、オンプレミスネットワークのブロックまたは Azure リレー接続の妨害です。

どちらのシナリオでも一般的な原因は、送信トラフィックを制限するネットワーク プロキシまたはファイアウォールです。

特に、Power Automate サービスが独自の専用アカウントで実行されることを考えると、接続された Windows ユーザーの資格情報を使用する認証済みプロキシ。

Power Automate サービスで使用される既定のプロキシ設定をオーバーライドする必要があると判断した場合はProxy のセットアップを参照してください。 オンプレミスのサービス アカウントを変更する必要がある場合もあります。

Azure Relay が正常に機能するためには、プライマリ名前空間とセカンダリ名前空間の両方に関連付けられているリレー ゲートウェイを許可するようにプロキシとファイアウォールの設定を構成する必要があります。 これにより、これらのゲートウェイ間の通信がネットワーク セキュリティ設定によってブロックされないようにします。

調査方法

  1. ネットワーク管理者に問い合わせてください。

    ネットワークの構成とログを分析するには、ネットワーク管理者に問い合わせてください。

  2. ネットワーク トポロジについて説明します。

    • ネットワーク デバイス (NAT、ファイアウォール、プロキシなど) を介してパブリック インターネットへのトラフィックのパスをトレースします。
    • 影響を受ける実行中にデバイスからログを収集し、 *.servicebus.windows.net へのトラフィックがパブリック インターネットに正常に到達したことを確認します。
  3. ネットワーク トラフィックがプロキシを使用して実行される場合は、Power Automate サービス (UIFlowService) によって使用される オンプレミス アカウントを変更 することを検討してください。

  4. Power Automate サービス (UIFlowService) から WCF ログを取得します。 詳細については、「 WCF トレースを有効にする」を参照してください。

  5. ネットワーク構成で Web ソケット トラフィックと実行時間の長い接続が許可されていることを確認します。 プロキシなどの一部のネットワーク デバイスでは、一定期間後に接続が自動的に終了し、通信が中断される可能性があります。

  6. ファイアウォールで Azure Relay ゲートウェイへの接続が許可されていることを確認します。

    手順 1: Azure Relay 名前空間を特定する

    マシンを Power Automate クラウド サービスに接続するために、2 つの Azure Relay 名前空間を使用できます。 マシンで使用される名前空間を識別するには:

    1. Power Automate マシン ランタイム アプリケーションを起動し、サインインします。
    2. [ クラウド ランタイムの接続の問題を診断する ] セクションを見つけて、[ 診断ツールの起動] を選択します。
    3. 診断が完了するまで待ちます。
    4. [ レポートの生成] を選択します
    5. 生成された XLS ファイルを開き、[ データ ] 列を見つけます。
    6. PrimaryRelaySecondaryRelay の URL から名前空間パーツを抽出します。 たとえば、https://<namespace>/guid_guidなどです。

    手順 2: プライマリ リレーとセカンダリ リレーの両方に必要な DNS 名を使用してファイアウォールを構成する

    1. すべての Relay ゲートウェイのドメイン ネーム システム (DNS) 名を使用してファイアウォールを構成します。

      DNS 名は 、スクリプトを実行して見つけることができます。 このスクリプトは、接続を確立するために必要なすべてのゲートウェイの完全修飾ドメイン名 (FQDN) を解決します。

    2. IP アドレスではなくポート 443 で DNS 名を許可するようにファイアウォール規則を構成します。

    手順 3: 手動接続テストを実行する

    クラウド接続の問題がある場合は、コンピューターで WCF トレースを有効にすることができます。 詳細については、「 WCF トレースを有効にする」を参照してください。

    WCF ログには、特定の DNS または IP アドレスの接続に関連する例外が含まれている必要があります。または、プロキシ構成が不足している点を示す必要があります。

    マシンとエンドポイントの間の接続をテストするには、次のコマンドを使用して PowerShell から TCP ping を実行します。

    Test-netconnection \<ipaddress or dnsname> -port 443
    

    TcpTestSucceededFalseが表示されている場合は、ファイアウォールで接続が許可されていない可能性があります。 ネットワーク チームに問い合わせて、プロキシまたはファイアウォールがアクセスを妨げる可能性があるかどうかを理解します。 マシンと Azure Relay サービスの間には複数のファイアウォールとプロキシが存在する可能性があるため、各サブネット構成を確認してください。

サポート チケットを開くときに含める情報

それでも問題が解決しない場合は、次の詳細を指定して、Microsoft のサポート チケットを開くことができます。

  • ネットワーク トポロジ: トラフィックが通過するデバイスは何ですか。 詳細については、「 調査方法」の手順 2 を参照してください。
  • コンピューター上の Power Automate サービス (UIFlowService) が既定のアカウント (NT Service\UIFlowService) として実行されているか、別のアカウントとして実行されるように変更されているか。
  • トラフィックが実際にパブリック インターネットに渡されていることを示すネットワーク デバイスからのログ。 問題の時刻と、ログで使用されるタイム ゾーンを含めます。
  • 影響を受けたマシンからの WCF トレース。 詳細については、「 WCF トレースを有効にする」を参照してください。
  • 影響を受けた実行のデスクトップ フロー実行 ID。
  • 影響を受けるコンピューターからのローカル ログ: Power Automate マシン ランタイム アプリのトラブルシューティング ウィンドウを使用して抽出できます。

WCF トレースを有効にする

  1. インストール フォルダー (通常は C:\Program Files (x86)\Power Automate Desktop) で、 UIFlowService.exe.config ファイルを編集します。 管理者としてテキスト エディターを実行する必要があります。

  2. </system.net> と <appSettings の間に次の構成セクションを追加>。

    正しい場所に挿入する必要がある config セクションのスクリーンショット。

    <system.diagnostics>
      <sources>
        <source name="System.ServiceModel" 
                switchValue="Information,ActivityTracing"
                propagateActivity="true">
          <listeners>
            <add name="wcfTraces"
                 type="System.Diagnostics.XmlWriterTraceListener"
                 initializeData="c:\logs\PADwcfTraces.svclog" />
          </listeners>
        </source>
      </sources>
     <trace autoflush="true" />
    </system.diagnostics>
    
    • c:\logs\PADwcfTraces.svclog値は任意の有効なパスに置き換えることができますが、フォルダー (この例ではc:\logs) が存在している必要があります。 それ以外の場合は作成されず、ログは書き込まれません。
    • Power Automate サービスには、指定したフォルダーにログを書き込むアクセス許可が必要です。 Everyone ユーザーにフル コントロールを付与して、任意のユーザーまたはサービスがフォルダーに書き込むことができます。 または、Power Automate サービスのみにアクセス許可を制限するには、 sc showsid UIFlowServiceを実行してサービス ユーザーのセキュリティ識別子 (Sid) を見つけ、そのユーザーにアクセス許可を付与します。
  3. 構成ファイルを保存した後、Power Automate サービスを再起動します。

    1. [スタート] メニューで "サービス" を検索して、Windows サービス ツールを開きます。
    2. Power Automate サービスを見つけて右クリックし、[再起動] を選択します

    サービス ツールで Power Automate サービスを再起動するスクリーンショット。

トレースは指定されたファイルに保存され、接続の問題を診断するための詳細なログが提供されます。