Zum Hauptinhalt springen

Leitfaden für Schlüsselwechsel und Labeling

Gilt für:
DateimigrationPowerShell-LabelingAIP ScannerSharePoint

Die Herausforderung beim DKE-Labeling​

Warnung
Automatisches Labeling in SharePoint funktioniert nicht mit DKE-geschützten Labels.

Das bedeutet, dass Dateien vor der Migration manuell oder über alternative Methoden mit einem Label versehen werden müssen, um sicherzustellen, dass Microsoft 365 die Inhalte nicht lesen kann.

Mögliche Lösungen​

1

Manuelles Labeling

Über den Purview Label Client

2

AIP Scanner

Automatisiertes On-Premises-Labeling

3

PowerShell

Skriptbasiertes Datei-Labeling

1. Manuelles Labeling​

Umfasst das Auswählen einzelner Dateien oder Ordner im Datei-Explorer und das Anwenden des entsprechenden Labels.

Vorsicht

Nachteil: Begrenzte Protokollierung im Fehlerfall, und Dateien müssen einzeln überprüft werden – sehr zeitaufwendig und für große Migrationen ungeeignet.

2. AIP Scanner​

Ein On-Premises installiertes Tool, das Labels basierend auf definierten Richtlinien automatisch auf Dateien in Dateifreigaben oder SharePoint On-Premises anwendet.

Vorteile

Hervorragend geeignet für größere Umgebungen oder wenn Labeling auf On-Premises-Umgebungen ausgeweitet werden muss.

Nachteil

Für kleine lokale Laufwerke kann der Implementierungsaufwand zu hoch sein.

3. PowerShell-basiertes Labeling​

Aufgrund der Einschränkungen der oben genannten Methoden kann PowerShell verwendet werden, um Dateien programmatisch mit Labels zu versehen.

Voraussetzungen

  • Ein Client mit installiertem PowerShell und Purview Label Client
  • Eine App-Registrierung in Entra ID (früher Azure Active Directory)
Vorsicht
Einschränkungen:
  • MSG-Dateien (Outlook-Nachrichten) können nicht per PowerShell mit einem Label versehen werden
  • Passwortgeschützte oder zertifikatsignierte PDFs können ebenfalls nicht gelabelt werden (eine Einschränkung des Label-Systems selbst)

Die PowerShell-Herausforderung​

Die Verwendung von PowerShell-Standardbefehlen gemäß der Microsoft-Dokumentation kann dazu führen, dass PowerShell einfriert oder unbegrenzt läuft.

Warnung

Tests haben gezeigt, dass das oben Genannte nicht ausreicht und zusätzliche Maßnahmen erforderlich sind, um Dateien mithilfe eines Retry-Mechanismus und einer jobbasierten Verarbeitung zuverlässig zu labeln.

Zuverlässiges PowerShell-Labeling-Skript​

Das folgende Skript bietet eine robuste Lösung mit Retry-Logik und jobbasierter Ausführung:

Get-ChildItem -Path \\Finance\Projects\ -Recurse -File | ForEach-Object {
try {
$maxRetries = 3
$retryCount = 0
$setSuccess = $false

while (-not $setSuccess -and $retryCount -lt $maxRetries) {
$retryCount++

$jobsetlabel = Start-Job -ScriptBlock {
param ($fileName, $DKELabelId)
Set-FileLabel -FileName $fileName -LabelId $DKELabelId
[GC]::Collect()
[GC]::WaitForPendingFinalizers()
return $true
} -ArgumentList $_.FullName, "d9f23ae3-4321-4321-4321-f515f824c57b"

$finishedsetlabel = $jobsetlabel | Wait-Job -Timeout 10 | Receive-Job

if ($finishedsetlabel) {
$setSuccess = $true
Write-Host "Label set successfully for $($_.FullName) on attempt $retryCount." -ForegroundColor Green
}
}
}
catch {
Write-Host "Failed to set label after $maxRetries attempts for $($_.FullName)." -ForegroundColor Red
}
}

Funktionen des Skripts​

FunktionBeschreibung
Retry-MechanismusVersucht es bis zu dreimal pro Datei
Jobbasierte AusführungJede Datei wird in einem separaten Job gelabelt, um Ressourcenprobleme zu vermeiden
SpeicherbereinigungVerwendet [GC]::Collect() und WaitForPendingFinalizers() nach jedem Job
Timeout-SteuerungVerhindert Hängenbleiben durch Verwendung von Wait-Job -Timeout 10
Tipp

Mit diesem Ansatz können Sie alle relevanten Dateien erfolgreich labeln, ohne dass PowerShell einfriert oder unbegrenzt läuft.

Audit-Skript vor der Migration​

Um sicherzustellen, dass alle Dateien vor der Migration korrekt gelabelt wurden, schreiben Sie ein Skript, das das Label jeder Datei ausliest und die Ergebnisse in eine CSV-Datei protokolliert. Dies ermöglicht eine manuelle Überprüfung und Anpassungen, wo nötig.