- Erste Schritte
- Datensicherheit und Compliance
- Organisationen
- Authentifizierung und Sicherheit
- Grundlegendes zu Authentifizierungsmodellen
- Konfigurieren der Microsoft Entra ID-Integration
- Anforderungen an die Passwortkomplexität lokaler Benutzer
- Lizenzierung
- Über die Lizenzierung
- Einheitliche Preise: Lizenzierungsplan-Framework
- Flex: Lizenzierungsplan-Framework
- Aktivieren Ihrer Enterprise-Lizenz
- Upgrades und Downgrades von Lizenzen
- Anfordern einer Diensttestversion
- Zuweisen von Lizenzen zu Mandanten
- Zuweisen von Benutzerlizenzen
- Freigegeben von Benutzerlizenzen
- Überwachung der Lizenzzuweisung
- Lizenzüberzuweisung
- Lizenzierungsbenachrichtigungen
- Benutzerlizenzverwaltung
- Mandanten und Dienste
- Konten und Rollen
- Tests in Ihrer Organisation
- AI Trust Layer
- Externe Anwendungen
- Benachrichtigungen
- Protokollierung
- Über Protokolle
- Protokolle exportieren
- Fehlersuche und ‑behebung
- Migration zur Automation Cloud

Automation Cloud-Administratorhandbuch
Diese Funktion ist nur verfügbar, wenn Sie sich im Enterprise-Lizenzierungsplan befinden.
- Option Exportieren auf der Benutzeroberfläche: Wählen Sie im Abschnitt Prüfungsprotokolle Ihrer Organisation oder Ihres Mandanten die Option Exportieren.
- APIs für Prüfungsprotokolle: Verwenden Sie die APIs für Prüfungsprotokolle.
- Benutzerdefiniertes UiPath-Skript: Führen Sie ein von UiPath entwickeltes Skript aus, um Protokolle aus dem langfristigen Prüfungsprotokollspeicher von UiPath zu exportieren.
Für die langfristige Aufbewahrung oder Compliance können Sie Roboterprotokollexporte so konfigurieren, dass Daten automatisch vom Orchestrator an Azure Blob Storage, AWS S3 oder Google Cloud Storage gesendet werden, wo Protokolldateien stündlich generiert werden und mit Ihren eigenen BI- oder Überwachungslösungen verarbeitet werden können.
You can use a dedicated script, to export audit logs that are no longer available through the Audit Logs interface. The script supports retrieving logs up to 2 years in the past.
Dieses Skript ist in folgenden Fällen nützlich:
-
Sie benötigen Zugriff auf ältere Prüfungsprotokolle zu Compliance- oder Ermittlungszwecken.
-
Sie möchten die langfristige Protokollarchivierung automatisieren.
Voraussetzungen
- Copy the following script into a
.shfile of your own:appId=$1 appSecret=$2 organizatioNameOrId=$3 fromDate=$4 toDate=$5 mode=${6:-s} cloud=${7:-cloud} if [[ $# -lt 5 ]]; then echo "Error: Not all required input parameters provided." echo "Usage: $0 <appId> <appSecret> <organizatioNameOrId> <fromDate> <toDate> <mode>(optional: v for verbose, s for silent)" exit 1 fi # Validate "fromDate" date format (MM/DD/YYYY) if ! date -d "$fromDate" &>/dev/null; then echo "Error: Invalid date format for 'fromDate'. Please use MM/DD/YYYY format." exit 1 fi # Validate "to" date format (MM/DD/YYYY) if ! date -d "$toDate" &>/dev/null; then echo "Error: Invalid date format for 'toDate'. Please use MM/DD/YYYY format." exit 1 fi echo $(date +"%Y-%m-%d %H:%M:%S.%3N") "Start Getting UiPath Token." response=$(curl --data-urlencode -X POST "https://${cloud}.uipath.com/${organizationNameOrId}/identity_/connect/token" -$mode \ -d "grant_type=client_credentials" \ -d "scope=PM.Audit.Read" \ -d "client_id=$appId" \ -d "client_secret=$appSecret" \ -H "Content-Type: application/x-www-form-urlencoded") access_token=$(echo "$response" | jq -r '.access_token') if [[ "$access_token" == null ]]; then echo "Error: Access token is null or empty in the response. Please verify the appId and appSecret." exit 1 fi base_dir=$(date +"%Y-%m-%d%H:%M:%S.%3N") echo $base_dir "Start Downloading UiPath Platform Audit logs." # Define the base URL base_url="https://${cloud}.uipath.com/${organizatioNameOrId}/orgaudit_/api/query/downloadeventsfromlongtermstore" mkdir -p $base_dir # Iterate through time intervals current_date=$(date -u -d "$fromDate" +"%Y-%m-%dT%H:%M:%SZ") seconds_in_a_day=$((24*60*60)) while [ "$(date -d "$current_date" +%s)" -le "$(date -d "$toDate" +%s)" ]; do next_date=$(date -u -d "$current_date + $(($seconds_in_a_day-1)) seconds" +"%Y-%m-%dT%H:%M:%SZ") # Construct the full URL with the current time interval formatted_current_date=$(date -u -d "$current_date" +"%Y-%m-%dT%H:%M:%SZ" | sed 's/\//%2F/g') formatted_current_date="${current_date}" formatted_next_date=$next_date | sed 's/\//%2F/g' formatted_next_date="${next_date}" full_url="$base_url?from=$formatted_current_date&to=$formatted_next_date" echo $full_url echo "Downloading UiPath Audit Log from $current_date to $next_date" curl -X GET "$full_url" -$mode \ -H "Authorization: Bearer $access_token" \ -o "${base_dir}/${current_date////-}_to_${next_date////-}.zip" # Save the response to a file # Move to the next time interval current_date=$next_date one=1 current_date=$(date -u -d "$current_date + $one seconds" +"%Y-%m-%dT%H:%M:%SZ") done for zip_file in "$base_dir"/*.zip; do zip_file_name="$(basename "$zip_file")" unzip -q "$zip_file" -d "$base_dir/auditlogs/" echo "Extracted ${zip_file_name%.*}" rm "$zip_file" done shopt -s nullglob for zip_file in "$base_dir/auditlogs"/*.zip; do zip_file_name="$(basename "$zip_file")" unzip -q "$zip_file" -d "$base_dir/auditlogs/${zip_file_name%.*}" for data_file in "$base_dir/auditlogs"/${zip_file_name%.*}/*.txt; do data_file_name="$(basename "$data_file")" mv "$data_file" "$base_dir/auditlogs/${data_file_name%.*}_${zip_file_name%.*}.txt" rm -r "$base_dir/auditlogs/${zip_file_name%.*}" done rm "$zip_file" done shopt -u nullglob echo $(date +"%Y-%m-%d %H:%M:%S.%3N") "Downloaded UiPath Platform Audit logs and saved them according to UTC date"appId=$1 appSecret=$2 organizatioNameOrId=$3 fromDate=$4 toDate=$5 mode=${6:-s} cloud=${7:-cloud} if [[ $# -lt 5 ]]; then echo "Error: Not all required input parameters provided." echo "Usage: $0 <appId> <appSecret> <organizatioNameOrId> <fromDate> <toDate> <mode>(optional: v for verbose, s for silent)" exit 1 fi # Validate "fromDate" date format (MM/DD/YYYY) if ! date -d "$fromDate" &>/dev/null; then echo "Error: Invalid date format for 'fromDate'. Please use MM/DD/YYYY format." exit 1 fi # Validate "to" date format (MM/DD/YYYY) if ! date -d "$toDate" &>/dev/null; then echo "Error: Invalid date format for 'toDate'. Please use MM/DD/YYYY format." exit 1 fi echo $(date +"%Y-%m-%d %H:%M:%S.%3N") "Start Getting UiPath Token." response=$(curl --data-urlencode -X POST "https://${cloud}.uipath.com/${organizationNameOrId}/identity_/connect/token" -$mode \ -d "grant_type=client_credentials" \ -d "scope=PM.Audit.Read" \ -d "client_id=$appId" \ -d "client_secret=$appSecret" \ -H "Content-Type: application/x-www-form-urlencoded") access_token=$(echo "$response" | jq -r '.access_token') if [[ "$access_token" == null ]]; then echo "Error: Access token is null or empty in the response. Please verify the appId and appSecret." exit 1 fi base_dir=$(date +"%Y-%m-%d%H:%M:%S.%3N") echo $base_dir "Start Downloading UiPath Platform Audit logs." # Define the base URL base_url="https://${cloud}.uipath.com/${organizatioNameOrId}/orgaudit_/api/query/downloadeventsfromlongtermstore" mkdir -p $base_dir # Iterate through time intervals current_date=$(date -u -d "$fromDate" +"%Y-%m-%dT%H:%M:%SZ") seconds_in_a_day=$((24*60*60)) while [ "$(date -d "$current_date" +%s)" -le "$(date -d "$toDate" +%s)" ]; do next_date=$(date -u -d "$current_date + $(($seconds_in_a_day-1)) seconds" +"%Y-%m-%dT%H:%M:%SZ") # Construct the full URL with the current time interval formatted_current_date=$(date -u -d "$current_date" +"%Y-%m-%dT%H:%M:%SZ" | sed 's/\//%2F/g') formatted_current_date="${current_date}" formatted_next_date=$next_date | sed 's/\//%2F/g' formatted_next_date="${next_date}" full_url="$base_url?from=$formatted_current_date&to=$formatted_next_date" echo $full_url echo "Downloading UiPath Audit Log from $current_date to $next_date" curl -X GET "$full_url" -$mode \ -H "Authorization: Bearer $access_token" \ -o "${base_dir}/${current_date////-}_to_${next_date////-}.zip" # Save the response to a file # Move to the next time interval current_date=$next_date one=1 current_date=$(date -u -d "$current_date + $one seconds" +"%Y-%m-%dT%H:%M:%SZ") done for zip_file in "$base_dir"/*.zip; do zip_file_name="$(basename "$zip_file")" unzip -q "$zip_file" -d "$base_dir/auditlogs/" echo "Extracted ${zip_file_name%.*}" rm "$zip_file" done shopt -s nullglob for zip_file in "$base_dir/auditlogs"/*.zip; do zip_file_name="$(basename "$zip_file")" unzip -q "$zip_file" -d "$base_dir/auditlogs/${zip_file_name%.*}" for data_file in "$base_dir/auditlogs"/${zip_file_name%.*}/*.txt; do data_file_name="$(basename "$data_file")" mv "$data_file" "$base_dir/auditlogs/${data_file_name%.*}_${zip_file_name%.*}.txt" rm -r "$base_dir/auditlogs/${zip_file_name%.*}" done rm "$zip_file" done shopt -u nullglob echo $(date +"%Y-%m-%d %H:%M:%S.%3N") "Downloaded UiPath Platform Audit logs and saved them according to UTC date" - Führen Sie das Skript in einer WSL-Umgebung (Windows Subsystem für Linux) aus und stellen Sie sicher, dass die folgenden Tools installiert sind:
sudo apt install dos2unix unzip jqsudo apt install dos2unix unzip jq - Bereiten Sie das Skript mit den folgenden Befehlen auf die Ausführung vor:
dos2unix <script-name>.sh chmod +x <script-name>.shdos2unix <script-name>.sh chmod +x <script-name>.sh -
Erstellen Sie eine vertrauliche externe Anwendung in Ihrem Mandanten und weisen Sie den folgenden API-Scope zu:
PM.Audit.Read(Anwendung). -
Erfassen Sie die folgenden Anwendungsanmeldeinformationen:
-
Anwendungs-ID (
client_id) -
Anwendungsgeheimnis (
client_secret)
-
Schritte
- Legen Sie die erforderlichen Variablen in Ihrem Terminal fest:
client_id='<your-client-id>' client_secret='<your-client-secret>' org_name='<your-org-name>' start_date='MM/DD/YYYY' end_date='MM/DD/YYYY'client_id='<your-client-id>' client_secret='<your-client-secret>' org_name='<your-org-name>' start_date='MM/DD/YYYY' end_date='MM/DD/YYYY' - Führen Sie das Skript mit dem folgenden Befehl aus:
./<script-name>.sh $client_id $client_secret $org_name $start_date $end_date.Zum Beispiel:
client_id='<clientId>' client_secret='<clientsecret>' org_name='test_org' start_date='09/01/2025' end_date='10/01/2025' ./<script-name>.sh $client_id $client_secret $org_name $start_date $end_date vclient_id='<clientId>' client_secret='<clientsecret>' org_name='test_org' start_date='09/01/2025' end_date='10/01/2025' ./<script-name>.sh $client_id $client_secret $org_name $start_date $end_date v
.csv -Datei im Container uipathrobotlogs gespeichert. Der Export erfolgt pro Mandant, was Folgendes erleichtert:
- Speichern von Protokollen, die zu Compliance- und Prüfungszwecken aufbewahrt werden müssen.
-
Analysieren und Visualisieren der Protokollausgabe in Ihren eigenen Bericht- oder BI-Tools.
Hinweis: Beim Konfigurieren der Protokollexportseite unterstützen wir kein Abgleichen von Protokollen im Wert von 30 Tagen.
Azure
- Lokaler Redundanter Standardspeicher (LRS)
- Standardmäßiger georedundanter Speicher (GRS)
- Standardmäßiger georedundanter Speicher mit Lesezugriff (RA-GRS)
- Standardmäßiger zonenredundanter Speicher (ZRS)
- Premium-LRS
AWS S3
aws:SourceIp -Liste, wie auf der Seite Bucket-Richtlinien für Amazon S3 im AWS S3-Benutzerhandbuch beschrieben. Die vollständige Liste der IP-Adressen finden Sie auf der Seite Konfigurieren der Firewall im Automation Cloud-Administratorhandbuch.
Google Cloud Storage
- Klappen Sie den Mandanten aus, für den Sie die Protokollexporteinstellungen löschen möchten.
- Wählen Sie für den Orchestrator-Dienst in diesem Mandanten die Option Konfiguration des Protokollexports aus. Das Konfiguration -Panel rechts wird angezeigt.
- Deaktivieren Sie den Umschalter Roboterprotokolle an benutzerdefinierten Speicher senden.
- Wählen Sie im Fenster Konfiguration löschen die Option Löschen aus, um zu bestätigen. Die Konfiguration wurde erfolgreich gelöscht.