Freigeben über


Vereinfachte Erstellung von Service Management Automation-Runbooks mit globalen Assets

Globale Ressourcen sind für alle Runbooks in einer Automatisierungsumgebung verfügbar. Sie erstellen und konfigurieren sie entweder über den Automatisierungsarbeitsbereich im Verwaltungsportal oder mit den entsprechenden Cmdlets in Windows PowerShell. Von einem Runbook aus können Sie Werte für globale Assets mit Aktivitäten im Modul RunbookConstructs abrufen und festlegen. Die Windows PowerShell-Cmdlets können in Runbooks in Service Management Automation verwendet werden, aber die Aktivitäten werden empfohlen, da sie effizienter sind, weil sie nicht über den Automation-Webdienst laufen müssen.

Abrufen oder Festlegen von Anmeldeinformationen

Eine Automatisierungsanmeldeinformation ist entweder ein Benutzername und ein Kennwort, das mit Windows PowerShell-Befehlen oder einem Zertifikat verwendet werden kann, das auf den Server hochgeladen wird. Die Eigenschaften eines Berechtigungsnachweises werden sicher in der Automatisierungsdatenbank gespeichert und können im Runbook entweder mit der Aktivität Get-AutomationPSCredential oder Get-AutomationCertificate abgerufen werden.

PowerShell zum Verwalten von Anmeldeinformationen

Sie können die Cmdlets in der folgenden Tabelle verwenden, um Anmeldeinformationen mit Windows PowerShell in Service Management Automation zu erstellen und zu verwalten.

Cmdlets Beschreibung
Get-SmaCertificate Ruft ein Automatisierungszertifikat ab.
Get-SmaCredential Ruft eine Automation PowerShell-Anmeldeinformation ab.
Remove-SmaCertificate Entfernt ein Automatisierungszertifikat.
Remove-SmaCredential Entfernt eine PowerShell-Automatisierungs-Anmeldeinformationen.
Set-SmaCertificate Erstellt ein neues Zertifikat oder legt die Eigenschaften für ein vorhandenes Zertifikat fest, einschließlich des Hochladens der Zertifikatsdatei und des Festlegens des Passworts für ein .pfx.
Set-SmaCredential Erstellt eine neue Automation PowerShell-Anmeldeinformation oder legt die Eigenschaften für eine vorhandene Anmeldeinformation fest.

PowerShell zum Arbeiten mit Anmeldeinformationen

Sie können die Aktivitäten in der folgenden Tabelle verwenden, um auf die Anmeldeinformationen in einem Runbook zuzugreifen.

Aktivitäten Beschreibung
Get-AutomationCertificate Ruft ein Zertifikat zur Verwendung in einem Runbook ab.
Get-AutomationPSCredential Ruft einen Benutzernamen/ein Kennwort für die Verwendung in einem Runbook ab.

Hinweis

Sie sollten die Verwendung von Variablen im Parameter Name von Get-AutomationPSCredential und Get-AutomationCertificate vermeiden, da dies die Ermittlung von Abhängigkeiten zwischen Runbooks und Automatisierungsvariablen erschweren kann.

Erstellen einer PowerShell-Anmeldeinformationen im Verwaltungsportal

  1. Wählen Sie den Arbeitsbereich Automation.

  2. Wählen Sie oben im Fenster Assets.

  3. Wählen Sie am unteren Rand des Fensters Einstellung hinzufügen.

  4. Wählen Sie Anmeldeinformation hinzufügen.

  5. Wählen Sie in der Dropdownliste Anmeldeinformationstyp die Option PowerShell-Anmeldeinformationen aus.

  6. Geben Sie einen Namen für die Berechtigung in das Feld Name ein.

  7. Wählen Sie den nach rechts zeigenden Pfeil aus.

  8. Geben Sie die Werte für jede Eigenschaft ein.

  9. Aktivieren Sie das Häkchen, um die Anmeldeinformationen zu speichern.

Erstellen Sie ein Zertifikat im

Verwaltungsportal

  1. Wählen Sie den Arbeitsbereich Automation.

  2. Wählen Sie oben im Fenster Assets.

  3. Wählen Sie am unteren Rand des Fensters Einstellung hinzufügen.

  4. Wählen Sie Anmeldeinformation hinzufügen.

  5. Wählen Sie in der Dropdownliste Anmeldeinformationstyp die Option Zertifikat.

  6. Geben Sie in das Feld Name einen Namen für das Zertifikat ein.

  7. Wählen Sie den nach rechts zeigenden Pfeil aus.

  8. Wählen Sie Datei suchen und navigieren Sie entweder zu einer .cer- oder .pfx-Datei.

  9. Wenn Sie eine .pfx-Datei ausgewählt haben, stellen Sie das Passwort bereit.

  10. Aktivieren Sie das Kontrollkästchen, um das Zertifikat zu speichern.

Erstellen einer Anmeldeinformation mit PowerShell

Die folgenden Beispielbefehle zeigen, wie Sie eine neue Anmeldeinformation erstellen.

$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

So erstellen Sie ein neues PowerShell-Zertifikat mit Windows PowerShell in Service Management Automation

Die folgenden Beispielbefehle zeigen, wie Sie ein neues Zertifikat erstellen, indem Sie eine Zertifikatsdatei importieren.

$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

Verwenden von PowerShell-Anmeldeinformationen in einem Runbook

Sie erhalten eine PowerShell-Anmeldeinformation in einem Runbook mit der Aktivität Get-AutomationPSCredential. Dadurch wird ein PSCredential-Objekt zurückgegeben, das Sie im Workflow verwenden können.

  • Die folgenden Beispielbefehle zeigen, wie Sie ein PowerShell-Anmeldeinformationsobjekt in einem Runbook verwenden. In diesem Beispiel wird die Anmeldeinformation mit einer InlineScript-Aktivität verwendet, um eine Reihe von Befehlen mit alternativen Anmeldeinformationen auszuführen.

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

Verwalten von SMA-Verbindungen

Ein Automation-Verbindungsobjekt enthält die Informationen, die zur Verbindungsherstellung mit einem externen Dienst oder einer externen Anwendung aus einem Runbook erforderlich sind. Diese Informationen werden im Modul für die Anwendung definiert und umfassen in der Regel Informationen wie den Benutzernamen und das Kennwort sowie den Computer, mit dem eine Verbindung hergestellt werden soll. Es können auch andere Informationen erforderlich sein, wie z. B. ein Zertifikat oder eine Abonnement-ID. Die Eigenschaften einer Verbindung werden sicher in der Automation-Datenbank gespeichert und können im Runbook mit der Aktivität Get-AutomationConnection abgerufen werden.

Windows PowerShell-Cmdlets

Sie können Anmeldeinformationen mit den Windows PowerShell-Cmdlets in der folgenden Tabelle erstellen und verwalten.

Cmdlets Beschreibung
Get-SmaConnection Erhält die Werte für jedes Feld in einer bestimmten Verbindung.
Get-SmaConnectionField Erhält die Felddefinitionen für einen bestimmten Verbindungstyp.
Get-SmaConnectionType Erhält die verfügbaren Verbindungstypen.
New-SmaConnection Erstellt eine neue Verbindung.
Remove-SmaConnection Entfernt eine vorhandene Verbindung.
Set-SmaConnectionFieldValue Legt den Wert für ein bestimmtes Feld einer vorhandenen Verbindung fest.

Runbookaktivitäten

Sie können auf Verbindungen in einem Runbook mit den Aktivitäten in der folgenden Tabelle zugreifen.

Aktivitäten Beschreibung
Get-AutomationConnection Ruft eine Verbindung zur Verwendung in einem Runbook ab.

Erstellen einer Verbindung im Verwaltungsportal

  1. Wählen Sie den Arbeitsbereich Automation.

  2. Wählen Sie oben im Fenster Assets.

  3. Wählen Sie am unteren Rand des Fensters Einstellung hinzufügen.

  4. Wählen Sie Verbindung hinzufügen aus.

  5. Wählen Sie in der Dropdown-Liste Verbindungstyp einen Verbindungstyp aus.

  6. Geben Sie in das Feld Name einen Namen für die Verbindung ein.

  7. Wählen Sie den nach rechts zeigenden Pfeil aus.

  8. Geben Sie für jede Eigenschaft einen Wert ein.

  9. Markieren Sie das Häkchen, um die Verbindung zu speichern.

Herstellen einer Verbindung mit Windows-PowerShell

Die folgenden Beispielbefehle erstellen eine neue Virtual Machine Manager-Verbindung mit dem Namen MyVMMConnection.

Hinweis

Wir verwenden eine Hashtabelle, um die Eigenschaften der Verbindung zu definieren. Dies liegt daran, dass unterschiedliche Typen von Verbindungen unterschiedliche Eigenschaften erfordern. Eine Verbindung eines anderen Typs würde einen unterschiedlichen Satz von Feldwerten verwenden.

Weitere Informationen zu Hashtabellen finden Sie unter about_Hash_Tables (Informationen zu 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

Verwenden einer Verbindung in einem Runbook

Verwenden Sie die Aktivität Get-AutomationConnection, um eine Verbindung in einem Runbook zu verwenden. Diese Aktivität erhält die Werte der unterschiedlichen Felder in der Verbindung und gibt sie als Hashtabelle zurück, die dann mit den entsprechenden Befehlen im Runbook verwendet werden kann.

Weitere Informationen zu Hashtabellen finden Sie unter about_Hash_Tables (Informationen zu Hashtabellen).

Das folgende Codebeispiel zeigt, wie eine Verbindung verwendet werden kann, um den Computernamen und die Anmeldeinformationen für einen InlineScript-Block bereitzustellen, der Befehle auf einem anderen Computer ausführt.

$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

Vereinfachen der Runbookentwicklung mit globalen Variablen

Automatisierungsvariablen sind Werte, die für alle Runbooks verfügbar sind. Sie können sie über das Verwaltungsportal, Windows PowerShell oder aus einem Runbook heraus erstellen, ändern und erhalten. Automatisierungsvariablen sind in folgenden Szenarien hilfreich:

  • Gemeinsame Nutzung eines Werts durch mehrere Runbooks.

  • Gemeinsame Nutzung eines Werts durch mehrere Aufträge des gleichen Runbooks.

  • Verwalten eines Werts über das Verwaltungsportal oder über die Windows PowerShell-Befehlszeile, der von Runbooks verwendet wird.

Automatisierungsvariablen werden persistiert, so dass sie auch dann noch verfügbar sind, wenn das Runbook fehlschlägt. Auf diese Weise kann auch ein Wert von einem Runbook festgelegt werden, der dann von einem anderen Runbook verwendet wird oder von demselben Runbook, wenn es das nächste Mal ausgeführt wird.

Wenn eine Variable erstellt wird, müssen Sie ihren Datentyp aus der folgenden Liste auswählen. So kann das Verwaltungsportal das entsprechende Steuerelement für den Variablenwert anzeigen. Sie können einer Variablen nur einen Wert des richtigen Typs zuweisen.

  • String

  • Ganzzahl

  • Boolean

  • Datetime

Beim Erstellen einer Variablen können Sie festlegen, dass diese verschlüsselt gespeichert wird. Wenn eine Variable verschlüsselt ist, wird sie sicher in der SMA-Datenbank gespeichert, und ihr Wert kann nicht über das Cmdlet Get-SmaVariable erhalten werden. Die einzige Möglichkeit, einen verschlüsselten Wert zu erhalten, besteht in der Get-AutomationVariable-Aktivität in einem Runbook. Sie können mehrere Werte des definierten Typs in einer einzigen Variablen speichern, indem Sie eine Hash-Tabelle erstellen.

Windows PowerShell-Cmdlets

Sie können Variablen mit den Windows PowerShell-Cmdlets in der folgenden Tabelle erstellen und verwalten.

Cmdlets Beschreibung
Get-SmaVariable Ruft den Wert einer vorhandenen Variable ab.
Set-SmaVariable Legt eine neue Variable an oder legt den Wert für eine vorhandene Variable fest.

Runbookaktivitäten

Sie können mit den Aktivitäten in der folgenden Tabelle auf Variablen in einem Runbook zugreifen.

Aktivitäten Beschreibung
Get-AutomationVariable Ruft den Wert einer vorhandenen Variable ab.
Set-AutomationVariable Legt den Wert für eine vorhandene Variable fest.

Hinweis

Sie sollten die Verwendung von Variablen im „Name“-Parameter von Get-AutomationVariable vermeiden, da dies die Erkennung von Abhängigkeiten zwischen Runbooks und Automatisierungsvariablen erschweren kann.

Erstellen einer neue Variable im Verwaltungsportal

  1. Wählen Sie den Arbeitsbereich Automation.

  2. Wählen Sie oben im Fenster Assets.

  3. Wählen Sie am unteren Rand des Fensters Einstellung hinzufügen.

  4. Wählen Sie Variable hinzufügen.

  5. Wählen Sie in der Dropdown-Liste Typ einen Datentyp aus.

  6. Geben Sie einen Namen für die Variable in das Feld Name ein.

  7. Wählen Sie den nach rechts zeigenden Pfeil aus.

  8. Geben Sie einen Wert für die Variable ein und legen Sie fest, ob sie verschlüsselt werden soll.

  9. Markieren Sie das Häkchen, um die neue Variable zu speichern.

So erstellen Sie eine neue Variable mit Windows PowerShell

Das Cmdlet Set-SmaVariable erstellt sowohl eine neue Variable als auch legt den Wert für eine vorhandene Variable fest. Die folgenden Beispielbefehle zeigen, wie man eine Variable vom Typ Zeichenfolge erstellt.

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

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

Verwenden einer Variablen in einem Runbook

  • Das folgende Codebeispiel zeigt, wie man eine Variable in einem Runbook festlegt und erhält. In diesem Beispiel wird davon ausgegangen, dass die Variablen vom Typ Integer mit den Namen NumberOfIterations und NumberOfRunnings sowie eine Variable vom Typ Zeichenfolge mit dem Namen SampleMessage bereits erstellt wurden.

    $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)
    

Nächste Schritte