AD Vorwahl von 04xxxx auf +49 xxx ändern per Skript
Hallo zusammen,
ich würde gern auf einen schlag alle Rufnummern die mit einer 0xxxxx anfangen ein +49 xxx machen..
Hat da einer von euch mal sowas per Skript gemacht?
Gruß
Heiko
ich würde gern auf einen schlag alle Rufnummern die mit einer 0xxxxx anfangen ein +49 xxx machen..
Hat da einer von euch mal sowas per Skript gemacht?
Gruß
Heiko
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 243422
Url: https://administrator.de/contentid/243422
Ausgedruckt am: 24.11.2024 um 09:11 Uhr
22 Kommentare
Neuester Kommentar
Zitat von @ChrisDynamite:
ja, aber ini beiden fällen ist es skript-aufwand. ob es das wert ist weiß ich nicht zu beurteilen.
ja, aber ini beiden fällen ist es skript-aufwand. ob es das wert ist weiß ich nicht zu beurteilen.
Aber du hast doch nach Script gefragt???
ANKH
Zitat von @ChrisDynamite:
ganz kuhl ich meinte dass sowohl powershell als auch autoit scriptaufwand bedeutet.
ganz kuhl ich meinte dass sowohl powershell als auch autoit scriptaufwand bedeutet.
Tut es auch! Aber wo ist dein Problem?
Hat da einer von euch mal sowas per Skript gemacht?
Wie soll das denn nun interpretiert werden???ANKH
Moin zusammen,
ist doch alles halb so wild ... könnte vereinfacht so aussehen, wenn es hier nur um die Hauptrufnummer geht, ließe sich aber problemlos auch auf andere Nummern ausweiten:
Die einzelne 0 bei 04 am Anfang kam mir jetzt etwas komisch vor, deshalb hab ich im Script mal den Match auf 0049 am Anfang der Nummer gesetzt. Lässt sich ja einfach anpassen und wenn gewünscht zusätzlich auch weitere Muster berücksichtigen, wenn man im Regex-Pattern die Muster mit einer Pipe voneinander trennt.
Grüße Uwe
ist doch alles halb so wild ... könnte vereinfacht so aussehen, wenn es hier nur um die Hauptrufnummer geht, ließe sich aber problemlos auch auf andere Nummern ausweiten:
get-aduser -Filter * -Properties telephoneNumber | ?{$_.telephoneNumber -match '^0049'} | %{set-aduser $_ -Replace @{telephoneNumber=$($_.telephoneNumber -replace '^0049','+49 ')}}
Grüße Uwe
Zitat von @pixel0815:
das schaut ja super aus. Ich verstehe nur nicht warum keine Änderung durchgeführt wird. Es gibt nicht mal eine
Fehlermeldung
les mal meinen Kommentar, ich habe den Pattern Match auf 0049 am Anfang einer Nummer gesetzt weil mir das 04 komisch vorkam.. musst du halt entsprechend an eure Situation anpassen. geht hier übrigens einwandfrei ...das schaut ja super aus. Ich verstehe nur nicht warum keine Änderung durchgeführt wird. Es gibt nicht mal eine
Fehlermeldung
Zitat von @pixel0815:
Die Telefonnummern sind tatsächlich die Ortsvorwahlen. 041xxx ... die 0 soll weg und dafür ein +49 hin.
achso ... dann haben wir uns missverstanden Die Telefonnummern sind tatsächlich die Ortsvorwahlen. 041xxx ... die 0 soll weg und dafür ein +49 hin.
in diesem Fall müsste es so aussehen
get-aduser -Filter * -Properties telephoneNumber | ?{$_.telephoneNumber -match '^0'} | %{set-aduser $_ -Replace @{telephoneNumber=$($_.telephoneNumber -replace '^0','+49 ')}}
normalerweise nicht. Script läuft hier sowohl auf einem 2012R2 als auch 2008R2.
Zitat von @pixel0815:
Kann ich damit auch aus Vorname und Nachname eine Emailadresse in das AD schreiben in ein bestimmtes Feld? Ich möchte aus Vorname und Nachname
eine Emailadresse generieren. Wir haben leider keinen Exchange Server mehr, aber müssen jetzt eine Software einsetzen die
diese Attribute in unserer Domäne abfragt und nicht in unserem externen Mailcenter ...
sicher, kein problem.Kann ich damit auch aus Vorname und Nachname eine Emailadresse in das AD schreiben in ein bestimmtes Feld? Ich möchte aus Vorname und Nachname
eine Emailadresse generieren. Wir haben leider keinen Exchange Server mehr, aber müssen jetzt eine Software einsetzen die
diese Attribute in unserer Domäne abfragt und nicht in unserem externen Mailcenter ...
Kann ich damit auch aus Vorname und Nachname eine Emailadresse in das AD schreiben in ein bestimmtes Feld?
Beispiel um eine Mail-Adresse im Format vorname.nachname@domain.local im Description-Feld der User zu erzeugen.get-aduser -Filter * | ?{$_.Surname -ne $null -and $_.Givenname -ne $null} | %{set-aduser $_ -Replace @{Description="$($_.givenname).$($_.surname)@domain.local"}}
Hier noch ein paar Links zum lernen von Powershell:
Powershell Grundlagen- und Praxisvermittlung:
- http://www.powershellpraxis.de/
- http://www.msxfaq.de/code/powershell/powershell.htm
- PowerShell for Runaways - Part I
- PowerShell For Runaways - Part II
- http://powershell.com/cs/
- http://powershell.com/cs/media/13/default.aspx
Viel Erfolg
Grüße Uwe
Ich möchte ja eventuelle Sonderzeichen in den Feldern vorher anpassen.
Das geht auch in meiner abgekürzten Zeile problemlos, sogar mehrere Zeichen auf einmal mit RegEx !! naja egal, wenn, dann würde das in deiner gewümschten Variante so aussehen, wenn in der CSV Das Semikolon als Trennzeichen eingesetzt wird und der SamAccountName in der entsprechend benannten Spalte der CSV-Datei steht. Die Übergabe der Namen an die Funktion ist Quatsch wenn man den Usernamen hat, Vornamen und Nachnamen stehen ja schon im AD.function ChangeEmail ($username) {
$user = get-aduser $username -Erroraction SilentlyContinue
if ($user){
set-aduser $user -Replace @{mail="$($user.givenname).$($user.surname)@domain.de"}
}Else{
write-host 'User existiert nicht'
}
}
$benutzer = Import-Csv "c:\OhneMailAttribut.csv” -delimiter ";"
foreach($b in $benutzer){
ChangeEmail $b.SamAccountname
}
Mach erst mal deinen Kurs, dann sehen wir weiter...
Grüße Uwe