Leitfaden für Schlüsselwechsel und Labeling
Leitfaden für Schlüsselwechsel und Labeling
Strategien zum Anwenden von DKE-Labels, wenn automatisches Labeling nicht verfügbar ist
Die Herausforderung beim DKE-Labeling
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
Manuelles Labeling
Über den Purview Label Client
AIP Scanner
Automatisiertes On-Premises-Labeling
PowerShell
Skriptbasiertes Datei-Labeling
1. Manuelles Labeling
Umfasst das Auswählen einzelner Dateien oder Ordner im Datei-Explorer und das Anwenden des entsprechenden Labels.
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)
- 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.
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
| Funktion | Beschreibung |
|---|---|
| Retry-Mechanismus | Versucht es bis zu dreimal pro Datei |
| Jobbasierte Ausführung | Jede Datei wird in einem separaten Job gelabelt, um Ressourcenprobleme zu vermeiden |
| Speicherbereinigung | Verwendet [GC]::Collect() und WaitForPendingFinalizers() nach jedem Job |
| Timeout-Steuerung | Verhindert Hängenbleiben durch Verwendung von Wait-Job -Timeout 10 |
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.