다음을 통해 공유


스크린샷을 사용하여 실패한 무인 실행 문제 해결

이 문서에서는 실패한 무인 데스크톱 흐름 실행 문제 해결에 대한 지침을 제공하며, 특히 문제를 진단하는 스크린샷 캡처에 초점을 맞춥니다.

적용 대상: Power Automate
원래 KB 번호: 5007976

증상

참가 모드에서 성공적으로 실행되는 데스크톱 흐름은 무인 모드에서 제대로 실행되지 않습니다. 다음과 같은 오류 메시지와 함께 실패할 수도 있습니다.

'Click' 작업을 실행하는 동안 문제가 발생했습니다. 웹 페이지에서 링크를 클릭할 수 없습니다.

원인

다음과 같은 이유로 무인 실행 실패가 발생할 수 있습니다.

  • 무인 모드로 배포되기 전에 스크립트가 참석 모드에서 철저히 테스트되지 않았을 수 있습니다.
  • 무인 세션은 다른 Windows 계정, 화면 해상도 또는 브라우저 설정(예: 사용자 프로필, 팝업 차단 설정, 누락된 확장 또는 비활성화된 확장)과 같이 참석한 세션과 다른 구성을 사용할 수 있습니다.
  • 스크립트의 지연 또는 타이밍 문제로 인해 화면이 완전히 로드되지 않을 수 있습니다.
  • UAC(사용자 계정 컨트롤) 프롬프트는 세션이 시작될 때 UI 자동화를 차단할 수 있습니다.

해결 방법

이 문제의 다른 원인이 있을 수 있으므로 다음 솔루션에서는 몇 가지 시각적 피드백을 얻기 위해 실패한 작업 전후에 스크린샷을 추가하는 방법을 설명합니다. 무인 모드에서 오류 전후에 찍은 스크린샷을 분석하면 이전에 나열된 문제에서 근본 원인을 식별하는 데 도움이 될 수 있습니다. 또한 이 솔루션은 참석 실행 실행과 무인 실행 간의 표시 해상도 및 크기 조정 설정을 비교하는 방법을 설명합니다.

흐름에 스크린샷을 추가하고 실행하지 못하는 경우 흐름 자동화를 방해하는 UAC 대화 상자가 있을 수 있습니다. 무인 흐름 실행에 대해 구성된 동일한 Windows 계정을 사용하여 문제가 발생하는 컴퓨터에 로그인하고 차단 대화 상자를 확인합니다. 이러한 대화 상자가 있는 경우 시작 구성을 조정하여 이 문제를 방지합니다.

문제 해결을 위한 스크린샷 추가

스크린샷 만들기 작업을 사용하여 무인 모드에서 실패한 단계 바로 앞과 후에 스크린샷 을 캡처할 수 있습니다. 스크린샷은 문제를 진단하는 데 도움이 되는 시각적 피드백을 제공할 수 있습니다. 오류 발생 후 스크린샷을 캡처할 수 있도록 "오류 발생 시" 동작을 수정하여 실패한 단계를 계속하도록 구성할 수 있습니다. 문제가 해결되면 흐름의 "오류 발생" 동작을 원래 설정으로 되돌립니다.

  1. 연결에서 사용하는 계정의 문제를 재현하는 컴퓨터에 로그인합니다. UAC 프롬프트가 UI 자동화를 차단하지 않는지 확인합니다.

  2. 스크린샷 실행 작업을 찾습니다.

    작업 페이지의 워크스테이션 섹션 아래 '스크린샷 찍기' 작업의 스크린샷

  3. 스크린샷 만들기 작업을 스크립트 쪽으로 끌어서 놓습니다.

  4. 스크린샷 저장 위치: 필드를 File로 설정하고, 이미지의 파일 경로와 이름을 지정하여 파일 이름에 "before"가 포함되도록 합니다. 저장을 선택합니다.

  5. 다른 스크린샷 만들기 작업을 추가하고 이미지의 파일 경로와 이름을 지정하여 파일 이름에 "after"가 포함되도록 합니다. 저장을 선택합니다.

    'after'가 포함된 파일 이름을 지정하는 스크린샷.

  6. 실패한 작업을 스크린샷 작업으로 감쌉니다.

    이 예제에서 새 Microsoft Edge 시작 작업은 실패한 작업이며 스크린샷 작업으로 둘러싸여 있습니다.

    스크린샷 작업으로 둘러싸인 실패한 작업의 예를 보여 주는 스크린샷.

  7. 실패한 작업의 "오류 처리" 행동을 변경합니다.

    1. 실패한 작업을 편집하고 아래쪽에서 오류 발생 단추를 선택합니다.

      실패한 작업의 켜기 오류 단추 스크린샷.

    2. 흐름 실행을 계속 흐름 실행 으로 설정하고 다음 작업으로 이동합니다. 저장을 선택합니다.

      흐름 계속 실행 및 다음 작업으로 이동 단추의 스크린샷.

  8. 흐름을 로컬로 실행하여 스크린샷이 생성되었는지 확인합니다.

  9. 무인 실행을 시작합니다.

  10. 무인 실행 중에 생성된 스크린샷 파일을 확인하여 문제의 근본 원인을 식별하는 데 도움이 되는 단서를 확인합니다.

화면 해상도 및 크기 조정 차이점 확인

참석한 세션과 무인 세션을 실행하는 컴퓨터 간의 화면 해상도 차이로 인해 많은 UI 자동화 문제가 발생합니다. 참석 실행 실행과 무인 실행 간의 해상도 설정을 비교하여 두 모드에서 일치하는지 확인합니다. 무인 모드에서 화면 해상도를 설정하는 방법에 대한 자세한 내용은 무인 모드에서 화면 해상도 설정을 참조하세요.

일부 경우(예: VM(가상 머신) 또는 Hyper-V사용하는 경우 디스플레이 해상도 설정을 사용할 수 없거나 회색으로 표시될 수 있습니다. 이러한 상황에서 해결 방법으로 두 모드에서 실행하기 전에 스크립트에 다음 작업을 추가할 수 있습니다.

  1. 다음 코드 조각을 복사하여 Power Automate 데스크톱 흐름 디자이너에 붙여넣습니다.

    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
    

    스크립트는 해상도 설정을 캡처하여 타임스탬프가 포함된 파일에 출력하는 다음 작업을 생성합니다.

    만든 단계의 스크린샷.

  2. 마지막 작업에서 출력 파일 경로를 검토하고, 로컬 실행이 성공적인지 확인하고, 저장을 선택합니다.

  3. 참석 모드와 무인 모드 모두에서 스크립트를 실행한 다음 두 모드의 해상도 및 크기 조정 출력을 비교하고 필요한 경우 업데이트하여 두 모드에서 모두 일치하도록 합니다.