グローバル資産で Service Management Automation Runbook の作成を簡略化する

重要

このバージョンの Service Management Automation (SMA) はサポート終了に達しました。 SMA 2022 にアップグレードすることをお勧めします。

グローバル資産は、Automation 環境のすべての Runbook で使用できます。 グローバル資産を作成および構成するには、管理ポータルの [自動] ワークスペースまたは Windows PowerShell で適切なコマンドレットを使用します。 Runbook からは、 RunbookConstructs モジュールで活動を使用して、グローバル資産の値を取得および設定できます。 Windows PowerShell コマンドレットは、Service Management Automation の Runbook で使用できますが、Automation Web サービスを介して作業する必要がないため、より効率的であるため、アクティビティをお勧めします。

資格情報を取得または設定する

Automation 資格情報は、Windows PowerShell コマンドで使用できるユーザー名とパスワード、またはサーバーにアップロードされている証明書です。 資格情報のプロパティは Automation データベースに安全に保存され、Runbook では Get-AutomationPSCredential または Get-AutomationCertificate アクティビティを使用してアクセスできます。

資格情報を管理するための PowerShell

次の表のコマンドレットを使用すると、Service Management Automation の Windows PowerShell で資格情報を作成および管理できます。

コマンドレット 説明
Get SmaCertificate Automation の証明書を取得します。
Get SmaCredential Automation PowerShell の資格情報を取得します。
Remove-SmaCertificate Automation の証明書を削除します。
Remove-SmaCredential Automation PowerShell の資格情報を削除します。
Set-SmaCertificate 新しい証明書を作成するか、証明書ファイルのアップロードや .pfx のパスワードの設定などの既存の証明書のプロパティを設定します。
Set-SmaCredential Automation PowerShell の新しい資格情報を作成するか、既存の資格情報のプロパティを設定します。

資格情報を操作するための PowerShell

次の表のアクティビティを使用して、Runbook の資格情報にアクセスできます。

Activities 説明
Get-AutomationCertificate Runbook で使用する証明書を取得します。
Get-AutomationPSCredential Runbook で使用するユーザー名とパスワードを取得します。

注意

Get-AutomationPSCredential および Get-AutomationCertificate の Name パラメーターでは、変数を使用しないようにする必要があります。使用すると、Runbook とオートメーション変数の間の依存関係の検出が困難になる場合があります。

管理ポータルで PowerShell 資格情報を作成する

  1. Automation ワークスペースを選択します。

  2. ウィンドウの上部にある [アセット] を選択 します

  3. ウィンドウの下部にある [ 設定の追加] を選択します。

  4. [ 資格情報の追加] を選択します

  5. [資格情報の種類] ドロップダウン リストで、[PowerShell 資格情報] を選択します。

  6. [名前] ボックスに資格情報の 名前 を入力します。

  7. 右矢印を選択します。

  8. 各プロパティの値を入力します。

  9. チェックマークを選択して資格情報を保存します。

次の場所で証明書を作成する

管理ポータル

  1. Automation ワークスペースを選択します。

  2. ウィンドウの上部にある [アセット] を選択 します

  3. ウィンドウの下部にある [ 設定の追加] を選択します。

  4. [ 資格情報の追加] を選択します

  5. [資格情報の種類] ドロップダウン リストで、[証明書] を選択します。

  6. [名前] ボックスに証明書の 名前 を入力します。

  7. 右矢印を選択します。

  8. [ ファイルの参照] を 選択し、.cerまたは .pfx ファイルに移動します。

  9. .pfx ファイルを選択した場合は、パスワードを入力します。

  10. チェックマークを選択して証明書を保存します。

PowerShell で資格情報を作成する

次のサンプル コマンドは、新しい資格情報を作成する方法を示します。

$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

Service Management Automation の Windows PowerShell で新しい PowerShell 証明書を作成するには

次のサンプル コマンドは、証明書ファイルをインポートして新しい証明書を作成する方法を示します。

$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

Runbook で PowerShell の資格情報を使用する

Get-automationpscredential アクティビティを使って Runbook で PowerShell 資格情報を取得します。 これにより、ワークフローで使用できる PSCredential オブジェクトが返されます。

  • 次のサンプル コマンドでは、Runbook で PowerShell 資格情報を使用する方法を示します。 この例では、 InlineScript アクティビティで資格情報を使用して、別の資格情報を使って一連のコマンドを実行します。

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

SMA の接続を管理する

Automation Connection には、Runbook からサービスまたはアプリケーションに接続するために必要な情報が含まれています。 この情報はアプリケーションのモジュールで定義され、通常、ユーザー名とパスワード、接続先のコンピューターなどの情報を含んでいます。 証明書やサブスクリプション ID などの他の情報が必要な場合もあります。 接続のプロパティは Automation データベースに安全に保存され、Runbook では Get-AutomationConnection アクティビティを使用してアクセスできます。

Windows PowerShell コマンドレット

次の表の Windows PowerShell コマンドレットを使用して、資格情報を作成および管理できます。

コマンドレット 説明
Get SmaConnection 特定の接続の各フィールドの値を取得します。
Get SmaConnectionField 特定の接続の種類のフィールド定義を取得します。
Get SmaConnectionType 使用可能な接続の種類を取得します。
New-SmaConnection 新しい接続を作成します。
Remove-SmaConnection 既存の接続を削除します。
Set-SmaConnectionFieldValue 既存の接続の特定のフィールドの値を設定します。

Runbook アクティビティ

Runbook で次の表のアクティビティを使用して、接続にアクセスできます。

Activities 説明
Get-AutomationConnection Runbook で使用する接続を取得します。

管理ポータルで接続を作成する

  1. Automation ワークスペースを選択します。

  2. ウィンドウの上部にある [アセット] を選択 します

  3. ウィンドウの下部にある [ 設定の追加] を選択します。

  4. [接続の追加] を選択します。

  5. [接続の種類] ドロップダウンで、接続の種類を選択します。

  6. [名前] ボックスに接続の 名前 を入力します。

  7. 右矢印を選択します。

  8. 各プロパティの値を入力します。

  9. チェックマークを選択して接続を保存します。

Windows PowerShell で接続を作成する

次のコマンド例は、新しい Virtual Machine Manager 接続を MyVMMConnection という名前で作成します。

注意

ハッシュ テーブルを使用して、接続のプロパティを定義します。 これは、接続の種類ごとに異なるプロパティ セットが必要なためです。 別の種類の接続には、別のフィールド値セットを使用します。

ハッシュ テーブルの詳細については、「about_Hash_Tables (ハッシュ テーブルについて)」をご覧ください。

$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

Runbook で接続を使用する

Runbook で接続を使用するには、 Get-AutomationConnection アクティビティを使用します。 このアクティビティは、接続内のさまざまなフィールドの値を取得し、ハッシュ テーブルとして返します。ハッシュ テーブルは、Runbook の適切なコマンドで使用できます。

ハッシュ テーブルの詳細については、「about_Hash_Tables (ハッシュ テーブルについて)」をご覧ください。

次のコード例では、接続を使用して、別のコンピューターでコマンドを実行する InlineScript ブロックにコンピューター名と資格情報を指定する方法を示しています。

$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

グローバル変数を使用して Runbook の開発を簡素化する

Automation 変数は、すべての Runbook で使用できる値です。 管理ポータル、Windows PowerShell、または Runbook 内から、それらを作成、変更、取得することができます。 Automation 変数は、次のシナリオで役立ちます。

  • 複数の Runbook 間で値を共有する。

  • 同じ Runbook から複数のジョブ間で値を共有する。

  • 管理ポータルまたは Runbook で使用される Windows PowerShell コマンドラインから値を管理する。

Automation 変数は、Runbook が失敗した場合でも継続して使用できるように保存されます。 これにより、ある Runbook で値を設定し、次に別の Runbook で使用したり、次回実行されるときに同じ Runbook で使用したりできます。

変数が作成されると、次の一覧からデータ型を指定する必要があります。 これは、管理ポータルが変数値の適切なコントロールを表示できるようにするためです。 適切な型の値は変数にのみ割り当てることができます。

  • String

  • Integer

  • Boolean

  • Datetime

変数が作成されると、暗号化して保存するように指定できます。 変数が暗号化されると、SMA データベースに安全に格納され、その値を Get-SmaVariable コマンドレットから取得することはできません。 暗号化された値は、Runbook の Get-AutomationVariable アクティビティからのみ取得できます。 ハッシュ テーブルを作成することで、定義された型の複数の値を 1 つの変数に格納できます。

Windows PowerShell コマンドレット

次の表の Windows PowerShell コマンドレットを使用して、変数を作成および管理できます。

コマンドレット 説明
Get-SmaVariable 既存の変数の値を取得します。
Set-SmaVariable 新しい変数を作成、または既存の変数の値を設定します。

Runbook アクティビティ

Runbook で次の表のアクティビティを使用して、変数にアクセスできます。

Activities 説明
Get-AutomationVariable 既存の変数の値を取得します。
Set-AutomationVariable 既存の変数の値を設定します。

Note

Get AutomationVariable の Name パラメーターで変数を使用すると、Runbook と Automation 変数の間の依存関係の検出が複雑になる可能性があるため、避ける必要があります。

管理ポータルで新しい変数を作成する

  1. Automation ワークスペースを選択します。

  2. ウィンドウの上部にある [アセット] を選択 します

  3. ウィンドウの下部にある [ 設定の追加] を選択します。

  4. [ 変数の追加] を選択します

  5. [] ボックスでデータ型を選択します。

  6. [名前] ボックスに変数の 名前 を入力します。

  7. 右矢印を選択します。

  8. 変数の値を入力し、暗号化するかどうかを指定します。

  9. チェックマークを選択して、新しい変数を保存します。

Windows PowerShell で新しい変数を作成するには

Set-SmaVariable コマンドレットは、新しい変数を作成し、既存の変数の値を設定します。 次のコマンド例は、文字列型の変数を作成する方法を示しています。

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

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

Runbook で変数を使用する

  • 次のコード例では、Runbook で変数を設定して取得する方法を示しています。 このサンプルでは、NumberOfIterations および NumberOfRunnings という名前の整数型の変数と、SampleMessage という名前の文字列型の変数が既に作成されていることを前提としています。

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

次の手順