Aller au contenu principal

Guide de renouvellement et d'étiquetage des clés

S'applique à :
Migration de fichiersÉtiquetage PowerShellAIP ScannerSharePoint

Le défi de l'étiquetage DKE​

Avertissement
L'étiquetage automatique dans SharePoint ne fonctionne pas avec les étiquettes protégées par DKE.

Cela signifie que les fichiers doivent être étiquetés manuellement ou via des méthodes alternatives avant la migration, afin de garantir que Microsoft 365 ne puisse pas lire leur contenu.

Solutions possibles​

1

Étiquetage manuel

Via le Purview Label Client

2

AIP Scanner

Étiquetage automatisé sur site

3

PowerShell

Étiquetage des fichiers par script

1. Étiquetage manuel​

Consiste à sélectionner des fichiers ou des dossiers individuels dans l'Explorateur de fichiers et à appliquer l'étiquette appropriée.

Attention

Inconvénient : journalisation limitée en cas d'erreur, et les fichiers doivent être vérifiés un par un — très chronophage et inadapté aux migrations de grande ampleur.

2. AIP Scanner​

Un outil installé sur site pour appliquer automatiquement des étiquettes aux fichiers situés sur des partages de fichiers ou sur SharePoint On-Premises, en fonction de politiques définies.

Avantages

Idéal pour les environnements plus vastes ou lorsque l'étiquetage doit être étendu à des installations sur site.

Inconvénient

Pour de petits disques locaux, la charge de mise en œuvre peut être trop élevée.

3. Étiquetage basé sur PowerShell​

En raison des limitations des méthodes ci-dessus, PowerShell peut être utilisé pour étiqueter les fichiers de manière programmatique.

Prérequis

  • Un client avec PowerShell et le Purview Label Client installés
  • Un enregistrement d'application dans Entra ID (anciennement Azure Active Directory)
Attention
Limitations :
  • Les fichiers MSG (messages Outlook) ne peuvent pas être étiquetés via PowerShell
  • Les PDF protégés par mot de passe ou signés par certificat ne peuvent pas non plus être étiquetés (limitation du système d'étiquetage lui-même)

Le défi PowerShell​

L'utilisation des commandes PowerShell standard telles que documentées par Microsoft peut entraîner un blocage de PowerShell ou une exécution indéfinie.

Avertissement

Les tests ont démontré que ce qui précède n'est pas suffisant et qu'un travail supplémentaire est nécessaire pour étiqueter les fichiers de manière fiable à l'aide d'un mécanisme de nouvelle tentative et d'un traitement basé sur les tâches (jobs).

Script PowerShell fiable pour l'étiquetage​

Le script suivant fournit une solution robuste avec logique de nouvelle tentative et exécution basée sur les tâches :

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
}
}

Fonctionnalités du script​

FonctionnalitéDescription
Mécanisme de nouvelle tentativeEffectue jusqu'à 3 tentatives par fichier
Exécution basée sur les tâchesChaque fichier est étiqueté dans une tâche distincte afin d'éviter les problèmes de ressources
Nettoyage de la mémoireUtilise [GC]::Collect() et WaitForPendingFinalizers() après chaque tâche
Contrôle de délai d'attenteEmpêche les blocages en utilisant Wait-Job -Timeout 10
Astuce

Avec cette approche, vous pouvez étiqueter avec succès tous les fichiers concernés sans que PowerShell ne se bloque ou ne s'exécute indéfiniment.

Script d'audit avant migration​

Pour garantir que tous les fichiers ont été correctement étiquetés avant la migration, rédigez un script qui lit l'étiquette de chaque fichier et consigne les résultats dans un fichier CSV. Cela permet un examen manuel et des ajustements là où c'est nécessaire.