Dela via


Felsöka problem vid körning av runbooks när du använder PowerShell i Azure Automation

Artikeln erbjuder vägledning för att diagnostisera och lösa problem som uppstår vid körning av runböcker när du använder PowerShell-skript eller cmdlets i Azure Automation.

Anmärkning

Azure Automation möjliggör återhämtningstid av runbooks som tagits bort under de senaste 29 dagarna. Du kan återställa en borttagen runbook genom att köra ett PowerShell-skript som ett jobb i ditt Automation-konto. Mer information finns i Återställa borttagen runbook.

Begränsningar och kända problem med PowerShell-runbooks

PowerShell-runbooks bygger på Windows PowerShell. Du kan redigera koden direkt med hjälp av textredigeraren i Azure-portalen. Du kan också använda en offline-textredigerare och sedan importera runbooks till Azure Automation. PowerShell-versionen bestäms av den angivna Runtime-versionen .

Begränsningar:

  • För PowerShell 7-körningsversionen extraheras inte modulaktiviteterna för de importerade modulerna.
  • Runbook-parametertypen PSCredential stöds inte i PowerShell 7-körningsversionen.
  • PowerShell 7.x stöder inte arbetsflödes-runbooks. Mer information finns i PowerShell-arbetsflödet.
  • PowerShell 7.x stöder för närvarande inte signerade runbooks.
  • Källkontrollintegrering stöder inte PowerShell 7.2. PowerShell 7.2-runbooks i källkontrollen skapas på ett Automationskonto med runtime 5.1.
  • För närvarande stöds endast molnjobb för PowerShell 7.2-körningsversionen.
  • Användning av Az-moduler och AzureRM-moduler i samma Automation-konto stöds inte. Mer information finns i Uppdatera Azure PowerShell-moduler i Automation.

Kända problem:

  • Runbook-egenskaper som definierar loggningsinställningar stöds inte i PowerShell 7-körningsversionen.

    Om du vill undvika det här problemet anger du uttryckligen inställningen i början av runbooken på följande sätt:

    $VerbosePreference = "Continue"
    $ProgressPreference = "Continue"
    
  • När du använder ExchangeOnlineManagement-modulen version 3.0.0 eller senare kan det uppstå fel.

    Lös problemet genom att se till att du uttryckligen laddar upp modulerna PowerShellGet och PackageManagement .

Innan du felsöker

Följ de här stegen för att identifiera och lösa vanliga fel innan du felsöker ytterligare:

  1. Kontrollera att ditt PowerShell-skript fungerar utanför Azure Automation.
  2. Kontrollera att de moduler som krävs importeras till ditt Azure Automation-konto.

Problem 1: Runbook-körningen misslyckas på grund av deserialiserat objekt

Symtom:

När du kör en runbook kan följande felmeddelande visas:

Det går inte att binda parametern <ParameterName>.

Det går inte att konvertera värdet av typen <ParameterType> Deserialized <ParameterType> till typen <ParameterType>.

Orsak:

Det här felet uppstår med PowerShell Workflow-runbooks eftersom PowerShell-arbetsflödet lagrar komplexa objekt i ett deserialiserat format för att bevara runbook-tillståndet när arbetsflödet pausas.

Upplösning:

Använd någon av följande metoder för att lösa problemet:

  • Om du överför komplexa objekt från en PowerShell-cmdlet till en annan, omslut dessa cmdletar i en InlineScript-aktivitet.
  • Skicka det namn eller värde som du behöver från det komplexa objektet i stället för att skicka hela objektet.
  • Använd en PowerShell-runbook i stället för en PowerShell Workflow-runbook.

Problem 2: PowerShell-jobb misslyckas med felet "Det går inte att anropa metoden"

Symtom:

När du startar ett PowerShell-jobb i en runbook som körs i en Azure-sandbox-miljö får du följande felmeddelande:

Ett undantag utlöstes – Det går inte att anropa metoden. Metodanrop stöds endast på kärntyper i det här språkläget.

Orsak:

Det här felet kan inträffa eftersom runbooken inte kan köras i läget Fullständigt språk.

Upplösning:

Lös det här felet genom att använda någon av följande metoder:

Hänvisning

Kontakta oss för att få hjälp

Om du har frågor eller behöver hjälp, skapa en supportförfrågan, eller fråga Azures community-support. Du kan också lämna produktfeedback till Azure feedback-community.