Příznak

Skript, který lze úspěšně spustit v režimu obsluhy, se v bezobslužném režimu nespustí úspěšně.

Obvykle selhává se zprávou typu: "Došlo k potížím se spuštěním akce Klikněte. Na odkaz nelze kliknout na webové stránce."

Příčina

Typická selhání při bezobslužných spuštěních jsou způsobená jedním z následujících způsobů:

  • Skript nebyl testován v režimu obsluhy před přepnutím na bezobslužný

  • Jiná konfigurace používaná bezobslužnou relací

    • Jiný účet Windows používaný bezobslužným spuštěním, než který se použil k vytvoření toku

    • Rozlišení obrazovky (podívejte se, jak změnit rozlišení obrazovky)

    • Konfigurace prohlížeče

      • Uživatele

      • Blokování automaticky otevíraných oken

      • Rozšíření (chybějící nebo neaktivovaná)

  • Obrazovky se nenačtou úplně (chybějící zpoždění)

  • Výzva řízení uživatelských procesů, která blokuje automatizaci uživatelského rozhraní při zahájení relace

Řešení

Protože to může mít různé příčiny, níže uvedené řešení popisuje, jak přidat snímky obrazovky před a po neúspěšné akci, abyste získali vizuální zpětnou vazbu. Když se na snímky obrazovky podíváte pečlivě po bezobslužném selhání skriptu, můžete najít jednu z výše uvedených příčin. Popisuje také, jak porovnat nastavení rozlišení a měřítka zobrazení.

Pokud už máte v toku snímky obrazovky a nedaří se je spustit, možná máte dialogové okno Řízení uživatelských účtů (UAC) blokující spuštění toku. Přihlaste se k počítači, který problém reprodukuje s účtem, který používáte ke spuštění toku, a zjistěte, jestli máte takové dialogové okno blokování. Pokud ano, změňte rutinu spouštění tak, aby k tomu nedocházelo.

Přidání snímků obrazovky pro řešení potíží

Začněte tím, že se přihlásíte k počítači, který problém reprodukuje s účtem, který používáte ve svém připojení. Ověřte, že se nezobrazí žádná výzva řízení uživatelských dat, která může blokovat automatizaci uživatelského rozhraní.

Pokud neexistuje nic, co by neblokovalo automatizaci uživatelského rozhraní, pořiďte si snímek obrazovky před neúspěšným krokem v bezobslužném režimu a získejte vizuální zpětnou vazbu.

Neúspěšný krok by měl pokračovat i při selhání, aby se po selhání mohl pořídit snímek obrazovky.

1– Vyhledejte akci Pořídit snímek obrazovky.

Provedení akce snímku obrazovky

 2– Přetáhněte akci "Pořídit snímek obrazovky" na stranu skriptu.

Přetažení akce pořízení snímku obrazovky

3– Upravte akci, místo schránky použijte "Soubor" a "před" v umístění názvu souboru Vyplnění vlastností akce udělat snímek obrazovky

4– Pak zkopírujte/vložte a změňte název souboru snímku obrazovky za Duplikování a vyplnění vlastností akce udělat snímek obrazovky

5– Obklopte neúspěšný krok snímky obrazovky.

Obklopte neúspěšné kroky snímky obrazovky

6. Změna chování chyby při selhání kroku

6a- Upravte krok a klikněte na "onError" v dolní části

Změna chování při chybách

6b– Nastavte spuštění toku na "Pokračovat ve spuštění toku" a "Přejít na další akci".

Pokračovat ve spuštění toku a přejít na další akci

7 – Uložte, spusťte místně , abyste otestuji, že se vytvořily snímky obrazovky, a znovu spusťte bezobslužné spuštění.

8 – Zkontrolujte soubory bezobslužných snímků obrazovky. 

Kontrola rozlišení obrazovky a rozdílů ve škálování

Pokud chcete porovnat nastavení řešení mezi probíhajícím spuštěním a bezobslužným spuštěním, přidejte do skriptu před spuštěním v obou režimech následující akce:

  • Zkopírujte nebo vložte následující fragment kódu do návrháře PAD: Tím vytvoříte nezbytné kroky k zachycení nastavení rozlišení a jejich výstupu v souboru s časovým razítkem.

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
  • Zkontrolujte cestu k výstupnímu souboru z poslední akce, zkontrolujte, jestli místní spuštění proběhlo úspěšně, a uložte ji.

  • Spusťte skript v bezobslužném i bezobslužném režimu a pak zkontrolujte, jestli výstup rozlišení a škálování mají v obou režimech stejné hodnoty.

Poznámka:

Jak je uvedeno výše, pokud samotná akce snímků obrazovky selže, možná máte dialogové okno Řízení uživatelských účtů (UAC) blokující spuštění toku. Přihlaste se k počítači, který problém reprodukuje s účtem, který používáte ke spuštění toku, a zjistěte, jestli máte takové dialogové okno blokování. Pokud ano, změňte rutinu spouštění tak, aby k tomu nedocházelo.

Pokud skript obsahuje další kroky, může po změně chování selhat, aby nevyvolával chyby, abychom mohli pořídit snímek obrazovky. Chyby po druhém snímku obrazovky by se proto měly ignorovat. 

Jakmile problém pochopíte a opravíte, obnovte původní chování toku a vyvolání chyb.

Potřebujete další pomoc?

Chcete další možnosti?

Prozkoumejte výhody předplatného, projděte si školicí kurzy, zjistěte, jak zabezpečit své zařízení a mnohem více.

Komunity vám pomohou klást otázky a odpovídat na ně, poskytovat zpětnou vazbu a vyslechnout odborníky s bohatými znalostmi.