Sümptom
Skript, mida saab käivitada edukalt osalemisrežiimis, ei tööta järelevalveta režiimis.
Tavaliselt nurjub see järgmise teatega: "Toimingu klõpsamisel ilmnes probleem. Linki ei saanud veebilehel klõpsata."
Põhjus
Järelevalveta käituste tüüpiliste tõrgete põhjuseks on üks järgmistest.
-
Skripti ei testita osalejarežiimis enne järelevalveta aktiveerimist
-
Järelevalveta seansi kasutatav erinev konfiguratsioon
-
Mõni muu Windowsi konto, mida kasutab järelevalveta käitus kui voo loomiseks kasutatud
-
Ekraani eraldusvõime (vaadake, kuidas muuta ekraani eraldusvõimet)
-
Brauseri konfigureerimine
-
Kasutaja
-
Hüpikakende blokeerija
-
Laiendused (puuduvad/ pole aktiveeritud)
-
-
-
Kuvasid ei laadita täielikult (puuduvad viivitused)
-
UAC viip, mis blokeerib kasutajaliidese automatiseerimise seansi algamisel
Lahendus
Kuna sellel võib olla erinevaid põhjuseid, kirjeldatakse alltoodud lahenduses kuvatõmmiste lisamist enne ja pärast nurjunud toimingut, et saada visuaalset tagasisidet. Kui vaadata ekraanipilte hoolikalt pärast järelevalveta skripti nurjumist, võib abi olla mõne eespool loetletud põhjuse leidmisest. Samuti kirjeldatakse, kuidas võrrelda kuvaeraldusvõime ja mastaabi sätteid.
Kui teil on juba voo kuvatõmmised ja neid ei saa käivitada, võib teil olla kasutajakonto kontrolli (UAC) dialoog, mis blokeerib voo käivitamise. Logige sisse arvutisse, mis reprodutseerib probleemi voo käivitamiseks kasutatava kontoga, ja vaadake, kas teil on selline blokeerimise dialoog. Sel juhul muutke käivitusrutiini, et see ei korduks.
Tõrkeotsinguks kuvatõmmiste lisamine
Alustuseks logige arvutisse sisse, mis reprodutseerib probleemi teie ühenduses kasutatava kontoga. Veenduge, et kasutajaliidese automatiseerimist ei blokeeriks ükski UAC viip.
Kui kasutajaliidese automatiseerimist ei blokeerita, tehke enne ja pärast järelevalveta režiimis nurjunud toimingut kuvatõmmis, mis aitab saada visuaalset tagasisidet.
Nurjumise etapp peaks jätkuma tõrke korral, et pärast nurjumist oleks võimalik kuvatõmmis teha.
1. Otsige toimingut "Kuvatõmmise tegemine"
2. Pukseerige toiming "Kuvatõmmise tegemine" skripti küljele
3. Redigeerige toimingut, kasutage lõikelaua asemel "Fail" ja failinime asukohas "enne"
4. Seejärel kopeerige/kleepige ja muutke kuvatõmmisefaili nime koos selle järel oleva failiga
5. Ümbritsege nurjumise etapp kuvatõmmistega
6. Tõrketoimingu tõrke_korral käitumise muutmine
6a- Redigeerige etappi ja klõpsake allservas nuppu "Tõrke_korral".
6b– seadke voo käituse väärtuseks "Jätka voo käitamist" ja "Mine järgmisele toimingule"
7. Salvestage, käivitage kohalikult , et testida, kas kuvatõmmised on loodud, ja taaskäivitage järelevalveta käivitus.
8. Kontrollige järelevalveta kuvatõmmisefaile.
Ekraani eraldusvõime ja mastaabierinevuste kontrollimine
Osavõtjate ja järelevalveta käituskäivituste eraldusvõimesätete võrdlemiseks lisage enne mõlemas režiimis töötamist skripti järgmised toimingud.
-
Kopeerige/kleepige PAD-kujundajas allolev koodilõik: see loob vajalikud toimingud eraldusvõime sätete jäädvustamiseks ja ajatempliga faili väljastamiseks.
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
-
Vaadake viimase toimingu väljundfaili tee läbi, kontrollige, kas kohalik käivitamine õnnestus, ja salvestage see.
-
Käivitage skript nii osalemisrežiimis kui ka järelevalveta režiimis ning kontrollige, kas eraldusvõimel ja mastaabiväljundil on mõlemas režiimis samad väärtused.
Märkus.
Nagu eespool mainitud, võib juhtuda, et kui kuvatõmmiste toiming ise nurjub, võib teil olla kasutajakonto kontrolli (UAC) dialoog, mis blokeerib voo käivitamise. Logige sisse arvutisse, mis reprodutseerib probleemi voo käivitamiseks kasutatava kontoga, ja vaadake, kas teil on selline blokeerimise dialoog. Sel juhul muutke käivitusrutiini, et see ei korduks.
Kui skriptil on muid toiminguid, võib see pärast käitumist nurjuda, kuna käitumist muudeti, mitte tõrkeid, et saaksime kuvatõmmise teha. Seega tuleks pärast teist kuvatõmmist ilmnenud tõrkeid eirata.
Kui probleem on arusaadav ja lahendatud, taastage voo algne käitumine tõrgete saatmiseks.