Workspace Environment Management

WEM API と Windows PowerShell を使用して構成セットを自動的にバックアップする

Workspace Environment Management (WEM) 管理者は、設定が失われないように、構成セットを定期的にバックアップする必要がある場合があります。たとえば、12 時間ごとにバックアップを起動し、バックアップファイルをローカルで自動的に管理したい場合があります。WEM パブリック API と Windows PowerShell を使用すると、その目標を達成できます。

一般的なワークフローは次のとおりです。

  1. Citrix Cloud API クライアントに申し込む
  2. 構成セットをバックアップする PowerShell スクリプトの作成
  3. スクリプトを実行するようにスケジュールされたタスクを設定します

前提条件

始める前に、Citrix カスタマー ID と関連する API ベースの URL を確認してください。

Citrix Cloud にサインインし、[ IDおよびアクセス管理]>[APIアクセス]に移動して、CitrixカスタマーIDを確認します。

Citrix カスタマー ID

Citrix Auth APIベースのURLやWEM APIベースのURLを含むAPIベースのURLは、接続しているCitrix Cloud のリージョンに関連しています。リージョンは、Citrix Cloud へのオンボーディング時に決定されます。 アカウント設定からお住まいの地域を照会することもできます

リージョン

API ベースの URL は、以下の表で確認できます。

リージョン Citrix 認証 API ベース URL WEM API ベース URL
米国(米国) api-us.cloud.com api.wem.cloud.com
欧州連合 (EU) api-eu.cloud.com eu-api.wem.cloud.com
アジア太平洋南部 (AP-S) api-ap-s.cloud.com aps-api.wem.cloud.com
日本 (JP) api.citrixcloud.jp jp-api.wem.citrixcloud.jp

APIベースのURLについて詳しくは、「 Citrix Cloud API入門ガイド 」と「 WEM APIの概要」を参照してください。

Citrix Cloud API クライアントに申し込む

[ ID とアクセス管理] > [API アクセス] に移動します。セキュアクライアントの名前を入力し、「 Create Client」をクリックし、セキュアクライアントIDとクライアントシークレットをローカルに保存します。

API セキュアクライアント

構成セットをバックアップする PowerShell スクリプトの作成

次の PowerShell スクリプトを使用して、名前を付けて保存します Invoke-WEMConfigSetBackupAPI.ps1。スクリプトの冒頭にある変数を必ず置き換えてください。


# replace the variables before running the script

$CitrixCustomerId = 'your-citrix-customer-id'
$CitrixAuthAPIBaseURL = 'api-us.cloud.com'
$CitrixWEMAPIBaseURL = 'api.wem.cloud.com'
$ClientId = 'your-api-client-id'
$ClientSecret = 'your-api-client-secret'

$ConfigSetsToBackUp = @('Default Site', 'MyConfigSet') # leave it empty if you want to back up all configuration sets
$FolderToSaveBackup = 'C:\ProgramData'

# get bearer token

$ErrorActionPreference = 'Stop'

$URL = "https://${CitrixAuthAPIBaseURL}/cctrustoauth2/${CitrixCustomerId}/tokens/clients"
$Body = "grant_type=client_credentials&client_id=${ClientId}&client_secret=${ClientSecret}"
$Response = Invoke-RestMethod -Method 'Post' -Uri $URL -Body $Body -ContentType 'application/x-www-form-urlencoded'

$BearerToken = $Response.access_token

if ([string]::IsNullOrEmpty($BearerToken))
{
    throw 'Cannot retrieve bearer token.'
}

Write-Host "Retrieved bearer token successfully."

# back up WEM configuration sets

if (-not (Test-Path -Path $FolderToSaveBackup -PathType 'Container'))
{
    throw 'The folder to save backup not exists.'
}

$Headers = @{
    'Citrix-CustomerId' = $CitrixCustomerId
    'Accept' = 'application/json'
    'Authorization' = "CWSAUTH bearer=${BearerToken}"
}

if ($ConfigSetsToBackUp.Count -eq 0 -or $ConfigSetsToBackUp -eq $null)
{
    $URL = "https://${CitrixWEMAPIBaseURL}/services/wem/sites"
    $Response = Invoke-RestMethod -Method 'Get' -Uri $URL -Headers $Headers
    $ConfigSetsToBackUp = $Response.items |% { $_.name }
}

$ConfigSetsToBackUp | ForEach-Object {
    Write-Host "Backing up configuration set ""$\_"""
    $URL = "https://${CitrixWEMAPIBaseURL}/services/wem/sites/%24export?name=$\_"
    Write-Host "GET $URL"
    $Response = Invoke-RestMethod -Method 'Get' -Uri $URL -Headers $Headers
    $Timestamp = Get-Date -Format "yyyyMMddHHmmss"
    $Response | ConvertTo-Json -Depth 10 | Out-File (Join-Path $FolderToSaveBackup "${_}-${Timestamp}.json")
}

<!--NeedCopy-->

ベアラートークンについて詳しくは、「 Citrix Cloud API入門」を参照してください。

WEM API を使用して構成セットをバックアップする方法の詳細については、「 WEM 構成セット API のエクスポート」を参照してください。

注:

各ベアラートークンは 1 時間後に期限切れになります。Citrix Cloud 認証APIとWEM APIを頻繁に呼び出さないようにするには、バックアップ時間が1時間未満の場合はベアラートークンをキャッシュして再利用します。

スクリプトを実行するようにスケジュールされたタスクを設定します

Citrix Cloud にアクセスできるマシンでは、Windowsの[スタート Task Scheduler ]メニューから起動するか、 taskschd.msc Windowsのコマンドプロンプトから起動します。

という名前のフォルダを作成できます WEM scheduled task

フォルダーに、という名前のタスクを作成します launch Invoke-WEMConfigSetBackupAPI.ps1。「12時間ごとに1日繰り返す」という新しいトリガーを追加し、スクリプトを起動する新しいアクションを追加します Invoke-WEMConfigSetBackupAPI.ps1

タスクスケジューラ

WEM API と Windows PowerShell を使用して構成セットを自動的にバックアップする