メイン コンテンツへスキップ
サポート
Microsoft アカウントでサインイン
サインインまたはアカウントを作成してください。
こんにちは、
別のアカウントを選択してください。
複数のアカウントがあります
サインインに使用するアカウントを選択してください。

現象

参加モードで正常に実行できるスクリプトは、無人モードでは正常に実行されません。

通常、次のようなメッセージで失敗します。"アクション 'クリック' の実行に問題がありました。 Web ページでリンクをクリックできませんでした。

原因

無人実行での一般的なエラーは、次のいずれかが原因で発生します。

  • 無人モードに切り替える前に、参加モードでテストされていないスクリプト

  • 無人セッションで使用されるさまざまな構成

    • 無人実行で使用される別の Windows アカウントは、フローの作成に使用されたアカウントとは異なります

    • 画面の解像度 ( 画面の解像度を変更する方法を参照)

    • ブラウザーの構成

      • User

      • ポップアップ ブロック

      • 拡張機能 (見つからない/アクティブ化されていない)

  • 画面が完全に読み込まれていない (遅延がない)

  • セッションの開始時に UI オートメーションをブロックする UAC プロンプト

ソリューション

さまざまな原因が考えられるため、次のソリューションでは、失敗したアクションの前後にスクリーンショットを追加して視覚的なフィードバックを得る方法について説明します。 無人スクリプトの失敗後にスクリーンショットを注意深く見ると、上記の原因の 1 つを見つけるのに役立つ可能性があります。 また、表示解像度とスケール設定を比較する方法についても説明します。

フローに既にスクリーンショットがあり、実行に失敗している場合は、フローの実行をブロックするユーザー アカウント制御 (UAC) ダイアログが表示されることがあります。 フローを実行するために使用しているアカウントの問題を再現しているマシンにログインし、そのようなブロックダイアログがあるかどうかを確認してください。 その場合は、スタートアップ ルーチンを変更して、この問題が発生しないようにします。

トラブルシューティングにスクリーンショットを追加する

まず、接続で使用しているアカウントの問題を再現するコンピューターにログインします。 UI オートメーションをブロックしている可能性がある UAC プロンプトがないことを確認します。

UI オートメーションをブロックするものがない場合は、無人モードで失敗したステップの前後にスクリーンショットを撮ると、視覚的なフィードバックを得るのに役立ちます。

失敗した後にスクリーンショットを作成できるように、失敗した場合は失敗した手順を続行する必要があります。

1- [スクリーンショットの作成] アクションを探す

スクリーンショットアクションを実行する

 2- [スクリーンショットの作成] アクションをスクリプト側にドラッグ アンド ドロップする

スクリーンショットの作成アクションをドラッグ アンド ドロップする

3- アクションを編集し、クリップボードの代わりに "ファイル" を使用し、ファイル名の場所に "before" を使用 スクリーンショットのアクションの実行プロパティを入力する

4- その後、コピー/貼り付け、その中のに付けてスクリーンショットファイル名を変更 スクリーンショットのアクションの実行プロパティを複製して塗りつぶす

5- 失敗したステップを スクリーンショットで囲む

失敗した手順をスクリーンショットで囲む

6- 失敗したステップの onError 動作を変更する

6a - ステップを 編集 し、下部にある[onError]\(エラー\) をクリックします

エラー時の動作を変更する

6b- フロー実行を "フロー実行の続行" と "次のアクションに移動" に設定します

フローの実行を続行し、次のアクションに進む

7- 保存し、 ローカルで実行 してスクリーンショットが生成されることをテストし、 無人実行を再起動します

8- 無人 スクリーンショット ファイルを確認します。 

画面の解像度とスケールの違いを確認する

出席実行と無人実行の間で解決設定を比較するには、両方のモードで実行する前に、スクリプトに次のアクションを追加します。

  • PAD デザイナーで以下のコード スニペットをコピー/貼り付けます。これにより、解決設定をキャプチャし、タイムスタンプ付きファイルに出力するために必要な手順が作成されます。

DateTime.GetCurrentDateTime.Local DateTimeFormat: DateTime.DateTimeFormat.DateAndTime CurrentDateTime=> CurrentDateTime
Text.ConvertDateTimeToText.FromCustomDateTime DateTime: CurrentDateTime CustomFormat: $'''yyyy_MM_dd_hh_mm_ss''' Result=> FormattedDateTime
Workstation.GetScreenResolution MonitorNumber: 1 MonitorWidth=> MonitorWidth MonitorHeight=> MonitorHeight MonitorBitCount=> MonitorBitCount MonitorFrequency=> MonitorFrequency
@@copilotGeneratedAction: 'False'
Scripting.RunPowershellScript.RunPowershellScript Script: $'''Add-Type @\'
using System; 
using System.Runtime.InteropServices;
using System.Drawing;
public class DPI {  
  [DllImport(\"gdi32.dll\")]
  static extern int GetDeviceCaps(IntPtr hdc, int nIndex);
  public enum DeviceCap {
  VERTRES = 10,
  DESKTOPVERTRES = 117
  }
  public static float scaling() {
  Graphics g = Graphics.FromHwnd(IntPtr.Zero);
  IntPtr desktop = g.GetHdc();
  int LogicalScreenHeight = GetDeviceCaps(desktop, (int)DeviceCap.VERTRES);
  int PhysicalScreenHeight = GetDeviceCaps(desktop, (int)DeviceCap.DESKTOPVERTRES);
  return (float)PhysicalScreenHeight / (float)LogicalScreenHeight;
  }
}
\'@ -ReferencedAssemblies \'System.Drawing.dll\' -ErrorAction Stop
Return [DPI]::scaling() * 100''' ScriptOutput=> MonitorScaleOutput
File.WriteText File: $'''c:\\test\\resolution_%FormattedDateTime%.txt''' TextToWrite: $'''height: %MonitorHeight% width: %MonitorWidth% frequency: %MonitorFrequency% bitCount: %MonitorBitCount% scale: %MonitorScaleOutput%''' AppendNewLine: True IfFileExists: File.IfFileExists.Overwrite Encoding: File.FileEncoding.Unicode
  • ローカル実行が成功したことをチェック、最後のアクションの出力ファイル パスを確認して保存します。

  • 出席モードと無人モードの両方でスクリプトを実行し、解像度とスケール出力の値が両方のモードで同じかどうかをチェックします。

注:

前述のように、スクリーンショットアクション自体が失敗した場合、フローの実行をブロックするユーザー アカウント制御 (UAC) ダイアログが表示されることがあります。 フローを実行するために使用しているアカウントの問題を再現しているマシンにログインし、そのようなブロックダイアログがあるかどうかを確認してください。 その場合は、スタートアップ ルーチンを変更して、この問題が発生しないようにします。

スクリプトに他の手順がある場合は、スクリーンショットを撮ることができるようにエラーをスローしないように動作が変更されたため、後で失敗する可能性があります。 そのため、2 番目のスクリーンショットの後のエラーは無視する必要があります。 

問題が理解され、修正されたら、フローの元の動作を復元してエラーをスローします。

ヘルプを表示

その他のオプションが必要ですか?

サブスクリプションの特典の参照、トレーニング コースの閲覧、デバイスのセキュリティ保護方法などについて説明します。

コミュニティは、質問をしたり質問の答えを得たり、フィードバックを提供したり、豊富な知識を持つ専門家の意見を聞いたりするのに役立ちます。

この情報は役に立ちましたか?

言語の品質にどの程度満足していますか?
どのような要因がお客様の操作性に影響しましたか?
[送信] を押すと、Microsoft の製品とサービスの改善にフィードバックが使用されます。 IT 管理者はこのデータを収集できます。 プライバシーに関する声明。

フィードバックをいただき、ありがとうございます。

×