Simptom
Skript, ki ga je mogoče uspešno izvesti v odzivnem načinu, se ne zažene uspešno v nespremljanem načinu.
Običajno ne uspe s sporočilom, kot je: »Pri zagonu dejanja »Kliknite« je prišlo do težave. Povezave ni bilo mogoče klikniti na spletni strani.«
Razlog
Typical failures in unattended runs are caused by one of the following:
-
Skript ni preskušen v odzivnem načinu pred preklopom na nespremljano
-
Različna konfiguracija, ki jo uporablja nespremljana seja
-
Drug račun sistema Windows, ki ga uporablja nespremljan zagon, kot račun za ustvarjanje toka
-
Ločljivost zaslona ( oglejte si, kako spremenite ločljivost zaslona)
-
Konfiguracija brskalnika
-
Uporabnik
-
Blokiranje pojavnih oken
-
Razširitve (manjkajoče/niso aktivirane)
-
-
-
Zasloni niso v celoti naloženi (manjkajoče zakasnitve)
-
Poziv za nadzor uporabniškega računa, ki blokira avtomatizacijo uporabniškega vmesnika ob začetku seje
Rešitev
Ker lahko obstajajo različni vzroki, je v spodnji rešitvi opisano, kako dodate posnetke zaslona pred in po neuspešnem dejanju, da pridobite nekaj vizualnih povratnih informacij. Če skrbno pregledate posnetke zaslona po nespremljanem neuspelem skriptu, boste morda lažje našli enega od zgoraj navedenih vzrokov. V članku je opisano tudi, kako primerjate ločljivost zaslona in nastavitve merila.
Če imate v poteku že posnetke zaslona, ki se ne izvajajo, imate morda pogovorno okno nadzora uporabniškega računa (UAC), ki blokira izvajanje poteka. Prijavite se v računalnik, ki ponavlja težavo z računom, ki ga uporabljate za izvedbo toka, in preverite, ali imate takšno pogovorno okno za blokiranje. Če to naredite, spremenite rutino zagona, da preprečite to težavo.
Dodajanje posnetkov zaslona za odpravljanje težav
Najprej se prijavite v računalnik, ki ponovi težavo z računom, ki ga uporabljate v vaši povezavi. Prepričajte se, da ni poziva za nadzor uporabniškega računa, ki morda blokira avtomatizacijo uporabniškega vmesnika.
Če nič ne blokira avtomatizacije uporabniškega vmesnika, naredite posnetek zaslona pred in po neuspešnem koraku v nespremljanem načinu, da pridobite vizualne povratne informacije.
Neuspešni korak bi se moral nadaljevati ob neuspehu, tako da je po neuspehu mogoče narediti posnetek zaslona.
1 – Poiščite dejanje »Naredi posnetek zaslona«
2– Povlecite in spustite dejanje »Naredi posnetek zaslona« na stran skripta
3– Uredite dejanje, namesto odložišča uporabite »Datoteka« in »pred« na mestu imena datoteke
4– Nato kopirajte/prilepite in spremenite ime datoteke posnetka zaslona z imenom datoteke , potem ko ste jo
5– Obdajte neuspešni korak s posnetki zaslona
6– sprememba vedenja onErrorneuspešnega koraka
6a – Uredite korak in kliknite »naNapaki« na dnu
6b – nastavite zagon poteka na »Nadaljujte izvajanje poteka« in »Pojdi na naslednje dejanje«
7– Shranite, zaženite lokalno , da preskusite, ali so posnetki zaslona izdelani, in znova zaženite nespremljan zagon.
8 – Preverite nespremljane datoteke s posnetki zaslona.
Preverjanje ločljivosti zaslona in razlik v merilu
Če želite primerjati nastavitve ločljivosti med izvajanjem obiskanega in nespremljanega izvajanja, dodajte spodnja dejanja v skript, preden se izvajajo v obeh načinih:
-
Copy / Paste spodnji izrezek kode v načrtovalec PAD: to bo ustvaril potrebne korake za zajem nastavitve ločljivosti in jih izhod v timestamped datoteko.
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
-
Preglejte izhodno pot datoteke iz zadnjega dejanja, preverite, ali je lokalno izvajanje uspešno in shranjeno.
-
Skript zaženite tako v obiskanih kot tudi nespremljanih načinih, nato pa preverite, ali imata ločljivost in izhod merila enake vrednosti v obeh načinih.
Opomba
Kot je omenjeno zgoraj, če dejanje posnetkov zaslona ne uspe, imate morda pogovorno okno nadzora uporabniškega računa (UAC) blokirano izvajanje poteka. Prijavite se v računalnik, ki ponavlja težavo z računom, ki ga uporabljate za izvedbo toka, in preverite, ali imate takšno pogovorno okno za blokiranje. Če to naredite, spremenite rutino zagona, da preprečite to težavo.
Če skript vsebuje druge korake, morda ne bo uspel, ko se je spremenilo delovanje, da ne bo prikazal napak, tako da lahko naredimo posnetek zaslona. Zato prezrite napake po drugem posnetku zaslona.
Ko je težava razumljiva in odpravljena, obnovite izvirno vedenje toka in prikažete napake.