<img height="1" width="1" style="display:none" src="https://www.facebook.com/tr?id=1678611822423757&amp;ev=PageView&amp;noscript=1">
Defrag This

| Read. Reflect. Reboot.

Searching Active Directory with PowerShell

Dan Franciscus| October 17 2019

| IT insights, PowerShell, Active Directory, Microsoft

searching-active-directory-with-powershell

For many Microsoft IT professionals, one of the first things they do with PowerShell is using it to perform tasks in Active Directory.

PowerShell, for instance, can join computers to Active Directory, remove computers, and reset passwords among many other tasks. One task in particular I perform a lot is searching Active Directory for user and computer information. Part of what makes PowerShell such as great tool for this is the job it does filtering information out, such as only searching for users in a specific department. In this article, I will go over some common things PowerShell can search for in Active Directory.

Learn how to automate IT tasks with PowerShell. Download this eBook. 

Searching User Information

Searching user information in AD can be done with the Get-ADUser cmdlet. Personally, I use the -Identity parameter the most with this cmdlet, which allows you to pass these types of values:

  • A distinguished name
  • A GUID (objectGUID)
  • A security identifier (objectSid)
  • A SAM account name (sAMAccountName)

So for instance to get information by a samaccountname I could do this:

C:\> Get-ADUser -Identity dfrancis




DistinguishedName : CN=Daniel Franciscus,OU=Test,DC=domain,DC=com

Enabled           : True

GivenName         : Dan

Name              : Daniel Franciscus

ObjectClass       : user

ObjectGUID        : 68fbb9c6-bc5a-4892-8f93-5ba8ec523365

SamAccountName    : dfrancis

SID               : S-1-5-21-2099712884-232525161-946742744-8334

Surname           : Franciscus

UserPrincipalName : dfrancis@domain.com

Easy enough, right? Now, let us try something a little more interesting. With the -Filter parameter, we can specify how we want out output filtered. Here, I want to show any user who as a count of bad password greater than 7:

C:\>  Get-ADUser -Filter 'badpwdcount -ge 7' | Select-Object samaccountname




samaccountname

--------------

Guest

Test-1

TestUser2

TestUser3

TestUser4

Another task I do frequently is look at a specific organizational unit in Active Directory for certain information. In this scenario, I want to query a specific OU but only for users with the last name “Davis”:

C:\> Get-ADUser -Filter 'Surname -eq "Davis"' -SearchBase 'OU=Desktop,DC=domain,DC=com' -Properties *  | Select Displayname,Surname




Displayname    Surname

-----------    -------

Dan Davis      Davis

Brad Davis     Davis

Note that the attribute in Active Directory for last name is surname, so we use the –eq operator to find exactly the surname of “Davis.”

Searching Computer Information

Searching for computer information in AD is performed with the Get-ADComputer cmdlet. The parameters are very similar to Get-ADUser and work the same way. Here, I want to find the computer record associated with a specific IPv4 address:

C:\> Get-ADComputer -Filter 'IPv4Address -eq "172.16.67.155"'




DistinguishedName : CN=Test-1,OU=Staff,OU=Test,DC=domain,DC=com

DNSHostName       : Test-1.domain.com

Enabled           : True

Name              : Test-1

ObjectClass       : computer

ObjectGUID        : 68e597fe-631d-413d-9087-2cc806709c82

SamAccountName    : Test-1$

SID               : S-1-5-21-2099712884-232525161-946742744-11288

UserPrincipalName :

Here, I do the same command, but I want to find the SID for this particular machine as well. One of the great features of Get-ADComputer is that you can quickly find attributes in Active Directory, quite handy for things like finding an SID.

C:\> Get-ADComputer -Filter 'IPv4Address -eq "172.16.48.155"' | Select-Object SID




SID

---

S-1-5-21-2099712884-232525161-946742744-11243

Summary

If you work with Active Director often, the ActiveDirectory PowerShell module is something you need to be using. It will make you much more efficient at viewing and making changes in AD. PowerShell enables easy filtering of AD information and can give fascinating information.

 

Topics: IT insights, PowerShell, Active Directory, Microsoft

Leave a Reply

Your email address will not be published. Required fields are marked *

THIS POST WAS WRITTEN BY Dan Franciscus

Dan Franciscus is a systems engineer and VMware Certified Professional (VCP) specializing in VMware, PowerShell, and other Microsoft-based technologies. You can reach Dan at his blog (http://www.winsysblog.com/) or Twitter at @dan_franciscus.

Free Trials

Getting started has never been easier. Download a trial today.

Download Free Trials

Contact Us

Let us know how we can help you. Focus on what matters. 

Send us a note

Subscribe to our Blog

Let’s stay in touch! Register to receive our blog updates.