Delen via


Vereenvoudig het maken van runbooks in Service Management Automation met globale assets

Globale Assets zijn beschikbaar voor alle runbooks in een automatiseringsomgeving. U maakt en configureert deze met behulp van de Automation-werkruimte in de beheerportal of met de juiste cmdlets in Windows PowerShell. Vanuit een runbook kunt u waarden voor globale assets ophalen en instellen met activiteiten in de module RunbookConstructs. De Windows PowerShell-cmdlets zijn beschikbaar voor gebruik in runbooks in Service Management Automation, maar de activiteiten worden aanbevolen omdat ze efficiënter zijn omdat ze niet hoeven te werken via de Automation-webservice.

Referenties ophalen of instellen

Een Automation-referentie is een gebruikersnaam en wachtwoord die kunnen worden gebruikt met Windows PowerShell-opdrachten of een certificaat dat naar de server wordt geüpload. De eigenschappen voor een referentie worden veilig opgeslagen in de Automation-database en kunnen in het runbook worden geopend met de activiteit Get-AutomationPSCredential of de activiteit Get-AutomationCertificate.

PowerShell voor het beheren van referenties

U kunt de cmdlets in de volgende tabel gebruiken om referenties te maken en beheren met Windows PowerShell in Service Management Automation.

Cmdlets Beschrijving
Get-SmaCertificate U haalt een automatiseringscertificaat op.
Get-SmaCredential Hiermee haalt u een Automation PowerShell-referentie op.
Remove-SmaCertificate Hiermee verwijdert u een Automation-certificaat.
Remove-SmaCredential Hiermee verwijdert u een Automation PowerShell-referentie.
Set-SmaCertificate Hiermee maakt u een nieuw certificaat of stelt u de eigenschappen voor een bestaand certificaat in, inclusief het uploaden van het certificaatbestand en het instellen van het wachtwoord voor een PFX.
Set-SmaCredential Hiermee maakt u een nieuwe Automation PowerShell-referentie of stelt u de eigenschappen voor een bestaande referentie in.

PowerShell voor het werken met referenties

U kunt de activiteiten in de onderstaande tabel gebruiken om toegang te krijgen tot de inloggegevens in een runbook.

Activiteiten Beschrijving
Get-AutomationCertificate Hiermee verkrijgt u een certificaat om te gebruiken in een runbook.
Get-AutomationPSCredential Hiermee haalt u een gebruikersnaam/wachtwoord op voor gebruik in een runbook.

Notitie

Vermijd het gebruik van variabelen in de naamparameter van Get-AutomationPSCredential- en Get-AutomationCertificate omdat dit het detecteren van afhankelijkheden tussen runbooks en Automation-variabelen kan bemoeilijken.

Een PowerShell-referentie maken in de beheerportal

  1. Selecteer de werkruimte Automation.

  2. Selecteer bovenaan het venster Assets.

  3. Selecteer onderaan het venster Instelling toevoegen.

  4. Selecteer Referentie toevoegen.

  5. Selecteer in de vervolgkeuzelijst Referentietype de optie PowerShell-Referentie.

  6. Voer een naam in voor de referentie in het vak Naam.

  7. Selecteer de rechters pijl.

  8. Voer de waarden voor elke eigenschap in.

  9. Selecteer het vinkje om de referentie op te slaan.

Een certificaat maken in de

Beheerportal

  1. Selecteer de werkruimte Automation.

  2. Selecteer bovenaan het venster Assets.

  3. Selecteer onderaan het venster Instelling toevoegen.

  4. Selecteer Referentie toevoegen.

  5. Selecteer Certificaatin de vervolgkeuzelijst referentietype.

  6. Voer een naam in voor het certificaat in het vak Naam.

  7. Selecteer de rechterpijl.

  8. Selecteer Bladeren naar bestand en navigeer naar een .cer- of PFX-bestand.

  9. Als u een PFX-bestand hebt geselecteerd, geeft u het bijbehorende wachtwoord op.

  10. Selecteer het vinkje om het certificaat op te slaan.

Een referentie maken met PowerShell

De volgende voorbeeldopdrachten laten zien hoe u een nieuwe referentie maakt.

$webServer = 'https://MyWebServer'
$port = 9090
$credName = 'MyCredential'
$user = 'contoso\MyUser'
$pwd = ConvertTo-SecureString -String 'P@$$w0rd' -AsPlainText -Force
$cred = New-Object -TypeName System.Management.Automation.PSCredential -ArgumentList $user,$pwd

Set-SmaCredential -WebServiceEndpoint $webServer -port $port -Name $credName -Value $cred

Een nieuw PowerShell-certificaat maken met Windows PowerShell in Service Management Automation

De volgende voorbeeldopdrachten laten zien hoe u een nieuw certificaat maakt door een certificaatbestand te importeren.

$webServer = 'https://MyWebServer'
$port = 9090
$certName = 'MyCertificate'
$path = 'c:\certs\MyCertificate.pfx'
$certPwd = ConvertTo-SecureString -String 'P@$$w0rd' -AsPlainText -Force

Set-SmaCertificate -WebServiceEndpoint $webServer -port $port -Name $certName -Path $certPath -Password $certPwd

Een PowerShell-referentie gebruiken in een runbook

U haalt een PowerShell-referentie op in een runbook met de activiteit Get-AutomationPSCredential. Hiermee wordt een PSCredential-object geretourneerd dat u in de werkstroom kunt gebruiken.

  • De volgende voorbeeldopdrachten laten zien hoe u een PowerShell-referentie gebruikt in een runbook. In dit voorbeeld wordt de referentie gebruikt met een InlineScript activiteit om een set opdrachten uit te voeren met behulp van alternatieve referenties.

    $myCredential = Get-AutomationPSCredential -Name 'MyCredential'
    InlineScript {
       <Commands>
    } -PSComputerName $ServerName -PSCredential $myCredential
    

SMA-verbindingen beheren

Een Automation-verbinding bevat de informatie die nodig is om verbinding te maken met een service of toepassing vanuit een runbook. Deze informatie wordt gedefinieerd in de module voor de toepassing en bevat doorgaans informatie zoals de gebruikersnaam en het wachtwoord en de computer waarmee verbinding moet worden gemaakt. Andere informatie kan ook vereist zijn, zoals een certificaat of een abonnements-id. De eigenschappen voor een verbinding worden veilig opgeslagen in de Automation-database en kunnen worden geopend in het runbook met de Get-AutomationConnection activiteit.

Windows PowerShell-cmdlets

U kunt referenties maken en beheren met de Windows PowerShell-cmdlets in de volgende tabel.

Cmdlets Beschrijving
Get-SmaConnection- Haalt de waarden voor elk veld in een bepaalde verbinding op.
Get-SmaConnectionField Haalt de velddefinities voor een bepaald verbindingstype op.
Get-SmaConnectionType Haalt de beschikbare verbindingstypen op.
Nieuwe-SmaVerbinding Hiermee maakt u een nieuwe verbinding.
Remove-SmaConnection- Een bestaande verbinding verwijderen.
Set-SmaConnectionFieldValue Hiermee stelt u de waarde van een bepaald veld voor een bestaande verbinding in.

Runbook-activiteiten

Je hebt toegang tot verbindingen in een runbook via de activiteiten in de volgende tabel.

Activiteiten Beschrijving
Get-AutomationConnection Verkrijgt een verbinding voor gebruik in een runbook.

Een verbinding maken in de beheerportal

  1. Selecteer de werkruimte Automation.

  2. Selecteer bovenaan het venster Assets.

  3. Selecteer onderaan het venster Instelling toevoegen.

  4. Selecteer Verbinding toevoegen.

  5. Selecteer een verbindingstype in de vervolgkeuzelijst verbindingstype.

  6. Voer een naam in voor de verbinding in het vak Naam.

  7. Selecteer de rechterpijl.

  8. Voer een waarde in voor elke eigenschap.

  9. Schakel het vinkje in om de verbinding op te slaan.

Een verbinding maken met Windows PowerShell

Met de volgende voorbeeldopdrachten maakt u een nieuwe Virtual Machine Manager-verbinding met de naam MyVMMConnection.

Notitie

We gebruiken een hash-tabel om de eigenschappen van de verbinding te definiëren. Dit komt doordat verschillende typen verbindingen verschillende sets eigenschappen vereisen. Een verbinding van een ander type gebruikt een andere set veldwaarden.

Zie about_Hash_Tablesvoor meer informatie over hashtabellen.

$webServer = 'https://MyWebServer'
$port = 9090
$connectionName = 'MyConnection'
$fieldValues = @{"Username"="MyUser";"Password"="password";"ComputerName"="MyComputer"}
New-SmaConnection -WebServiceEndpoint $webServer -port $port -Name $connectionName -ConnectionTypeName "VirtualMachineManager" -ConnectionFieldValues $fieldValues

Een verbinding gebruiken in een runbook

Gebruik de activiteit Get-AutomationConnection om een verbinding in een runbook te gebruiken. Met deze activiteit worden de waarden van de verschillende velden in de verbinding opgehaald en geretourneerd als een hash-tabel, die vervolgens kan worden gebruikt met de juiste opdrachten in het runbook.

Zie about_Hash_Tablesvoor meer informatie over hashtabellen.

De volgende voorbeeldcode laat zien hoe u een verbinding gebruikt om de computernaam en referenties op te geven voor een InlineScript- blok waarmee opdrachten op een andere computer worden uitgevoerd.

$con = Get-AutomationConnection -Name 'MyConnection'
$securepassword = ConvertTo-SecureString -AsPlainText -String $con.Password -Force
$cred = New-Object -TypeName System.Management.Automation.PSCredential -ArgumentList $con.Username, $securepassword
InlineScript {
   <Commands>
} -PSComputerName $con.ComputerName -PSCredential $cred

Runbookontwikkeling vereenvoudigen met globale variabelen

Automatiseringsvariabelen zijn waarden die beschikbaar zijn voor alle runbooks. U kunt ze maken, wijzigen en ophalen vanuit de beheerportal, Windows PowerShell of vanuit een runbook. Automatiseringsvariabelen zijn handig voor de volgende scenario's:

  • Een waarde delen tussen meerdere runbooks.

  • Deel een waarde tussen meerdere taken uit hetzelfde runbook.

  • Een waarde beheren vanuit het beheerportaal of vanaf de Windows PowerShell-opdrachtregel die door runbooks wordt gebruikt.

Automatiseringsvariabelen worden opgeslagen, zodat ze beschikbaar blijven, zelfs als het runbook mislukt. Hierdoor kan ook een waarde worden ingesteld door één runbook dat vervolgens wordt gebruikt door een ander runbook of wordt gebruikt door hetzelfde runbook wanneer het de volgende keer wordt uitgevoerd.

Wanneer een variabele wordt gemaakt, moet u het gegevenstype opgeven uit de volgende lijst. Dit is zo dat in de beheerportal het juiste besturingselement voor de variabelewaarde kan worden weergegeven. U kunt alleen een waarde van het juiste type toewijzen aan een variabele.

  • Snaar

  • Geheel getal

  • Booleaans

  • Datum/tijd

Wanneer een variabele wordt gemaakt, kunt u opgeven dat deze wordt versleuteld opgeslagen. Wanneer een variabele is versleuteld, wordt deze veilig opgeslagen in de SMA-database en kan de waarde ervan niet worden opgehaald uit de cmdlet Get-SmaVariable. De enige manier waarop een versleutelde waarde kan worden opgehaald, is via de Get-AutomationVariable activiteit in een runbook. U kunt meerdere waarden van het gedefinieerde type opslaan in één variabele door een hash-tabel te maken.

Windows PowerShell-cmdlets

U kunt variabelen maken en beheren met de Windows PowerShell-cmdlets in de volgende tabel.

Cmdlets Beschrijving
Get-SmaVariable Haalt de waarde van een bestaande variabele op.
Set-SmaVariable- Hiermee maakt u een nieuwe variabele of stelt u de waarde voor een bestaande variabele in.

Runbookactiviteiten

U hebt toegang tot variabelen in een runbook met de activiteiten in de volgende tabel.

Activiteiten Beschrijving
Get-AutomationVariable Haalt de waarde van een bestaande variabele op.
Set-AutomationVariable Hiermee stelt u de waarde voor een bestaande variabele in.

Notitie

Vermijd het gebruik van variabelen in de parameter Naam van Get-AutomationVariable, omdat dit het detecteren van afhankelijkheden tussen runbooks en Automation-variabelen kan bemoeilijken.

Een nieuwe variabele maken in de beheerportal

  1. Selecteer de werkruimte Automation.

  2. Selecteer bovenaan het venster Assets.

  3. Selecteer onderaan het venster Instelling toevoegen.

  4. Selecteer Variabele toevoegen.

  5. Selecteer een gegevenstype in de vervolgkeuzelijst Type.

  6. Voer een naam in voor de variabele in het vak Naam.

  7. Selecteer de rechterpijl.

  8. Voer een waarde in voor de variabele en geef op of deze moet worden versleuteld.

  9. Schakel het vinkje in om de nieuwe variabele op te slaan.

Een nieuwe variabele maken met Windows PowerShell

De cmdlet Set-SmaVariable maakt beide een nieuwe variabele en stelt de waarde voor een bestaande variabele in. De volgende voorbeeldopdrachten laten zien hoe u een variabele van het type tekenreeks maakt.

$web = 'https://MySMAServer'
$port = 9090

Set-SMAVariable -WebServiceEndpoint $web -Port $port -Name 'MyVariable' -Value 'My String'

Een variabele gebruiken in een runbook

  • De volgende voorbeeldcode laat zien hoe u een variabele in een runbook instelt en ophaalt. In dit voorbeeld wordt ervan uitgegaan dat variabelen van het type integer NumberOfIterations en NumberOfRunnings en een variabele van het type tekenreeks met de naam SampleMessage al zijn gemaakt.

    $NumberOfIterations = Get-AutomationVariable -Name 'NumberOfIterations'
    $NumberOfRunnings = Get-AutomationVariable -Name 'NumberOfRunnings'
    $SampleMessage = Get-AutomationVariable -Name 'SampleMessage'
    Write-Output "Runbook has been run $NumberOfRunnings times."
    for ($i = 1; $i -le $NumberOfIterations; $i++) {
       Write-Output "$i`: $SampleMessage"
    }
    Set-AutomationVariable -Name NumberOfRunnings -Value (NumberOfRunnings += 1)
    

Volgende stappen