Auf dem Partner-Summit wurde sich gewünscht, einige der gezeigten Beispiel-Skripte im Forum zum nachlesen zur Verfügung zu stellen. Thema hier:
Wie kann man ein bestimmtes Profil für einen Benutzer finden und aktivieren?
Dazu braucht es zwei Anfragen aus dem identity
modul der REST API.
Angenhängt ist ein Powershell-Beispielskript, mit dem ein Profil anhand seines Anzeigenames gesucht und aktiviert werden kann.
Vorgehensweise:
- Rest API aktivieren und Zugangsdaten besorgen, siehe Dokumentation: pascom API Documentation
- Das untere Skript in einen Editor einfügen
- Die Parameter auf die jeweilige eigene Instanz anpassen
- Skript mit der endung
.ps1
abspeichern und ausführen. Dabei auf die Powershell-Execution Policy achten.
##########################################
# PARAMETER
$headers = @{
Authorization = "Basic BASE65_AUTH_STRING"
}
$instance="instanz" # Instanzname der pascom.cloud instanz
$user="user" # Anmeldename des Ziel-Benutzers
$targetName="DND" # Name des Profils das ausgwaehlt werden soll
$profileId="" # Id des Profils falls dieses gefunden wird
##########################################
# Profil liste dieses Benutzers abrufen
$response = Invoke-WebRequest -Headers $headers -Method Get -Uri "https://pascom.cloud/$instance/services/identity/$user/profile/"
# JSON string in eine Datenstruktur parsen
$profiles = $response.Content | ConvertFrom-Json
# Ueber jedes Profil iterieren
foreach ($profile in $profiles) {
$name = $profile.'017pro_bez'
if($name -eq $targetName) {
$profileId=$profile.'017pro_id'
Write-Host "Profil $name hat id $profileId"
break;
}
}
# Pruefen ob die ProfilId leer ist
if($profileId) {
Write-Host "Aktiviere Profil"
# Ziel Profil aktivieren
Invoke-WebRequest -Headers $headers -Method Put -Uri "https://pascom.cloud/$instance/services/identity/$user/profile/$profileId/activate"
}