Udostępnij za pośrednictwem


Jak przechwytywać strumień debugowania w Azure Automation elementach Runbook

Oryginalna wersja produktu: Azure Automation
Oryginalny numer KB: 4022768

Podsumowanie

Domyślnie Azure Automation nie przechwytuje żadnych danych strumienia debugowania.  Tylko dane wyjściowe, błędy i dane ostrzegawcze są przechwytywane, a także pełne dane, jeśli element Runbook jest skonfigurowany do jego przechwytywania.

Aby przechwycić dane strumienia debugowania, należy wykonać dwie akcje w elementach Runbook:

  1. Ustaw zmienną $GLOBAL:DebugPreference="Continue", która informuje program PowerShell o kontynuowaniu po napotkaniu komunikatu debugowania. Część $GLOBAL: informuje program PowerShell, aby zrobił to w zakresie globalnym, a nie w zakresie lokalnym, w jakim znajduje się skrypt w momencie wykonywania instrukcji.
  2. Przekieruj strumień debugowania, który nie jest przechwytywane do strumienia, który przechwytujemy, taki jak dane wyjściowe. W tym celu należy ustawić przekierowywanie programu PowerShell względem instrukcji, która ma zostać wykonana.  Aby uzyskać więcej informacji na temat przekierowania programu PowerShell, zobacz About_Redirection.

Przykład:

Biorąc pod uwagę następujący element Runbook:

Write-Output "This is an output message."  
Write-Debug "This is a debug message."

Jeśli ten element Runbook ma zostać wykonany w taki sam jak jest, w okienku danych wyjściowych zadania elementu Runbook w Azure Automation zostaną wyświetlone następujące elementy:

This is an output message.

Biorąc pod uwagę następujący element Runbook:

Write-Output "This is an output message."  
$GLOBAL:DebugPreference="Continue"  
Write-Debug "This is a debug message." 5>&1

Jeśli ten element Runbook ma zostać wykonany, w okienku danych wyjściowych zostaną wyświetlone następujące elementy:

This is an output message.  
This is a debug message.

Dzieje się tak, ponieważ instrukcja $GLOBAL:DebugPreference="Continue" informuje program PowerShell o wyświetlaniu komunikatów debugowania, a następnie kontynuowaniu i dodawaniu 5>&1 na końcu dowolnej instrukcji, która informuje program PowerShell o przekierowaniu strumienia 5 (debug) do strumienia 1 (dane wyjściowe).

Skontaktuj się z nami, aby uzyskać pomoc

Jeśli masz pytania lub potrzebujesz pomocy, utwórz wniosek o pomoc techniczną lub zadaj pytanie w społeczności wsparcia dla platformy Azure. Możesz również przesłać opinię o produkcie do społeczności opinii platformy Azure.