Pour des changements de mot de passe ciblés, vous pouvez traiter des utilisateurs spécifiques à partir d'un fichier CSV. Cette approche est utile lorsque vous devez forcer des changements de mot de passe pour des départements, groupes ou incidents de sécurité spécifiques.
Tout d'abord, créez un fichier CSV avec la structure suivante :
UserPrincipalName,DisplayName,Department
user1@yourdomain.com,John Doe,IT
user2@yourdomain.com,Jane Smith,HR
user3@yourdomain.com,Bob Johnson,Finance
Enregistrez ceci sous le nom 'users.csv' dans le répertoire C:\Temp\. Ensuite, traitez les utilisateurs :
# Importer les utilisateurs depuis le CSV
$CSVPath = "C:\Temp\users.csv"
if (Test-Path $CSVPath) {
$UsersFromCSV = Import-Csv $CSVPath
Write-Host "Importé $($UsersFromCSV.Count) utilisateurs depuis le CSV" -ForegroundColor Cyan
# Traiter chaque utilisateur depuis le CSV
$CSVResults = @()
$UsersFromCSV | ForEach-Object {
try {
Update-MgUser -UserId $_.UserPrincipalName -PasswordProfile @{
ForceChangePasswordNextSignIn = $true
}
$CSVResults += [PSCustomObject]@{
UserPrincipalName = $_.UserPrincipalName
DisplayName = $_.DisplayName
Department = $_.Department
Status = "Succès"
ProcessedTime = Get-Date
}
Write-Host "✓ Mis à jour : $($_.UserPrincipalName)" -ForegroundColor Green
}
catch {
$CSVResults += [PSCustomObject]@{
UserPrincipalName = $_.UserPrincipalName
DisplayName = $_.DisplayName
Department = $_.Department
Status = "Échec : $($_.Exception.Message)"
ProcessedTime = Get-Date
}
Write-Host "✗ Échec : $($_.UserPrincipalName)" -ForegroundColor Red
}
Start-Sleep -Milliseconds 300
}
# Afficher le résumé
$SuccessfulCSV = ($CSVResults | Where-Object {$_.Status -eq "Succès"}).Count
$FailedCSV = ($CSVResults | Where-Object {$_.Status -ne "Succès"}).Count
Write-Host "`nRésumé du traitement CSV :" -ForegroundColor Cyan
Write-Host " Réussi : $SuccessfulCSV" -ForegroundColor Green
Write-Host " Échoué : $FailedCSV" -ForegroundColor Red
}
else {
Write-Host "Fichier CSV non trouvé à $CSVPath" -ForegroundColor Red
}
Conseil pro : Utilisez le traitement CSV pour les scénarios de réponse aux incidents où vous devez rapidement forcer des changements de mot de passe pour des comptes compromis ou des groupes d'utilisateurs spécifiques.
Vérification : Exporter les résultats CSV pour la documentation :
$CSVResults | Export-Csv -Path "C:\Temp\CSV-PasswordReset-Results-$(Get-Date -Format 'yyyyMMdd-HHmmss').csv" -NoTypeInformation