Teilen über


Vereinfachen der Erstellung des Runbooks für die Dienstverwaltungsautomatisierung mit globalen Ressourcen

Globale Ressourcen sind für alle Runbooks in einer Automatisierungsumgebung verfügbar. Sie erstellen und konfigurieren sie entweder mithilfe des Automatisierungsarbeitsbereichs im Verwaltungsportal oder mit den entsprechenden Cmdlets in Windows PowerShell. Aus einem Runbook können Sie Werte für globale Objekte mit Aktivitäten im RunbookConstructs-Modul abrufen und festlegen. Die Windows PowerShell-Cmdlets sind für die Verwendung in Runbooks in der Dienstverwaltungsautomatisierung verfügbar. Die Aktivitäten werden jedoch empfohlen, da sie effizienter sind, da sie nicht über den Automatisierungswebdienst arbeiten 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 für anmeldeinformationen werden sicher in der Automatisierungsdatenbank gespeichert und können im Runbook entweder mit der Get-AutomationPSCredential - oder Get-AutomationCertificate-Aktivität auf das Runbook zugegriffen werden.

PowerShell zum Verwalten von Anmeldeinformationen

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

Cmdlets Beschreibung
Get-SmaCertificate Ruft ein Automatisierungszertifikat ab.
Get-SmaCredential Ruft eine PowerShell-Automatisierungs-Anmeldeinformationen 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 Zertifikatdatei und festlegen des Kennworts für eine PFX-Datei.
Set-SmaCredential Erstellt eine neue Automatisierungs-PowerShell-Anmeldeinformationen oder legt die Eigenschaften für vorhandene Anmeldeinformationen 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 ab, das in einem Runbook verwendet werden soll.
Get-AutomationPSCredential Ruft einen Benutzernamen/ein Kennwort für die Verwendung in einem Runbook ab.

Hinweis

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

Erstellen einer PowerShell-Anmeldeinformationen im Verwaltungsportal

  1. Wählen Sie den Automatisierungsarbeitsbereich aus.

  2. Wählen Sie oben im Fenster "Objekte" aus.

  3. Wählen Sie unten im Fenster " Einstellung hinzufügen" aus.

  4. Wählen Sie "Anmeldeinformationen hinzufügen" aus.

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

  6. Geben Sie im Feld "Name" einen Namen für die Anmeldeinformationen 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 eines Zertifikats im

Verwaltungsportal

  1. Wählen Sie den Automatisierungsarbeitsbereich aus.

  2. Wählen Sie oben im Fenster "Objekte" aus.

  3. Wählen Sie unten im Fenster " Einstellung hinzufügen" aus.

  4. Wählen Sie "Anmeldeinformationen hinzufügen" aus.

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

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

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

  8. Wählen Sie "Nach Datei suchen" aus, und navigieren Sie zu einer .cer- oder PFX-Datei.

  9. Wenn Sie eine PFX-Datei ausgewählt haben, geben Sie ihr Kennwort an.

  10. Aktivieren Sie das Häkchen, um das Zertifikat zu speichern.

Erstellen einer Anmeldeinformation mit PowerShell

Die folgenden Beispielbefehle zeigen, wie Sie eine neue Anmeldeinformationen 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 der Dienstverwaltungsautomatisierung

Die folgenden Beispielbefehle zeigen, wie Sie ein neues Zertifikat erstellen, indem Sie eine Zertifikatdatei 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 rufen eine PowerShell-Anmeldeinformationen in einem Runbook mit der Get-AutomationPSCredential-Aktivität ab. 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 werden die Anmeldeinformationen 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

Eine Automatisierungsverbindung enthält die informationen, die zum Herstellen einer Verbindung mit einem Dienst oder einer Anwendung aus einem Runbook erforderlich sind. Diese Informationen werden im Modul für die Anwendung definiert und enthalten in der Regel Informationen wie Benutzername und Kennwort sowie den Computer, mit dem eine Verbindung hergestellt werden soll. Andere Informationen können auch erforderlich sein, z. B. ein Zertifikat oder eine Abonnement-ID. Die Eigenschaften für eine Verbindung werden sicher in der Automatisierungsdatenbank gespeichert und können im Runbook mit der Get-AutomationConnection-Aktivität aufgerufen werden.

Windows PowerShell-Cmdlets

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

Cmdlets Beschreibung
Get-SmaConnection Ruft die Werte für jedes Feld in einer bestimmten Verbindung ab.
Get-SmaConnectionField Ruft die Felddefinitionen für einen bestimmten Verbindungstyp ab.
Get-SmaConnectionType Ruft die verfügbaren Verbindungstypen ab.
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 ab, die in einem Runbook verwendet werden soll.

Erstellen einer Verbindung im Verwaltungsportal

  1. Wählen Sie den Automatisierungsarbeitsbereich aus.

  2. Wählen Sie oben im Fenster "Objekte" aus.

  3. Wählen Sie unten im Fenster " Einstellung hinzufügen" aus.

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

  5. Wählen Sie im Dropdownmenü "Verbindungstyp " einen Verbindungstyp aus.

  6. Geben Sie im Feld "Name" einen Namen für die Verbindung ein.

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

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

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

Erstellen 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 Verbindungstypen unterschiedliche Eigenschaftengruppen erfordern. Eine Verbindung eines anderen Typs würde einen anderen 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 Get-AutomationConnection-Aktivität , um eine Verbindung in einem Runbook zu verwenden. Diese Aktivität ruft die Werte der verschiedenen Felder in der Verbindung ab 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).

Der folgende Beispielcode zeigt, wie Sie eine Verbindung verwenden, 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 erstellen, ändern und abrufen. Automatisierungsvariablen sind in folgenden Szenarien hilfreich:

  • Freigeben eines Werts zwischen mehreren Runbooks.

  • Verwenden Sie einen Wert zwischen mehreren Aufträgen aus demselben Runbook.

  • Verwalten Sie einen Wert aus dem Verwaltungsportal oder über die Windows PowerShell-Befehlszeile, die von Runbooks verwendet wird.

Automatisierungsvariablen werden beibehalten, sodass sie auch dann weiterhin verfügbar sind, wenn das Runbook fehlschlägt. Dadurch kann auch ein Wert von einem Runbook festgelegt werden, das dann von einem anderen verwendet wird oder von demselben Runbook beim nächsten Ausführen verwendet wird.

Wenn eine Variable erstellt wird, müssen Sie den Datentyp aus der folgenden Liste angeben. Dies ist so, dass das Verwaltungsportal das entsprechende Steuerelement für den Variablenwert anzeigen kann. 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 aus dem Cmdlet "Get-SmaVariable " abgerufen werden. Die einzige Möglichkeit, wie ein verschlüsselter Wert abgerufen werden kann, ist aus der Get-AutomationVariable-Aktivität in einem Runbook. Sie können mehrere Werte des definierten Typs in einer einzelnen Variablen speichern, indem Sie eine Hashtabelle 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 Erstellt eine neue Variable oder legt den Wert für eine vorhandene Variable fest.

Runbookaktivitäten

Sie können auf Variablen in einem Runbook mit den Aktivitäten in der folgenden Tabelle 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 dadurch die Ermittlung von Abhängigkeiten zwischen Runbooks und Automatisierungsvariablen erschwert werden kann.

Erstellen einer neuen Variablen im Verwaltungsportal

  1. Wählen Sie den Automatisierungsarbeitsbereich aus.

  2. Wählen Sie oben im Fenster "Objekte" aus.

  3. Wählen Sie unten im Fenster " Einstellung hinzufügen" aus.

  4. Wählen Sie "Variable hinzufügen" aus.

  5. Wählen Sie im Dropdownmenü "Typ " einen Datentyp aus.

  6. Geben Sie im Feld "Name" einen Namen für die Variable ein.

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

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

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

So erstellen Sie eine neue Variable mit Windows PowerShell

Das Cmdlet Set-SmaVariable erstellt beide eine neue Variable und legt den Wert für eine vorhandene Variable fest. Die folgenden Beispielbefehle zeigen, wie eine Variable vom Typ Zeichenfolge erstellt wird.

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

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

Verwenden einer Variablen in einem Runbook

  • Der folgende Beispielcode zeigt, wie eine Variable in einem Runbook festgelegt und abgerufen wird. In diesem Beispiel wird davon ausgegangen, dass Variablen vom Typ "Integer" mit dem Namen "NumberOfIterations" und "NumberOfRunnings" und einer Variablen vom Typ "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