Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Questo articolo fornisce indicazioni sulla risoluzione dei problemi relativi alle esecuzioni non assistite del flusso desktop non riuscite, in particolare concentrandosi sull'acquisizione di screenshot per diagnosticare le problematiche.
Si applica a: Power Automate
Numero KB originale: 5007976
Sintomi
Un flusso desktop che viene eseguito correttamente in modalità assistita fallisce nell'esecuzione in modalità inattesa. Potrebbe anche non riuscire con un messaggio di errore simile al seguente:
Si è verificato un problema durante l'esecuzione dell'azione 'Click'. Impossibile fare clic sul collegamento nella pagina Web.
Motivo
Gli errori di esecuzione automatica possono verificarsi a causa dei motivi seguenti:
- Lo script potrebbe non essere stato testato accuratamente in modalità sorvegliata prima di essere distribuito in modalità non sorvegliata.
- La sessione automatica potrebbe usare una configurazione diversa rispetto alla sessione partecipata, ad esempio un account di Windows diverso, la risoluzione dello schermo o le impostazioni del browser (ad esempio, il profilo utente, le impostazioni del blocco popup, le estensioni mancanti o le estensioni disabilitate).
- Le schermate potrebbero non essere completamente caricate a causa di tempi di attesa insufficienti o problemi di temporizzazione nello script.
- Un prompt del controllo dell'account utente potrebbe bloccare l'automazione dell'interfaccia utente all'avvio della sessione.
Risoluzione
Poiché potrebbero esserci cause diverse di questo problema, la soluzione seguente descrive un metodo di aggiunta di screenshot prima e dopo un'azione non riuscita per ottenere un feedback visivo. L'analisi degli screenshot acquisiti prima e dopo l'errore in modalità non supervisionata può aiutare nell'identificazione della causa principale dai problemi elencati in precedenza. La soluzione descrive anche come confrontare le impostazioni di risoluzione e scala di visualizzazione tra le esecuzioni assistite e non assistite.
Se aggiungi degli screenshot nel tuo flusso e non riescono a essere eseguiti, potrebbe esserci una finestra di dialogo 'Controllo dell'account utente' che interferisce con l'automazione del tuo flusso. Accedere al computer in cui si verifica il problema usando lo stesso account di Windows configurato per l'esecuzione automatica del flusso e verificare la presenza di eventuali dialoghi di blocco. Se si dispone di tali dialoghi, modificare la configurazione di avvio per evitare questo problema.
Aggiungere screenshot per la risoluzione dei problemi
È possibile acquisire screenshot immediatamente prima e dopo un passaggio non riuscito in modalità automatica usando l'azione Esegui screenshot . Gli screenshot possono fornire feedback visivo per diagnosticare il problema. È possibile configurare il passaggio con esito negativo per continuare dopo l'errore modificandone il comportamento "In caso di errore", consentendo l'acquisizione di uno screenshot dopo l'errore. Dopo aver risolto il problema, reimpostare la funzione "In caso di errore" del flusso sull'impostazione originale.
Accedi al computer in cui si verifica il problema con l'account utilizzato per la connessione. Verificare che nessun prompt UAC blocchi l'automazione dell'interfaccia utente.
Individuare l'azione Take screenshot.
Trascinare e rilasciare l'azione Take screenshot nella parte dello script.
Impostare il campo Salva screenshot su: su File e specificare un percorso e un nome per l'immagine, assicurando che "prima" sia incluso nel nome del file. Seleziona Salva.
Aggiungere un'altra azione Take screenshot e specificare un percorso e un nome di file per l'immagine, assicurando che "after" sia incluso nel nome del file. Seleziona Salva.
Racchiudere l'azione non riuscita con le azioni screenshot.
In questo esempio, l'azione Avvia nuova Microsoft Edge è l'azione che ha esito negativo ed è racchiusa tra le azioni dello screenshot.
Modificare il comportamento "In caso di errore" dell'azione non riuscita:
Modifica l'azione non riuscita e seleziona il pulsante On error (In caso di errore) in basso.
Impostare su Continua esecuzione del flusso e Vai all'azione successiva. Seleziona Salva.
Eseguire il flusso in locale per verificare che vengano generati screenshot.
Avvia l'esecuzione senza supervisione.
Controllare i file di screenshot generati durante l'esecuzione automatica per individuare le indicazioni utili per identificare la causa radice del problema.
Controllare le differenze di risoluzione e scalabilità dello schermo
Molti problemi di automazione dell'interfaccia utente si verificano a causa delle differenze di risoluzione dello schermo tra i computer che eseguono le sessioni automatiche e partecipate. Confrontare le impostazioni di risoluzione tra le esecuzioni assistite e non assistite per assicurarsi che corrispondano in entrambe le modalità. Per altre informazioni sull'impostazione della risoluzione dello schermo in modalità automatica, vedere Impostare la risoluzione dello schermo in modalità automatica.
In alcuni casi( ad esempio, quando si usa una macchina virtuale (VM) o Hyper-V), le impostazioni di risoluzione dello schermo potrebbero non essere disponibili o disattivate. Come soluzione alternativa in tali situazioni, è possibile aggiungere le azioni seguenti nello script prima di essere eseguite in entrambe le modalità.
Copiare e incollare il frammento di codice seguente nella finestra di progettazione del flusso desktop di 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
Lo script creerà le azioni seguenti per acquisire le impostazioni di risoluzione e restituirle in un file con timestamp.
Esaminare il percorso del file di output dell'ultima azione, verificare che l'esecuzione locale abbia esito positivo e selezionare Salva.
Eseguire lo script in modalità assistita e non assistita, quindi confrontare l'output di risoluzione e scala per entrambe le modalità e aggiornare, se necessario, per assicurarsi che corrispondano in entrambe le modalità.