Ändern der SIP Adresse für mehrere Benutzer

The estimated reading time 3 minutes

Viele der kleineren Kunden benutzen CTI Software für die Verbindung von Telefon und PC. Oftmals ist diese auch mit dem ActiveDirectory des Unternehmens verknüpft und verwendet SIP Adresse im Attribut „proxyaddresses“. Manchmal übernimmt eine solche Software bei der Installation einfach den UPN (UserPrincipalName), welcher aber nicht immer der E-Mail Adresse entspricht. „Falsche“ SIP Adressen sind die Konsequenz dieser Aktion, und wenn dann ein AD Sync zu Azure gemacht wird, fällt regelmäßig auf, dass sich keiner mit seiner E-Mail Adresse in Skype for Business anmelden kann.

HINWEIS: Für das folgendes Skript wird administrativer Zugang zum AD + das PowerShell Modul AD benötigt.

In meiner Demo-Umgebung existieren nur drei generierte Benutzer, es sollte aber auch in größeren Umgebungen mit dem Skript kein Problem sein.

Wie man im nächsten Screenshot sehen kann, haben die Benutzer eine E-Mail Adresse aber eine andere SIP Adresse.

Es existieren teilweise sogar zwei SIP Adressen, welche beide falsch sind.

Was macht also mein Skript:
1. sucht nach allen Benutzer die überhaupt eine E-Mail Adresse definiert haben
2.exportiert alle SIP Adressen in eine CSV Datei (vor der Änderung)
3. sucht nach SIP Adressen und entfernt alle
4. fügt die neue SIP Adresse anhand der Mailadresse hinzu
5. exportiert alle neuen SIP Adressen in eine separate Datei

Import-Module ActiveDirectory
#OU Path where users with false SIP addresses are stored (distinguishedName)
$ou = "OU=DEMO-USERS,OU=DEMO,DC=demo,DC=it-koehler,DC=com"
#export path for csv before editing
$exppath = "C:\temp" 
$exportpath = "$exppath\sip-orig.csv"
#export path after correction of sip address
$exportpathedit = "$exppath\sip-edited.csv"
# searches and writes all users into varialbe users where E-Mail attribute is not empty and contains @demo
$users = (Get-ADUser -Filter * -Properties * -SearchBase "$ou" | Where-Object {$_.mail -ne $null} | Sort-Object mail)
# NOTE: if you want to filter your mail addresses you can replace the line above with the following line and replace also "@demo"
#$users = (Get-ADUser -Filter * -Properties * -SearchBase "$ou" | Where-Object {($_.mail -ne $null) -and ($_.mail -like "*@demo*")} | Sort-Object mail) 
#export to csv before editing anything 
# https://www.blackforce.co.uk/2016/09/23/export-list-users-ad-proxy-addresses
$users | Select-Object Name, @{L = "ProxyAddresses"; E = { $_.ProxyAddresses -join ";"}} | Export-Csv -Path $exportpath -Delimiter ";" -NoTypeInformation
#the following code is done for every user found in $users 
foreach($user in $users){
  #getting emailaddress  
  $email = (($user).mail)
  #getting all SIP addresses from attribute "proxyaddresses"
  $proxy = (($user).proxyAddresses) | Where-Object {$_ -like "*SIP:*"}
  Write-Host "User: $email changed"
   #remove every sip address from user (even if there are more than one)   
   foreach ($addr in $proxy){
       Set-Aduser -identity "$User" -Remove @{proxyAddresses="$addr"}
   }
    #adding one sip address from the mail attribute 
    Set-ADUser -Identity "$user" -Add @{proxyAddresses ="SIP:"+"$email"}
}
#export all SIP Addresses after editing
$users = (Get-ADUser -Filter * -Properties * -SearchBase "$ou" | Where-Object {$_.mail -ne $null} | Sort-Object mail)
$users | Select-Object Name, @{L = "ProxyAddresses"; E = { $_.ProxyAddresses -join ";"}} | Export-Csv -Path $exportpathedit -Delimiter ";" -NoTypeInformation

Zwei Parameter müssen im Skript angepasst werden:
1. $ou = “OU=DEMO-USERS,OU=DEMO,DC=demo,DC=it-koehler,DC=com”
2. $exppath = “C:\temp”

CSV vor der Änderung bzw. danach sehen identisch aus, es sollten nur unterschiedliche Werte stehen:

Es lassen sich also sehr schnell SIP Adressen von vielen Benutzern korrigieren. Aber Vorsicht: bitte zuvor bei einigen Benutzern testen um eventuelle Probleme mit der CTI Software zu prüfen.
Viel Spaß mit dem Skript, drückt auf „helpful“ wenn euch der Artikel gefallen hat.

Was this article helpful?
YesNo
5 1 vote
Article Rating
Abonnieren
Benachrichtige mich bei
guest
1 Kommentar
Newest
Oldest Most Voted
Inline Feedbacks
View all comments
trackback
11 Monate zuvor

[…] Editor des Benutzers über das Attribut „proxyAddresses“ erledigen). Weitere Infos siehe Artikel. Im Exchange Admin Center Online ist dies dann hier zu […]