Delen via


Modules beheren in Azure Automation

Notitie

De AzureRM PowerShell-module is vanaf 29 februari 2024 officieel afgeschaft. We raden u aan om van de AzureRM-module naar de Az PowerShell-module te migreren om ondersteuning en updates te garanderen. Hoewel de AzureRM-module mogelijk nog steeds werkt, wordt deze niet meer onderhouden of ondersteund en blijft het gebruik van AzureRM op eigen risico van de gebruiker. Zie migratieresources voor hulp bij de overgang naar de Az-module voor meer informatie.

Azure Automation maakt gebruik van een aantal PowerShell-modules om cmdlets in runbooks en DSC-resources in DSC-configuraties in te schakelen. Ondersteunde modules zijn onder andere:

Wanneer u een Automation-account maakt, importeert Azure Automation standaard enkele modules. Zie Standaardmodules.

Belangrijk

Met de nieuwe runtime-omgevingservaring kunt u modules en pakketten beheren door de taakuitvoeringsomgeving te configureren. In de nieuwe ervaring zijn blades Modules en Pakketten niet beschikbaar. Zie Runtime-omgeving en bijbehorende runbooks beheren om modules en pakketten te beheren.

Sandboxes

Wanneer Automation runbook- en DSC-compilatietaken uitvoert, worden de modules geladen in sandboxes waar de runbooks kunnen worden uitgevoerd en kunnen de DSC-configuraties worden gecompileerd. Automation plaatst ook automatisch DSC-resources in modules op de DSC-pull-server. Machines kunnen de resources ophalen wanneer ze de DSC-configuraties toepassen.

Cloud-sandbox ondersteunt maximaal 48 systeemoproepen en beperkt alle andere aanroepen om veiligheidsredenen. Andere functionaliteit, zoals referentiebeheer en sommige netwerken, wordt niet ondersteund in de cloud-sandbox.

Vanwege het aantal modules en cmdlets dat is opgenomen, is het moeilijk om vooraf te weten welke van de cmdlets niet-ondersteunde aanroepen zal doen. Over het algemeen hebben we problemen met cmdlets gezien waarvoor verhoogde toegang is vereist, referenties als parameter vereisen of cmdlets met betrekking tot netwerken. Cmdlets die volledige stacknetwerkbewerkingen uitvoeren, worden niet ondersteund in de sandbox, inclusief Connect-AipService vanuit de AIPService PowerShell-module en Resolve-DnsName uit de DNSClient-module.

Dit zijn bekende beperkingen met de sandbox. De aanbevolen tijdelijke oplossing is het implementeren van een Hybrid Runbook Worker of het gebruik van Azure Functions.

Belangrijk

Neem het trefwoord 'AzureRm' niet op in een script dat is ontworpen om te worden uitgevoerd met de Az-module. Het opnemen van het trefwoord, zelfs in een opmerking, kan ertoe leiden dat AzureRm wordt geladen en vervolgens conflicteren met de Az-module.

Standaardmodules

Alle nieuwe Automation-accounts hebben de nieuwste versie van de PowerShell Az-module die standaard is geïmporteerd. De Az-module vervangt AzureRM en is de aanbevolen module voor gebruik met Azure. Standaardmodules in het nieuwe Automation-account bevatten de bestaande 24 AzureRM-modules en 60+ Az-modules.

Er is een systeemeigen optie om modules bij te werken naar de nieuwste Az-module door de gebruiker voor Automation-accounts. Met de bewerking worden alle moduleafhankelijkheden in de back-end verwerkt, waardoor het probleem van het handmatig bijwerken van de modules wordt verwijderd of het runbook wordt uitgevoerd om Azure-modules bij te werken.

Als het bestaande Automation-account alleen AzureRM-modules heeft, wordt met de optie Az-modules bijwerken het Automation-account bijgewerkt met de door de gebruiker geselecteerde versie van de Az-module.

Als het bestaande Automation-account AzureRM en sommige Az-modules bevat, worden de resterende Az-modules geïmporteerd in het Automation-account. De bestaande Az-modules hebben de voorkeur en de updatebewerking werkt deze modules niet bij. Dit is om ervoor te zorgen dat de updatemodulebewerking niet leidt tot een fout in de uitvoering van runbooks door per ongeluk een module bij te werken die wordt gebruikt door een runbook. De aanbevolen manier voor dit scenario is om eerst de bestaande Az-modules te verwijderen en vervolgens de updatebewerkingen uit te voeren om de meest recente Az-module op te halen die in het Automation-account is geïmporteerd. Dergelijke moduletypen, die niet standaard worden geïmporteerd, worden aangepast genoemd. Aangepaste modules nemen altijd de voorkeur boven standaardmodules .

Bijvoorbeeld: Als u de Az.Aks module al hebt geïmporteerd met versie 2.3.0 die wordt geleverd door Az-module 6.3.0 en u probeert de Az-module bij te werken naar de nieuwste versie 6.4.0. Met de updatebewerking worden alle Az-modules uit het pakket 6.4.0 geïmporteerd, behalve Az.Aks. Als u de nieuwste versie van Az.Aksde module wilt hebben, verwijdert u eerst de bestaande module en voert u de updatebewerking uit. U kunt deze module ook afzonderlijk bijwerken zoals beschreven in Az-modules importeren om een andere versie van een specifieke module te importeren.

De volgende tabel bevat de modules die standaard door Azure Automation worden geïmporteerd wanneer u uw Automation-account maakt. Automation kan nieuwere versies van deze modules importeren. U kunt de oorspronkelijke versie echter niet verwijderen uit uw Automation-account, zelfs niet als u een nieuwere versie verwijdert.

De standaardmodules worden ook wel globale modules genoemd. In Azure Portal is de eigenschap Globale module waar wanneer u een module bekijkt die is geïmporteerd toen het account werd gemaakt.

Schermopname van de globale module-eigenschap in Azure Portal

Notitie

Het wordt afgeraden modules en runbooks in Automation-accounts te wijzigen die worden gebruikt voor de implementatie van de VM's buiten kantooruren

Modulenaam Versie
Az.* Bekijk de volledige lijst onder Pakketdetails in PowerShell Gallery
AuditPolicyDsc 1.1.0.0
Azure 1.0.3
Azure.Storage 1.0.3
AzureRM.Automation 1.0.3
AzureRM.Compute 1.2.1
AzureRM.Profile 1.0.3
AzureRM.Resources 1.0.3
AzureRM.Sql 1.0.3
AzureRM.Storage 1.0.3
ComputerManagementDsc 5.0.0.0
GPRegistryPolicyParser 0,2
Microsoft.PowerShell.Core 0
Microsoft.PowerShell.Diagnostics
Microsoft.PowerShell.Management
Microsoft.PowerShell.Security
Microsoft.PowerShell.Utility
Microsoft.WSMan.Management
Orchestrator.AssetManagement.Cmdlets 1
PSDscResources 2.9.0.0
SecurityPolicyDsc 2.1.0.0
StateConfigCompositeResources 1
xDSCDomainjoin 1.1
xPowerShellExecutionPolicy 1.1.0.0
xRemoteDesktopAdmin 1.1.0.0

Interne cmdlets

Azure Automation ondersteunt interne cmdlets die alleen beschikbaar zijn wanneer u runbooks uitvoert in de Azure-sandboxomgeving of op een Windows Hybrid Runbook Worker. De interne module Orchestrator.AssetManagement.Cmdlets wordt standaard geïnstalleerd in uw Automation-account en wanneer de rol Windows Hybrid Runbook Worker op de computer is geïnstalleerd.

In de volgende tabel worden de interne cmdlets gedefinieerd. Deze cmdlets zijn ontworpen om te worden gebruikt in plaats van Azure PowerShell-cmdlets om te communiceren met uw Automation-accountresources. Ze kunnen geheimen ophalen uit versleutelde variabelen, referenties en versleutelde verbindingen.

Name Beschrijving
Get-AutomationCertificate Get-AutomationCertificate [-Name] <string> [<CommonParameters>]
Get-AutomationConnection Get-AutomationConnection [-Name] <string> [-DoNotDecrypt] [<CommonParameters>]
Get-AutomationPSCredential Get-AutomationPSCredential [-Name] <string> [<CommonParameters>]
Get-AutomationVariable Get-AutomationVariable [-Name] <string> [-DoNotDecrypt] [<CommonParameters>]
Set-AutomationVariable Set-AutomationVariable [-Name] <string> -Value <Object> [<CommonParameters>]
Start-AutomationRunbook Start-AutomationRunbook [-Name] <string> [-Parameters <IDictionary>] [-RunOn <string>] [-JobId <guid>] [<CommonParameters>]
Wait-AutomationJob Wait-AutomationJob -Id <guid[]> [-TimeoutInMinutes <int>] [-DelayInSeconds <int>] [-OutputJobsTransitionedToRunning] [<CommonParameters>]

Houd er rekening mee dat de interne cmdlets verschillen in naamgeving van de Az- en AzureRM-cmdlets. Interne cmdlet-namen bevatten geen woorden zoals Azure of Az in het zelfstandig naamwoord, maar gebruiken wel het woord Automation. We raden hun gebruik aan boven het gebruik van Az- of AzureRM-cmdlets tijdens de uitvoering van runbooks in een Azure-sandbox of op een Windows Hybrid Runbook Worker, omdat ze minder parameters nodig hebben en in de context van uw taak tijdens de uitvoering worden uitgevoerd.

Gebruik Az- of AzureRM-cmdlets voor het bewerken van Automation-resources buiten de context van een runbook.

Python-modules

U kunt Python 2-runbooks maken in Azure Automation. Zie Python 2-pakketten beheren in Azure Automation voor informatie over python-modules.

Aangepaste modules

Azure Automation ondersteunt aangepaste PowerShell-modules die u maakt voor gebruik met uw runbooks en DSC-configuraties. Eén type aangepaste module is een integratiemodule die optioneel een bestand met metagegevens bevat om de aangepaste functionaliteit voor de module-cmdlets te definiëren. Een voorbeeld van het gebruik van een integratiemodule vindt u in Een verbindingstype toevoegen.

Azure Automation kan een aangepaste module importeren om de bijbehorende cmdlets beschikbaar te maken. Achter de schermen wordt de module opgeslagen en gebruikt in de Azure-sandboxes, net zoals bij andere modules.

Migreren naar Az-modules

In deze sectie wordt uitgelegd hoe u migreert naar de Az-modules in Automation. Zie Azure PowerShell migreren van AzureRM naar Az voor meer informatie.

Het wordt afgeraden om AzureRM-modules en Az-modules in hetzelfde Automation-account uit te voeren. Wanneer u zeker weet dat u wilt migreren van AzureRM naar Az, kunt u zich het beste helemaal toeleggen op een volledige migratie. Automation hergebruikt vaak sandboxes in het Automation-account om opstarttijden te verkorten. Als u geen volledige modulemigratie uitvoert, kunt u een taak starten die alleen AzureRM-modules gebruikt en vervolgens een andere taak starten die alleen Az-modules gebruikt. De sandbox loopt snel vast en u ontvangt een foutmelding dat de modules niet compatibel zijn. Deze situatie resulteert in willekeurig optredende crashes voor een bepaald runbook of configuratie.

Notitie

Wanneer u een nieuw Automation-account maakt, zelfs na migratie naar Az-modules, worden de AzureRM-modules nog steeds standaard geïnstalleerd.

Test uw runbooks en DSC-configuraties voorafgaand aan de modulemigratie

Zorg ervoor dat u alle runbooks en DSC-configuraties zorgvuldig test in een afzonderlijk Automation-account voordat u naar de Az-modules migreert.

Alle runbooks die gebruikmaken van AzureRM-modules stoppen en de planningen ervan opheffen

Om ervoor te zorgen dat u geen bestaande runbooks of DSC-configuraties uitvoert die gebruikmaken van AzureRM-modules, moet u alle betrokken runbooks en configuraties stoppen en de planningen ervan opheffen. Zorg er eerst voor dat u elk runbook of elke DSC-configuratie en de bijbehorende planningen afzonderlijk bekijkt, om ervoor te zorgen dat u het item in de toekomst zo nodig opnieuw kunt plannen.

Wanneer u klaar bent om uw planningen te verwijderen, kunt u de Azure-portal of de cmdlet Remove-AzureRmAutomationSchedule gebruiken. Zie Een schema verwijderen.

AzureRM-modules verwijderen

Het is mogelijk om de AzureRM-modules te verwijderen voordat u de Az-modules importeert. Als u dit doet, is het echter mogelijk dat de synchronisatie van broncodebeheer wordt onderbroken en dat scripts die nog steeds gepland staan, mislukken. Als u besluit de modules te verwijderen, raadpleegt u AzureRM verwijderen.

Az-modules importeren

Als u een Az-module importeert in uw Automation-account, wordt de module niet automatisch geïmporteerd in de PowerShell-sessie die door runbooks wordt gebruikt. Modules worden in de volgende situaties in de PowerShell-sessie geïmporteerd:

  • Wanneer een runbook een cmdlet vanuit een module aanroept.
  • Wanneer een runbook de module expliciet importeert met de cmdlet Import-Module .
  • Wanneer een runbook de module expliciet importeert met de using-module-instructie . De instructie using wordt ondersteund vanaf Windows PowerShell 5.0 en ondersteunt klassen en het importeren van het enum-type.
  • Wanneer een runbook een andere afhankelijke module importeert.

U kunt de Az-modules importeren in het Automation-account vanuit de Azure-portal. Omdat Az.Accounts een afhankelijkheid is voor de andere Az-modules, moet u deze module importeren voordat andere modules.

Notitie

Met de introductie van PowerShell 7.1 -ondersteuning (preview) is de optie Galerie Bladeren bijgewerkt met de volgende wijzigingen:

  • Bladergalerie is beschikbaar op de blade Process Automation>Modules.
  • Op de pagina Modules worden twee nieuwe kolommen weergegeven: moduleversie en runtime-versie
  1. Meld u aan bij het Azure-portaal.

  2. Zoek en selecteer Automation-accounts.

  3. Selecteer op de pagina Automation-accounts uw Automation-account in de lijst.

  4. Selecteer Modules onder Gedeelde Bronnen via uw Automation-account.

  5. Selecteer Een module toevoegen. Op de pagina Een module toevoegen kunt u een van de volgende opties selecteren:

    1. Bladeren naar bestand - selecteert een bestand op uw lokale computer.
    2. Bladeren vanuit galerie : u kunt bladeren en een bestaande module selecteren in de galerie.
  6. Klik op Selecteren om een module te selecteren.

  7. Selecteer Runtime-versie en klik op Importeren.

    Schermopname van het importeren van modules in uw Automation-account.

  8. Op de pagina Modules kunt u de geïmporteerde module bekijken onder het Automation-account.

U kunt dit importeren ook uitvoeren via de PowerShell Gallery door te zoeken naar de module die u wilt importeren. Wanneer u de module vindt, selecteert u deze en kiest u het tabblad Azure Automation . Selecteer Implementeren in Azure Automation.

Schermopname van het rechtstreeks importeren van modules vanuit PowerShell Gallery.

Uw runbooks testen

Nadat u de Az-modules in het Automation-account hebt geïmporteerd, kunt u beginnen met het bewerken van uw runbooks en DSC-configuraties om de nieuwe modules te gebruiken. Een manier om de wijziging van een runbook te testen om de nieuwe cmdlets te gebruiken, is door de Enable-AzureRmAlias -Scope Process opdracht aan het begin van het runbook te gebruiken. Door deze opdracht toe te voegen aan uw runbook, kan het script zonder wijzigingen worden uitgevoerd.

Modules ontwerpen

U wordt aangeraden de overwegingen in deze sectie te volgen wanneer u een aangepaste PowerShell-module maakt voor gebruik in Azure Automation. Als u de module wilt voorbereiden voor importeren, moet u ten minste een .psd1-, .psm1- of PowerShell-module maken .dll bestand met dezelfde naam als de modulemap. Vervolgens zipt u de modulemap, zodat Azure Automation deze als één bestand kan importeren. Het .zip-pakket moet dezelfde naam hebben als de map in de ingesloten module.

Zie Een PowerShell-scriptmodule schrijven voor meer informatie over het ontwerpen van een PowerShell-module.

Versiemap

Met PowerShell-versiebeheer naast elkaar kunt u meer dan één versie van een module in PowerShell gebruiken. Dit kan handig zijn als u oudere scripts hebt die zijn getest en alleen werken met een bepaalde versie van een PowerShell-module, maar voor andere scripts is een nieuwere versie van dezelfde PowerShell-module vereist.

Als u PowerShell-modules wilt maken zodat deze meerdere versies bevatten, maakt u de modulemap en maakt u vervolgens een map in deze modulemap voor elke versie van de module die u wilt gebruiken. In het volgende voorbeeld biedt een module met de naam TestModule twee versies: 1.0.0 en 2.0.0.

TestModule
   1.0.0
   2.0.0

Kopieer in elk van de versiemappen uw PowerShell.psm1-, .psd1- of PowerShell-module .dll bestanden waaruit een module bestaat in de desbetreffende versiemap. Zip de modulemap, zodat Azure Automation deze als één .zip-bestand kan importeren. Hoewel In Automation slechts één van de geïmporteerde versies van de module wordt weergegeven, zijn deze allemaal beschikbaar voor gebruik in uw runbooks of DSC-configuraties als het modulepakket naast elkaar versies van de module bevat.

Hoewel Automation modules ondersteunt die naast elkaar versies binnen hetzelfde pakket bevatten, wordt het gebruik van meerdere versies van een module bij het importeren van modules niet ondersteund. U importeert bijvoorbeeld module A, die versie 1 en 2 bevat in uw Automation-account. Later werkt u module A bij met versies 3 en 4, wanneer u importeert in uw Automation-account, zijn alleen versies 3 en 4 bruikbaar in runbooks of DSC-configuraties. Als u wilt dat alle versies - 1, 2, 3 en 4 beschikbaar zijn, moet het .zip bestand dat u importeert versies 1, 2, 3 en 4 bevatten.

Als u verschillende versies van dezelfde module tussen runbooks gaat gebruiken, moet u altijd de versie declareren die u in uw runbook wilt gebruiken met behulp van de Import-Module cmdlet en de parameter -RequiredVersion <version>opnemen. Zelfs als de versie die u wilt gebruiken de nieuwste versie is. Dit komt doordat runbooktaken in dezelfde sandbox kunnen worden uitgevoerd. Als de sandbox al expliciet een module van een bepaald versienummer heeft geladen, omdat een eerdere taak in die sandbox dit heeft gezegd, worden toekomstige taken in die sandbox niet automatisch de nieuwste versie van die module geladen. Dit komt doordat een bepaalde versie ervan al in de sandbox is geladen.

Gebruik voor een DSC-resource de volgende opdracht om een bepaalde versie op te geven:

Import-DscResource -ModuleName <ModuleName> -ModuleVersion <version>

Help-informatie

Neem een synopsis, beschrijving en help-URI op voor elke cmdlet in uw module. In PowerShell kunt u help-informatie voor cmdlets definiëren met behulp van de Get-Help cmdlet. In het volgende voorbeeld ziet u hoe u een synopsis en help-URI definieert in een .psm1-modulebestand .

<#
     .SYNOPSIS
      Gets a Contoso User account
#>
function Get-ContosoUser {
[CmdletBinding](DefaultParameterSetName='UseConnectionObject', `
HelpUri='https://www.contoso.com/docs/information')]
[OutputType([String])]
param(
   [Parameter(ParameterSetName='UserAccount', Mandatory=true)]
   [ValidateNotNullOrEmpty()]
   [string]
   $UserName,

   [Parameter(ParameterSetName='UserAccount', Mandatory=true)]
   [ValidateNotNullOrEmpty()]
   [string]
   $Password,

   [Parameter(ParameterSetName='ConnectionObject', Mandatory=true)]
   [ValidateNotNullOrEmpty()]
   [Hashtable]
   $Connection
)

switch ($PSCmdlet.ParameterSetName) {
   "UserAccount" {
      $cred = New-Object -TypeName System.Management.Automation.PSCredential -ArgumentList $UserName, $Password
      Connect-Contoso -Credential $cred
   }
   "ConnectionObject" {
      Connect-Contoso -Connection $Connection
  }
}
}

Als u deze informatie opgeeft, ziet u helptekst via de Get-Help cmdlet in de PowerShell-console. Deze tekst wordt ook weergegeven in Azure Portal.

Schermopname van help voor integratiemodules

Connection type

Als de module verbinding maakt met een externe service, definieert u een verbindingstype met behulp van een aangepaste integratiemodule. Elke cmdlet in de module moet een exemplaar van dat verbindingstype (verbindingsobject) als parameter accepteren. Gebruikers wijzen parameters van de verbindingsasset toe aan de bijbehorende parameters van de cmdlet telkens wanneer ze een cmdlet aanroepen.

Een aangepaste verbinding gebruiken in Azure Portal

In het volgende runbookvoorbeeld wordt een Contoso-verbindingsasset gebruikt die wordt aangeroepen ContosoConnection voor toegang tot Contoso-resources en het retourneren van gegevens van de externe service. In dit voorbeeld worden de velden toegewezen aan de UserName en Password eigenschappen van een PSCredential object en vervolgens doorgegeven aan de cmdlet.

$contosoConnection = Get-AutomationConnection -Name 'ContosoConnection'

$cred = New-Object -TypeName System.Management.Automation.PSCredential -ArgumentList $contosoConnection.UserName, $contosoConnection.Password
Connect-Contoso -Credential $cred
}

Een eenvoudigere en betere manier om dit gedrag te benaderen, is door het verbindingsobject rechtstreeks door te geven aan de cmdlet:

$contosoConnection = Get-AutomationConnection -Name 'ContosoConnection'

Connect-Contoso -Connection $contosoConnection
}

U kunt vergelijkbaar gedrag voor uw cmdlets inschakelen door ze toe te staan een verbindingsobject rechtstreeks als parameter te accepteren, in plaats van alleen verbindingsvelden voor parameters. Meestal wilt u een parameterset voor elk, zodat een gebruiker die geen automation gebruikt, uw cmdlets kan aanroepen zonder een hashtabel te maken om te fungeren als het verbindingsobject. De parameterset UserAccount wordt gebruikt om de eigenschappen van het verbindingsveld door te geven. ConnectionObject hiermee kunt u de verbinding rechtstreeks doorgeven.

Uitvoertype

Definieer het uitvoertype voor alle cmdlets in uw module. Door een uitvoertype voor een cmdlet te definiëren, kan IntelliSense met ontwerptijd de uitvoereigenschappen van de cmdlet tijdens het ontwerpen bepalen. Deze praktijk is vooral handig tijdens het ontwerpen van grafische runbooks, waarvoor ontwerptijdkennis essentieel is voor een eenvoudige gebruikerservaring met uw module.

Toevoegen [OutputType([<MyOutputType>])], waar MyOutputType is een geldig type. Zie Over Functions OutputTypeAttribute voor meer informatieOutputType. De volgende code is een voorbeeld van het toevoegen OutputType aan een cmdlet:

function Get-ContosoUser {
[OutputType([String])]
param(
   [string]
   $Parameter1
)
# <script location here>
}

Schermopname van het uitvoertype grafisch runbook

Dit gedrag is vergelijkbaar met de 'type vooruit'-functionaliteit van de uitvoer van een cmdlet in de PowerShell-integratieserviceomgeving, zonder dat u deze hoeft uit te voeren.

Schermopname van POSH IntelliSense

Cmdlet-status

Maak alle cmdlets in uw module staatloos. Meerdere runbooktaken kunnen tegelijkertijd worden uitgevoerd in hetzelfde AppDomain proces en dezelfde sandbox. Als er statussen op deze niveaus worden gedeeld, kunnen taken elkaar beïnvloeden. Dit gedrag kan leiden tot onregelmatige en moeilijk te diagnosticeren problemen. Hier volgt een voorbeeld van wat u niet moet doen:

$globalNum = 0
function Set-GlobalNum {
   param(
       [int] $num
   )

   $globalNum = $num
}
function Get-GlobalNumTimesTwo {
   $output = $globalNum * 2

   $output
}

Moduleafhankelijkheid

Zorg ervoor dat de module volledig is opgenomen in een pakket dat kan worden gekopieerd met behulp van xcopy. Automation-modules worden gedistribueerd naar de Automation-sandboxes wanneer runbooks worden uitgevoerd. De modules moeten onafhankelijk van de host werken die ze uitvoert.

U moet een modulepakket kunnen zippen en verplaatsen en deze als normaal laten functioneren wanneer het wordt geïmporteerd in de PowerShell-omgeving van een andere host. Zorg ervoor dat de module niet afhankelijk is van bestanden buiten de modulemap die is gezipt wanneer de module in Automation wordt geïmporteerd.

Uw module mag niet afhankelijk zijn van unieke registerinstellingen op een host. Voorbeelden zijn de instellingen die worden gemaakt wanneer een product wordt geïnstalleerd.

Modulebestandspaden

Zorg ervoor dat alle bestanden in de module paden hebben met minder dan 140 tekens. Paden van meer dan 140 tekens veroorzaken problemen met het importeren van runbooks. Automation kan een bestand met een padgrootte van meer dan 140 tekens niet importeren in de PowerShell-sessie met Import-Module.

Modules importeren

In deze sectie worden verschillende manieren gedefinieerd waarop u een module kunt importeren in uw Automation-account.

Modules importeren in Azure Portal

Een module importeren in de Azure Portal:

  1. Zoek en selecteer Automation-accounts in Azure Portal.
  2. Selecteer op de pagina Automation-accounts uw Automation-account in de lijst.
  3. Onder Gedeelde resources selecteert u Modules.
  4. Selecteer Een module toevoegen.
  5. Selecteer het .zip-bestand dat uw module bevat.
  6. Selecteer OK om het importproces te starten.

Modules importeren met behulp van PowerShell

U kunt de cmdlet New-AzAutomationModule gebruiken om een module te importeren in uw Automation-account. De cmdlet gebruikt een URL voor een module .zip-pakket.

New-AzAutomationModule -Name <ModuleName> -ContentLinkUri <ModuleUri> -ResourceGroupName <ResourceGroupName> -AutomationAccountName <AutomationAccountName>

U kunt dezelfde cmdlet ook gebruiken om een module rechtstreeks vanuit de PowerShell Gallery te importeren. Zorg ervoor dat u de PowerShell Gallery pakt ModuleName en uit de PowerShell-galerieModuleVersion.

$moduleName = <ModuleName>
$moduleVersion = <ModuleVersion>
New-AzAutomationModule -AutomationAccountName <AutomationAccountName> -ResourceGroupName <ResourceGroupName> -Name $moduleName -ContentLinkUri "https://www.powershellgallery.com/api/v2/package/$moduleName/$moduleVersion"

U kunt PowerShell Gallery-modules rechtstreeks vanuit de galerie of vanuit uw Automation-account importeren.

Een module rechtstreeks importeren vanuit de PowerShell Gallery:

  1. Ga naar en zoek naar https://www.powershellgallery.com de module die u wilt importeren.
  2. Selecteer onder Installatieopties op het tabblad Azure Automation de optie Implementeren in Azure Automation. Met deze actie wordt Azure Portal geopend.
  3. Selecteer uw Automation-account op de pagina Importeren en selecteer OK.

Schermopname van de importmodule van de PowerShell Gallery

Een PowerShell Gallery-module rechtstreeks vanuit uw Automation-account importeren:

  1. Zoek en selecteer Automation-accounts in de portal.
  2. Selecteer op de pagina Automation-accounts uw Automation-account in de lijst.
  3. Onder Gedeelde resources selecteert u Modules.
  4. Selecteer Bladeren in de galerie en zoek vervolgens in de galerie naar een module.
  5. Selecteer de module die u wilt importeren en selecteer Importeren.
  6. Selecteer OK om het importproces te starten.

Schermopname van het importeren van een PowerShell Gallery-module vanuit Azure Portal

Modules verwijderen

Als u problemen ondervindt met een module of als u wilt terugkeren naar een eerdere versie van een module, kunt u deze verwijderen uit uw Automation-account. U kunt de oorspronkelijke versies van de standaardmodules die worden geïmporteerd niet verwijderen wanneer u een Automation-account maakt. Als de te verwijderen module een nieuwere versie van een van de standaardmodules is, wordt deze teruggezet naar de versie die met uw Automation-account is geïnstalleerd. Anders wordt een module die u verwijdert uit uw Automation-account verwijderd.

Modules verwijderen in de Azure-portal

Een module verwijderen in de Azure-portal:

  1. Zoek en selecteer Automation-accounts in de portal.
  2. Selecteer op de pagina Automation-accounts uw Automation-account in de lijst.
  3. Onder Gedeelde resources selecteert u Modules.
  4. Selecteer de module die u wilt verwijderen.
  5. Selecteer Verwijderen op de pagina Module. Als deze module een van de standaardmodules is, wordt deze teruggezet naar de versie die bestond toen het Automation-account werd gemaakt.

Modules verwijderen met behulp van PowerShell

Als u een module wilt verwijderen via PowerShell, voert u de volgende opdracht uit:

Remove-AzAutomationModule -Name <moduleName> -AutomationAccountName <automationAccountName> -ResourceGroupName <resourceGroupName>

Volgende stappen

  • Zie Aan de slag met Azure PowerShell voor meer informatie over het gebruik van Azure PowerShell-modules.

  • Zie Een Windows PowerShell-module schrijven voor meer informatie over het maken van PowerShell-modules.