Powershell – script de restauration d’objet AD

write-host
Write-host
write-host "-------------------------------------------------------"
Write-host
Write-host

Import-module ActiveDirectory

Function RestoreObject($Object)
{
#-----------------------------------------------------------------
If ($Object.substring($Object.length - 1, 1) -ne '*')
{
$Object += '*'
}
#-----------------------------------------------------------------

$existing = Get-ADObject -Filter {name -like $Object}

If (!$existing)
{
"Aucun objet existant trouve, la recherche d objets supprimes."
$deleted = Get-ADObject -IncludeDeletedObjects -Filter {name -like $Object -and Deleted -eq $True}

If ($deleted)
{
"Objet supprime trouve, restauration en cour ..."
$deleted | Restore-ADObject
Start-Sleep -s 5
$restoredobject = Get-ADObject -Filter {name -like $Object}

If ($restoredobject)
{
"Objet restauré avec succes. Essayer de trouver des informations de recuperation ..."
$recoveryinfos = Get-ADObject -IncludeDeletedObjects -Filter {lastKnownParent -like $restoredobject.DistinguishedName -and Deleted -eq $True -and objectClass -eq 'msFVE-RecoveryInformation'}

ForEach($recoveryinfo in $recoveryinfos)
{
If ($recoveryinfo)
{
"Les informations de recuperation trouve, en essayant de restaurer ..."
$recoveryinfo | Restore-ADObject

Start-Sleep -s 5

$restoredinfo = Get-ADObject -Filter {ObjectGUID -eq $recoveryinfo.ObjectGUID}

If ($restoredinfo)
{
"Les informations de recuperation restaure avec succes."
}
Else
{
"Impossible de restaurer les informations de recuperation, interruption du script."
return $false
}
}
Else #if(recoveryinfo)
{
"Aucune information de recuperation trouve pour objet, interruption du script."
return $true
}
} # foreach
}
Else #If ($restoreedobject)
{
"Quelque-chose s est mal passe. Impossible de trouver l objet restaure, interruption du script."
return $false
}
} # If (deleted)
Else #if (deleted)
{
"Pas Object supprime trouve, interruption du script."
return $false;
}
} #if(Existing)
Else #if(Existing)
{
"Object existe deja, interruption du script."
Write-host $existing
return $false
}
"Restauration de Object realise avec success."
"Terminee."
return $true
} #end function

$cn = Read-Host "Saisie ObjectGUID de l objet a restaurer ?"

RestoreObject($cn)

write-host
Write-host
write-host "-------------------------------------------------------"
Write-host
Write-host

 

Taggé , , , , .Mettre en favori le Permaliens.

Les commentaires sont fermés.