Workspace Environment Management

Sauvegardez automatiquement les ensembles de configuration à l’aide des API WEM et de Windows PowerShell

En tant qu’administrateur de Workspace Environment Management (WEM), vous devrez peut-être sauvegarder régulièrement vos ensembles de configuration pour éviter de les perdre. Vous souhaiterez peut-être déclencher la sauvegarde, par exemple, toutes les 12 heures, et gérer les fichiers de sauvegarde localement et automatiquement. À l’aide des API publiques WEM et de Windows PowerShell, vous pouvez atteindre cet objectif.

Un flux de travail général est le suivant :

  1. Demandez un client d’API Citrix Cloud
  2. Écrivez un script PowerShell pour sauvegarder vos ensembles de configuration
  3. Configurer une tâche planifiée pour exécuter le script

Conditions préalables

Avant de commencer, assurez-vous de connaître votre ID client Citrix et les URL de base d’API associées.

Connectez-vous à Citrix Cloud, accédez à Gestion des identités et des accès > Accès aux APIet trouvez votre identifiant client Citrix.

ID client Citrix

Les URL de base de l’API, y compris l’URL de base de l’API Citrix Auth et l’URL de base de l’API WEM, sont liées à la région de Citrix Cloud à laquelle vous vous connectez. La région est déterminée lors de votre intégration à Citrix Cloud. Vous pouvez également rechercher votre région dans les paramètres du compte.

Région

Vous pouvez trouver les URL de base de l’API en consultant le tableau ci-dessous.

Région URL de base de l’API Citrix Auth URL de base de l’API WEM
États-Unis (US) api-us.cloud.com api.wem.cloud.com
Union européenne (UE) api-eu.cloud.com eu-api.wem.cloud.com
Asie-Pacifique Sud (AP-S) api-ap-s.cloud.com aps-api.wem.cloud.com
Japon (JP) api.citrixcloud.jp jp-api.wem.citrixcloud.jp

Pour plus d’informations sur les URL de base de l’API, voir Présentation des API Citrix Cloudet de l’API WEM.

Demandez un client d’API Citrix Cloud

Accédez à Gestion des identités et des accès > Accès aux API. Tapez le nom de votre client sécurisé, cliquez sur Créer un client, puis enregistrez l’ID client sécurisé et le secret du client localement.

Client sécurisé par API

Écrivez un script PowerShell pour sauvegarder vos ensembles de configuration

Utilisez le script PowerShell suivant et enregistrez-le sous Invoke-WEMConfigSetBackupAPI.ps1. Veillez à remplacer les variables au début du script.


# 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-->

Pour plus d’informations sur les jetons porteurs, consultez la section Démarrez avec les API Citrix Cloud.

Pour plus d’informations sur l’utilisation de l’API WEM pour sauvegarder un jeu de configuration, voir Exportation de l’API du jeu de configuration WEM.

Remarque :

Chaque jeton au porteur expire au bout d’une heure. Pour éviter d’invoquer fréquemment les API d’authentification Citrix Cloud et les API WEM, mettez en cache le jeton porteur et réutilisez-le si la durée de sauvegarde dure moins d’une heure.

Configurer une tâche planifiée pour exécuter le script

Sur une machine ayant accès à Citrix Cloud, démarrez à Task Scheduler partir du menu Démarrer de Windows ou taskschd.msc à partir de l’invite de commande Windows.

Vous pouvez créer un dossier nommé WEM scheduled task.

Dans le dossier, créez une tâche nommée launch Invoke-WEMConfigSetBackupAPI.ps1. Ajoutez un nouveau déclencheur « répétez toutes les 12 heures pendant 1 jour » et ajoutez une nouvelle action de démarrage du script Invoke-WEMConfigSetBackupAPI.ps1.

Planificateur de tâches

Sauvegardez automatiquement les ensembles de configuration à l’aide des API WEM et de Windows PowerShell