Benutzer mit den meisten Antworten
Ersetzen eines Teils von allen Mobilnummern im AD

Frage
-
Hallo
Ich muss in einer bestimmten Active Directory OU alle Mobilnummern anpassen. Hierbei soll jedoch nur die Ländervorwahl und die erste hälfte der Nummer verändert werden, die letzten vier stellen (Durchwahl) sollen erhalten bleiben. Außerdem dürfen eine Hand voll Nummern nicht geändert werden, also habe ich wie folgt gefiltert:
Get-AdUser -Filter "MobilePhone -Like '004312345*' -SearchBase "ou=X,ou=X,dc=X,dc=X" -properties MobilePhone
Ab hier setzt mein Powershell Wissen aus und ich habe keine Ahnung wie ich weitermachen könnte um mein ziel zu erreichen; nämlich bei allen soeben angezeigten User den Teil "004312345" durch eine andere Nummer zu ersetzen und dabei die letzten vier Stellen beizubehalten.
Evtl. foreach in Verbindung mit Set-AdUser und -replace ? Aber ich komme damit auf keinen Konsens. Kann das auf diese Art und Weise überhaupt funktionieren ?
Ich habe ein paar Lösungsansätze bereits im Netz gefunden. Allerdings basieren diese ausschließlich auf dem Import-CSV Cmdlet.
Meine Frage wäre, ob es hierfür auch eine einfachere, schnellere Lösung gibt, ohne mich zuvor mit Listen herumzuplagen.
Vielen Dank im Voraus.
- Bearbeitet Electronicjudas Montag, 16. November 2015 23:38
Antworten
-
Servus -
mit Regex geht sowas easy. Link
Du kannst ja dann die ganzen AD-User an Set-AdUser pipen:
Get-AdUser -Filter "MobilePhone -Like '004312345*' -SearchBase "ou=X,ou=X,dc=X,dc=X" -properties MobilePhone | % {Set-ADUser $_ -MobilePhone ($_.MobilePhone -replace '004312345', '+4312345' )}
Ansonsten macht es auch Sinn alles stückweise in Variabeln zu tun, um das ganze per Debugger in der ISE zu durchlaufen:
$ADUsers=Get-AdUser -Filter "MobilePhone -Like '004312345*' -SearchBase "ou=X,ou=X,dc=X,dc=X" -properties MobilePhone foreach ($item in $ADUsers) { #Code hier }
Best regards,
David das Neves
Technology Specialist - Consulting Services
Computacenter AG & Co. oHG - Munich
Blog
Creating Powershell GUIs with XAML? Take a look! PSGUI
- Bearbeitet David das Neves Dienstag, 17. November 2015 04:25
- Als Antwort markiert Electronicjudas Dienstag, 17. November 2015 10:16
Alle Antworten
-
Servus -
mit Regex geht sowas easy. Link
Du kannst ja dann die ganzen AD-User an Set-AdUser pipen:
Get-AdUser -Filter "MobilePhone -Like '004312345*' -SearchBase "ou=X,ou=X,dc=X,dc=X" -properties MobilePhone | % {Set-ADUser $_ -MobilePhone ($_.MobilePhone -replace '004312345', '+4312345' )}
Ansonsten macht es auch Sinn alles stückweise in Variabeln zu tun, um das ganze per Debugger in der ISE zu durchlaufen:
$ADUsers=Get-AdUser -Filter "MobilePhone -Like '004312345*' -SearchBase "ou=X,ou=X,dc=X,dc=X" -properties MobilePhone foreach ($item in $ADUsers) { #Code hier }
Best regards,
David das Neves
Technology Specialist - Consulting Services
Computacenter AG & Co. oHG - Munich
Blog
Creating Powershell GUIs with XAML? Take a look! PSGUI
- Bearbeitet David das Neves Dienstag, 17. November 2015 04:25
- Als Antwort markiert Electronicjudas Dienstag, 17. November 2015 10:16