Sample Powershell Active Directory Phonebook Script

I have been learning the syntax of Powershell so I thought I would write a simple little script to search Active Directory for the mobile phone numbers of my co-workers.  This script will accept an input of lastname and even take wildcard characters so if I wanted to search for all people's mobile phone numbers that start with min I can just use min* as my search string.

Check it out:

function getmobilenumber($name)
{
  $root = New-Object DirectoryServices.DirectoryEntry
  $Searcher = New-Object DirectoryServices.DirectorySearcher
  $Searcher.Searchroot = $root
  $searcher.filter = ("(sn=$name)")
  $Proplist = "cn","mobile"
  $Proplist | foreach {[void]$Searcher.Propertiestoload.Add($_)}
  $results = $searcher.findall()
  foreach ($result in $results){$result.properties}
}

To use it just type getmobilephonenumber("lastname") where lastname is the name of the person you are searching for.  Note that the $proplist variable could be changed to whatever AD attributes that you wanted to search for.

Enjoy!

BTW I learned a lot on how to do this from this blog entry: https://mow001.blogspot.com/2006/04/large-ad-queries-in-monad.html

Comments

  • Anonymous
    January 01, 2003
    Tim posted another great sample script on his blog
    function getmobilenumber($name){  $root = New-Object...
  • Anonymous
    June 26, 2006
    Nifty. Mind if I post this to the script center? http://www.microsoft.com/technet/scriptcenter/csc/default.mspx
  • Anonymous
    June 26, 2006
    Not at all.  Go for it.  :)
  • Anonymous
    June 27, 2006
    Glad my blogentry was of help.

    Greetings //o//
  • Anonymous
    July 05, 2006
    Great little script. I have done something similar here but have used an Ambiguous Name Resolution Search to allow for a more attributes to be searched against, just changing the search filter to ("(ANR=$name)") will do it. Just hits AD a bit harder is the only issue.