Téléverser les fichiers vers "/"
This commit is contained in:
36
move_expired_users.ps1
Normal file
36
move_expired_users.ps1
Normal file
@@ -0,0 +1,36 @@
|
||||
Import-Module ActiveDirectory
|
||||
|
||||
$domainDN = (Get-ADDomain).DistinguishedName
|
||||
$retiredOU = "OU=Retired,$domainDN"
|
||||
|
||||
Write-Host "--- D<>placement des comptes expir<69>s ---" -ForegroundColor Cyan
|
||||
|
||||
# 1. V<>rification / Cr<43>ation de l'OU
|
||||
if (-not (Get-ADOrganizationalUnit -Filter "Name -eq 'Retired'")) {
|
||||
try {
|
||||
New-ADOrganizationalUnit -Name "Retired" -Path $domainDN -ErrorAction Stop
|
||||
Write-Host "[OK] OU 'Retired' cr<63><72>e." -ForegroundColor Green
|
||||
} catch {
|
||||
Write-Host "[ERREUR] Droit refus<75> pour cr<63>er l'OU. Utilisez 'Ex<45>cuter en tant qu'administrateur'." -ForegroundColor Red
|
||||
return
|
||||
}
|
||||
}
|
||||
|
||||
# 2. Recherche des utilisateurs expir<69>s
|
||||
$today = Get-Date
|
||||
# Note : on utilise des guillemets simples ' ' pour le filtre AD
|
||||
$expiredUsers = Get-ADUser -Filter 'AccountExpirationDate -lt $today' -Properties AccountExpirationDate
|
||||
|
||||
if ($expiredUsers) {
|
||||
Write-Host "$($expiredUsers.Count) utilisateur(s) trouv<75>(s)." -ForegroundColor White
|
||||
foreach ($user in $expiredUsers) {
|
||||
try {
|
||||
Move-ADObject -Identity $user.DistinguishedName -TargetPath $retiredOU -ErrorAction Stop
|
||||
Write-Host "[MOVE] $($user.SamAccountName) d<>plac<61> vers Retired." -ForegroundColor Yellow
|
||||
} catch {
|
||||
Write-Host "[ERREUR] Impossible de d<>placer $($user.SamAccountName) : $($_.Exception.Message)" -ForegroundColor Red
|
||||
}
|
||||
}
|
||||
} else {
|
||||
Write-Host "Aucun utilisateur expir<69> trouv<75>." -ForegroundColor Gray
|
||||
}
|
||||
Reference in New Issue
Block a user