Set AD IP Phone based on Lync LineURI value (set-adipphone-from-lineuri.ps1)

I wrote this quick PowerShell script when I needed to import some phone number data from the Lync Line URI attributes within Lync 2010 and place it in Active Directory.

This script is provided as-is, and I hope it provides you a head start if your looking to complete a similar task. You will need to customise the script to your requirements, in my case I needed 4 digit extension numbers from the Lync Line URI to be held within the AD IPPhone attribute, a one off task to back-port some data into AD before I used set-lineuri-from-ad.ps1 for future Line URI updates.

To test this command, you could restrict its scope by matching a specific user, eg: Get-CsAdUser -LdapFilter “IPPhone=1234”, or by OU as shown in the script. You also need to set the if statement as required.

# set-adipphone-from-lineuri.ps1
# Back-port 1xxx number from users Lync lineuri into their AD IPPhone attribute.
# 2013-07-25 - R. Jervis

Import-Module ActiveDirectory

#$RJUsers = Get-AdUser -Filter {msRTCSIP-Line -like "tel:+1*"} -Properties *
$RJUsers = Get-AdUser -LDAPFilter "(msRTCSIP-Line=tel:+1*)" -SearchScope Subtree -SearchBase "OU=Test Users,DC=test,DC=local" -Properties *

foreach ($user in $RJUsers)
    {
        Write-Host ---------------------------------------------------------------------------------
        Write-Host Back porting $user.SamAccountName with LineURI $user["msRTCSIP-Line"] -NoNewLine ; Write-Host
	$RJURI = $user."msRTCSIP-Line"
        $RJURI = $RJURI.Substring(5,4)
	Write-Host $RJURI
	Write-Host $user.ipphone

        if ($RJURI -like '1234') {
           echo "Lync Ext: $RJURI"
           $RJUserMod = Get-ADUser $user.SamAccountName -Properties ipPhone
           $RJUserMod.ipPhone = $RJURI
           Write-Host SETTING USER!
           Set-ADUser -instance $RJUserMod
           } 
    }
Facebooktwittergoogle_plusredditpinterestlinkedinmail

Leave a Reply

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