Delen via


Service Management Automation-runbookcreatie vereenvoudigen met globale assets

Belangrijk

Deze versie van Service Management Automation (SMA) heeft het einde van de ondersteuning bereikt. U wordt aangeraden een upgrade uit te voeren naar SMA 2022.

Globale assets zijn beschikbaar voor alle runbooks in een Automation-omgeving. U kunt ze maken en configureren met de Automation-werkruimte in de beheerportal of met de juiste cmdlets in Windows PowerShell. Vanuit een runbook kunt u waarden ophalen en instellen voor globale assets 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 via de Automation-webservice hoeven te werken.

Referenties ophalen of instellen

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

PowerShell voor het beheren van referenties

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

Cmdlets Description
Get-SmaCertificate Hiermee wordt een Automation-certificaat opgehaald.
Get-SmaCredential Haalt 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 creëert u een nieuw certificaat of stelt u de eigenschappen van een bestaand certificaat in, met inbegrip van het uploaden van het certificaatbestand en het instellen van het wachtwoord voor een .pfx-bestand.
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 volgende tabel gebruiken om toegang te krijgen tot de referenties in een runbook.

Activiteiten Description
Get-AutomationCertificate Hiermee haalt u een certificaat op dat moet worden gebruikt in een runbook.
Get-AutomationPSCredential Hiermee haalt u een gebruikersnaam en 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 Automation-werkruimte .

  2. Selecteer Assets boven aan het venster.

  3. Selecteer onder aan het venster De optie Instelling toevoegen.

  4. Selecteer Referentie toevoegen.

  5. Selecteer PowerShell-referentie in de vervolgkeuzelijst Referentietype.

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

  7. Selecteer de pijl-rechts.

  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 Automation-werkruimte .

  2. Selecteer Assets boven aan het venster.

  3. Selecteer onder aan het venster De optie Instelling toevoegen.

  4. Selecteer Referentie toevoegen.

  5. Selecteer Certificaat in de vervolgkeuzelijst Referentietype.

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

  7. Selecteer de pijl-rechts.

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

  9. Als u een .pfx-bestand hebt geselecteerd, geeft u vervolgens het 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 . Dit retourneert een PSCredential-object dat u kunt gebruiken in de werkstroom.

  • 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 vereist is om vanuit een runbook verbinding te maken met een service of toepassing. Deze informatie is gedefinieerd in de module voor de toepassing en omvat doorgaans gegevens 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 activiteit Get-AutomationConnection .

Windows PowerShell-cmdlets

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

Cmdlets Description
Get-SmaConnection Hiermee haalt u de waarden voor elk veld in een bepaalde verbinding op.
Get-SmaConnectionField Hiermee haalt u de velddefinities voor een bepaald verbindingstype op.
Get-SmaConnectionType Hiermee haalt u de beschikbare verbindingstypen op.
New-SmaConnection Hiermee maakt u een nieuwe verbinding.
Remove-SmaConnection Hiermee verwijdert u een bestaande verbinding.
Set-SmaConnectionFieldValue Hiermee stelt u de waarde van een bepaald veld voor een bestaande verbinding in.

Runbookactiviteiten

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

Activiteiten Description
Get-AutomationConnection Hiermee haalt u een verbinding op die moet worden gebruikt in een runbook.

Een verbinding maken in de beheerportal

  1. Selecteer de Automation-werkruimte .

  2. Selecteer Assets boven aan het venster.

  3. Selecteer onder aan het venster De optie 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 pijl-rechts.

  8. Voer een waarde in voor elke eigenschap.

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

Een verbinding maken met Windows PowerShell

Met de volgende voorbeeldopdrachten wordt een nieuwe Virtual Machine Manager-verbinding met de naam MyVMMConnection gemaakt.

Notitie

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

Zie about_Hash_Tables voor meer informatie over hash-tabellen.

$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_Tables voor meer informatie over hash-tabellen.

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

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

  • Een waarde tussen meerdere runbooks delen.

  • Een waarde tussen meerdere taken van hetzelfde runbook delen.

  • Een waarde van de beheerportal of vanaf de Windows PowerShell-opdrachtregel beheren, welke waarde wordt gebruikt door runbooks.

Automation-variabelen blijven behouden, zodat ze beschikbaar blijven, zelfs als het runbook mislukt. Hierdoor kan ook een waarde worden ingesteld door een runbook dat vervolgens door een ander runbook wordt gebruikt of door hetzelfde runbook wordt gebruikt wanneer het de volgende keer wordt uitgevoerd.

Wanneer u een variabele maakt, moet u het gegevenstype opgeven uit de volgende lijst. Dit is zodat de beheerportal het juiste besturingselement voor de waarde van de variabele kan weergeven. U kunt alleen een waarde van het juiste type aan een variabele toewijzen.

  • Tekenreeks

  • Geheel getal

  • Booleaans

  • Datum/tijd

Wanneer een variabele is gemaakt, kunt u opgeven dat deze versleuteld moet worden 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 uit de activiteit Get-AutomationVariable 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 Description
Get-SmaVariable Hiermee haalt u 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 Description
Get-AutomationVariable Hiermee haalt u 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 'Naamparameter 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 Automation-werkruimte .

  2. Selecteer Assets boven aan het venster.

  3. Selecteer onder aan het venster De optie 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 pijl-rechts.

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

  9. Selecteer het vinkje om de nieuwe variabele op te slaan.

Een nieuwe variabele maken met Windows PowerShell

Met de cmdlet Set-SmaVariable wordt een nieuwe variabele gemaakt en wordt de waarde voor een bestaande variabele ingesteld. 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 instelt en ophaalt in een runbook. In dit voorbeeld wordt ervan uitgegaan dat variabelen van het type geheel getal met de naam 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