Automatisches Sichern von Konfigurationssätzen mithilfe von WEM-APIs und Windows PowerShell
Als Workspace Environment Management (WEM) -Administrator müssen Sie möglicherweise Ihre Konfigurationssätze regelmäßig sichern, um zu verhindern, dass Einstellungen verloren gehen. Möglicherweise möchten Sie die Backup beispielsweise alle 12 Stunden auslösen und die Sicherungsdateien lokal und automatisch verwalten. Mit öffentlichen WEM-APIs und Windows PowerShell können Sie dieses Ziel erreichen.
Ein allgemeiner Arbeitsablauf sieht wie folgt aus:
- Beantragen Sie einen Citrix Cloud API-Client
- Schreiben Sie ein PowerShell-Skript, um Ihre Konfigurationssätze zu sichern
- Konfigurieren eines geplanten Tasks für die Ausführung des Skripts
Voraussetzungen
Bevor Sie beginnen, stellen Sie sicher, dass Sie Ihre Citrix-Kunden-ID und die zugehörigen API-Basis-URLs kennen.
Melden Sie sich bei Citrix Cloud an, navigieren Sie zu Identitäts- und Zugriffsmanagement > API-Zugriff, und suchen Sie Ihre Citrix-Kunden-ID.
Die API-Basis-URLs, einschließlich der Basis-URL der Citrix Auth API und der WEM-API-Basis-URL, beziehen sich auf die Region der Citrix Cloud, mit der Sie eine Verbindung herstellen. Die Region wird festgelegt, wenn Sie in Citrix Cloud einsteigen. Sie können Ihre Region auch in den Kontoeinstellungenabfragen.
Sie finden die API-Basis-URLs in der folgenden Tabelle.
Region | Basis-URL der Citrix Auth API | WEM-API-Basis |
---|---|---|
Vereinigte Staaten (US) | api-us.cloud.com | api.wem.cloud.com |
Europäische Union (EU) | api-eu.cloud.com | eu-api.wem.cloud.com |
Asien-Pazifischer Süden (AP-S) | api-ap-s.cloud.com | aps-api.wem.cloud.com |
Japan (JP) | api.citrixcloud.jp | jp-api.wem.citrixcloud.jp |
Weitere Informationen zu den API-Basis-URLs finden Sie unter Erste Schritte mit Citrix Cloud Cloud-APIs und WEM-API-Übersicht.
Beantragen Sie einen Citrix Cloud API-Client
Navigieren Sie zu Identitäts- und Zugriffsmanagement > API-Zugriff. Geben Sie den Namen Ihres sicheren Clients ein, klicken Sie auf Create Clientund speichern Sie die sichere Client-ID und das Client-Geheimnis lokal.
Schreiben Sie ein PowerShell-Skript, um Ihre Konfigurationssätze zu sichern
Verwenden Sie das folgende PowerShell-Skript und speichern Sie es unter Invoke-WEMConfigSetBackupAPI.ps1
. Stellen Sie sicher, dass Sie die Variablen am Anfang des Skripts ersetzen.
# 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-->
Weitere Informationen zu Bearer-Token finden Sie unter Erste Schritte mit Citrix Cloud Cloud-APIs.
Weitere Informationen zur Verwendung der WEM-API zum Sichern des Konfigurationssatzes finden Sie unter Exportieren der WEM-Konfigurationssatz-API.
Hinweis:
Jeder Bearer-Token läuft nach einer Stunde ab. Um zu vermeiden, dass die Citrix Cloud Cloud-Authentifizierungs-APIs und WEM-APIs häufig aufgerufen werden, speichern Sie das Bearer-Token und verwenden Sie es erneut, wenn die Sicherungsdauer weniger als eine Stunde dauert.
Konfigurieren eines geplanten Tasks für die Ausführung des Skripts
Starten Sie auf einem Computer mit Zugriff auf Citrix Cloud über das Task Scheduler
Windows-Startmenü oder starten taskschd.msc
Sie über die Windows-Eingabeaufforderung.
Sie können einen Ordner mit dem Namen erstellen WEM scheduled task
.
Erstellen Sie im Ordner eine Aufgabe mit dem Namen launch Invoke-WEMConfigSetBackupAPI.ps1
. Fügen Sie einen neuen Trigger hinzu: „Wiederhole alle 12 Stunden für eine Dauer von 1 Tag“ und fügen Sie eine neue Aktion zum Starten des Skripts hinzu Invoke-WEMConfigSetBackupAPI.ps1
.