グローバル資産を使用して Service Management Automation Runbook の作成を簡略化する
グローバル資産は、Automation 環境のすべての Runbook で使用できます。 グローバル資産を作成および構成するには、管理ポータルの [自動] ワークスペースまたは Windows PowerShell で適切なコマンドレットを使用します。 Runbook からは、 RunbookConstructs モジュールで活動を使用して、グローバル資産の値を取得および設定できます。 Windows PowerShell コマンドレットは Service Management Automation の Runbook で使用できますが、Automation Web サービスを使用する必要がないため、より効率的であるため、アクティビティをお勧めします。
資格情報を取得または設定する
Automation 資格情報は、Windows PowerShell コマンドで使用できるユーザー名とパスワード、またはサーバーにアップロードされている証明書です。 資格情報のプロパティは Automation データベースに安全に格納され、 Get-AutomationPSCredential または Get-AutomationCertificate アクティビティを使用して Runbook でアクセスできます。
資格情報を管理するための 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 の資格情報にアクセスできます。
活動 | 説明 |
---|---|
Get-AutomationCertificate | Runbook で使用する証明書を取得します。 |
Get-AutomationPSCredential | Runbook で使用するユーザー名とパスワードを取得します。 |
Note
" Get-AutomationPSCredential の Name パラメーター および Get-AutomationCertificate で変数を使用することは避けてください。これにより、Runbook と Automation 変数間の依存関係の検出が複雑になります。
管理ポータルで PowerShell 資格情報を作成する
[Automation] ワークスペースを選択します。
ウィンドウの上部にある Assets を選択します。
ウィンドウの下部にある [設定の追加] 選択。
[資格情報の追加 選択。
In the Credential Type dropdown, select PowerShell Credential.
Name ボックスに資格情報の名前を入力します。
右矢印を選択します。
各プロパティの値を入力します。
チェック マークを選択して資格情報を保存します。
で証明書を作成します。
管理ポータル
[Automation] ワークスペースを選択します。
ウィンドウの上部にある Assets を選択します。
ウィンドウの下部にある [設定の追加] 選択。
[資格情報の追加 選択。
In the Credential Type dropdown, select Certificate.
Name ボックスに証明書の名前を入力します。
右矢印を選択します。
[ファイルの Browse] を選択し .cerまたは .pfx ファイルに移動します。
.pfx ファイルを選択した場合は、パスワードを入力します。
チェック マークを選択して証明書を保存します。
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 データベースに安全に格納され、 Get-AutomationConnection アクティビティを使用して Runbook でアクセスできます。
Windows PowerShell コマンドレット
次の表の Windows PowerShell コマンドレットを使用して、資格情報を作成および管理できます。
コマンドレット | 説明 |
---|---|
Get-SmaConnection | 特定の接続の各フィールドの値を取得します。 |
Get-SmaConnectionField | 特定の接続の種類のフィールド定義を取得します。 |
Get-SmaConnectionType | 使用可能な接続の種類を取得します。 |
New-SmaConnection | 新しい接続を作成します。 |
Remove-SmaConnection | 既存の接続を削除します。 |
Set-SmaConnectionFieldValue | 既存の接続の特定のフィールドの値を設定します。 |
Runbook アクティビティ
次の表のアクティビティを使用して、Runbook の接続にアクセスできます。
活動 | 説明 |
---|---|
Get-AutomationConnection | Runbook で使用する接続を取得します。 |
管理ポータルで接続を作成する
[Automation] ワークスペースを選択します。
ウィンドウの上部にある Assets を選択します。
ウィンドウの下部にある [設定の追加] 選択。
[接続の追加] を選択します。
[接続の種類] ドロップダウンで、接続の種類を選択します。
Name ボックスに接続の名前を入力します。
右矢印を選択します。
各プロパティの値を入力します。
チェック マークを選択して接続を保存します。
Windows PowerShell を使用して接続を作成する
次のコマンド例は、新しい Virtual Machine Manager 接続を MyVMMConnection という名前で作成します。
Note
ハッシュ テーブルを使用して、接続のプロパティを定義します。 これは、接続の種類ごとに異なるプロパティ セットが必要なためです。 別の種類の接続には、別のフィールド値セットを使用します。
ハッシュ テーブルの詳細については、「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 で接続を使用する
Get-AutomationConnection アクティビティを使用して、Runbook で接続を使用します。 このアクティビティは、接続内のさまざまなフィールドの値を取得し、ハッシュ テーブルとして返します。この値は、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 が失敗した場合でも引き続き使用できるように保持されます。 これにより、1 つの Runbook で値を設定し、その値を別の Runbook で使用したり、次回実行されるときに同じ Runbook で使用したりすることもできます。
変数が作成されると、次の一覧からデータ型を指定する必要があります。 これは、管理ポータルに変数値の適切なコントロールを表示できるようにするためです。 適切な型の値は変数にのみ割り当てることができます。
String
Integer
Boolean
日時
変数が作成されると、暗号化して保存するように指定できます。 変数が暗号化されると、SMA データベースに安全に格納され、その値を Get-SmaVariable コマンドレットから取得することはできません。 暗号化された値を取得できる唯一の方法は、Runbook の Get-AutomationVariable アクティビティから行います。 ハッシュ テーブルを作成することで、定義された型の複数の値を 1 つの変数に格納できます。
Windows PowerShell コマンドレット
次の表の Windows PowerShell コマンドレットを使用して、変数を作成および管理できます。
コマンドレット | 説明 |
---|---|
Get-SmaVariable | 既存の変数の値を取得します。 |
Set-SmaVariable | 新しい変数を作成、または既存の変数の値を設定します。 |
Runbook アクティビティ
Runbook の変数には、次の表のアクティビティを使用してアクセスできます。
活動 | 説明 |
---|---|
Get-AutomationVariable | 既存の変数の値を取得します。 |
Set-AutomationVariable | 既存の変数の値を設定します。 |
Note
"Get-AutomationVariable の Name パラメーターでは、Runbook と Automation 変数の間の依存関係の検出が複雑になる可能性があるため、変数の使用は避ける必要があります。
管理ポータルで新しい変数を作成する
[Automation] ワークスペースを選択します。
ウィンドウの上部にある Assets を選択します。
ウィンドウの下部にある [設定の追加] 選択。
[変数の追加 選択。
[型] ドロップダウンで、データ型を選択します。
Name ボックスに変数の名前を入力します。
右矢印を選択します。
変数の値を入力し、暗号化するかどうかを指定します。
チェック マークを選択して新しい変数を保存します。
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)