Skip to main content

Recover an Object from the Active Directory Recycle Bin if its Parent OU has Also Been Deleted

Here is a good scenario.  What if you want to recover an object from the AD Recycle Bin, but its parent OU has been deleted also?  Here is a blog article that I wrote a few years ago to help simplify all the PowerShell code that you would have to use.  In short, you would have to discover the parent object and restore it before you restore the object that you want.

In the image below, you can see that we are looking at the Active Directory Administrative Center. This domain has the AD Recycle Bin turned on and we have 4 objects in the Deleted Objects area.  OU1 was the parent with OU2 and its child.  OU2 had OU3 as its child.  John Doe’s user object was stored in OU3.

We will start off by right clicking John Doe and selecting Restore. The result is an error.

image

This is because the parent Object of the John Doe object do not exists in Active Directory.  They have also been deleted.  We can find the parent of john do using PowerShell

image

Well isn't this a mess?  If you look carefully at the LastKnownParent property, you can see the object that needs to be restored first, OU3.

In the AD Administrative Center, you simply need to right click the object that gave you the warning and click Locate Parent.

image

The Parent object will get the focus.

image

We could continue to do this until we reach the parent.  Once you attempt to locate the parent of OU1, the Focus on the left pane switches to the Domain, which is the parent of OU1.  Now you can restore the objects in the following order; OU1, OU2, OU3, John Doe.  Not very efficient and what if I wanted to restore just the one object and not 4?  Right click on John Doe again and notice the option to Restore To.

Now I can choose where to restore this object to.  In this case I selected Users and clicked OK.

image

Your object is now restored.

In the case of multiple objects that need to be restored, just select them and click Restore or Restore to.

image

Comments

Popular posts from this blog

Adding a Comment to a GPO with PowerShell

As I'm writing this article, I'm also writing a customization for a PowerShell course I'm teaching next week in Phoenix.  This customization deals with Group Policy and PowerShell.  For those of you who attend my classes may already know this, but I sit their and try to ask the questions to myself that others may ask as I present the material.  I finished up my customization a few hours ago and then I realized that I did not add in how to put a comment on a GPO.  This is a feature that many Group Policy Administrators may not be aware of. This past summer I attended a presentation at TechEd on Group Policy.  One organization in the crowd had over 5,000 Group Policies.  In an environment like that, the comment section can be priceless.  I always like to write in the comment section why I created the policy so I know its purpose next week after I've completed 50 other tasks and can't remember what I did 5 minutes ago. In the Group Policy module for PowerShell V3, th

Return duplicate values from a collection with PowerShell

If you have a collection of objects and you want to remove any duplicate items, it is fairly simple. # Create a collection with duplicate values $Set1 = 1 , 1 , 2 , 2 , 3 , 4 , 5 , 6 , 7 , 1 , 2   # Remove the duplicate values. $Set1 | Select-Object -Unique 1 2 3 4 5 6 7 What if you want only the duplicate values and nothing else? # Create a collection with duplicate values $Set1 = 1 , 1 , 2 , 2 , 3 , 4 , 5 , 6 , 7 , 1 , 2   #Create a second collection with duplicate values removed. $Set2 = $Set1 | Select-Object -Unique   # Return only the duplicate values. ( Compare-Object -ReferenceObject $Set2 -DifferenceObject $Set1 ) . InputObject | Select-Object – Unique 1 2 This works with objects as well as numbers.  The first command creates a collection with 2 duplicates of both 1 and 2.   The second command creates another collection with the duplicates filtered out.  The Compare-Object cmdlet will first find items that are diffe

How to list all the AD LDS instances on a server

AD LDS allows you to provide directory services to applications that are free of the confines of Active Directory.  To list all the AD LDS instances on a server, follow this procedure: Log into the server in question Open a command prompt. Type dsdbutil and press Enter Type List Instances and press Enter . You will receive a list of the instance name, both the LDAP and SSL port numbers, the location of the database, and its status.