Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

gelöst Powershell - Active Directory Nummern bearbeiten

Mitglied: pixel0815

pixel0815 (Level 1) - Jetzt verbinden

24.07.2014, aktualisiert 16:35 Uhr, 1826 Aufrufe, 15 Kommentare, 1 Danke

Moinsen zusammen,

nach vielem Hin und Her habe bin ich jetzt soweit gekommen und nu hört s gerade irgendwie auf.

Ich möchte im AD die Telefonnummer anpassen - so weit so gut.
Das Skript macht das auch ganz gut inzwischen, allerdings habe ich ein Problem mit Bindestrichen und Schrägstrichen zwischen den Nummern.

Dann bekomme ich den Fehler: Cannot convert value "+494121/111111" to type "System.Double". Error: "Input string was not in a correct format."

Er macht dann folgendes in der Anzeige.

Alte Nummer
+49 4121/111-111 +49 494121 111 111

Ich möchte damit lediglich die Nummern die vorhanden sind in die Internationale Variante konvertieren.

Hier der Code:

01.
  
02.
 
03.
Add-PSSnapin Quest.ActiveRoles.ADManagemetn 
04.
 
05.
#Benutzeraccounts in OU 
06.
$OU = "OU=TestOUT=_Benutzer,DC=kit,DC=pi" 
07.
$users = get-qaduser -SearchRoot $OU -SizeLimit 0 
08.
 
09.
foreach ($user in $users)  
10.
11.
    if (($user.PhoneNumber).length -gt 1) 
12.
13.
	$user.PhoneNumber -replace "[).( -]"| 
14.
 
15.
	ForEach-Object 	{ 
16.
           #format regio nummern 
17.
	   	   $i = "{0: +49 ##### ### ###}" -f [double]$_ 
18.
			 
19.
	   $output = New-Object PSObject 
20.
	   $output | Add-Member -MemberType NoteProperty UserName($user.DisplayName) 
21.
	   $output | Add-Member -MemberType NoteProperty OldNumber($user.PhoneNumber) 
22.
	   $output | Add-Member -MemberType NoteProperty NewNumber($i) 
23.
			 
24.
	   #set-qaduser $user.dn -PhoneNumber $i 
25.
26.
	Write-Output $output 
27.
28.
}
Mitglied: colinardo
24.07.2014, aktualisiert um 16:25 Uhr
Moin,
warum ein AD-Zusatzmodul verwenden ? Geht doch alles mit Bordmitteln ... Für dich nochmal länger ausgeschrieben
01.
Import-Module ActiveDirectory 
02.
$OU = "OU=TestOUT=_Benutzer,DC=kit,DC=pi" 
03.
$users = get-aduser -Filter * -SearchBase $OU -Properties telephoneNumber -ResultSetSize $null | ?{$_.telephoneNumber -ne $null} 
04.
$log = @() 
05.
foreach($user in $users){ 
06.
    $oldNumber = $user.telephoneNumber 
07.
    $newNumber = $oldnumber -replace '^(0|\+49|49)[^\d]*(0?(\d{4}))[^\d]*(\d{3})[^\d]*(\d*)$','+49 $3 $4 $5' 
08.
    #set-aduser $user -Replace @{telephoneNumber=$newNumber} 
09.
    $log += New-Object PSObject -Property @{"Username"=$user.Name;"OldNumber"=$oldNumber;"NewNumber"=$newNumber} 
10.
11.
$log | select Username,OldNumber,NewNumber | ft
Du solltest aber mal posten ob in allen Nummern der Schrägstrich die Vorwahl vom Rest trennt und ob die Extensions jeweils immer 3 Stellen lang sind. Dann wäre das für uns einfacher

Grüße Uwe

p.s. Die Kategorie C++ ist wohl nicht sehr passend gewählt, schiebe es in Batch & Shell
Bitte warten ..
Mitglied: pixel0815
24.07.2014, aktualisiert um 15:15 Uhr
Da bekomme ich die Meldung " Cmdlet Get-ADUser an der Befehlspipelineposition 1
Geben Sie Werte für die folgenden Parameter an:" .. Mach ich da jetzt was falsch?

Ach ja..Die Nummer wird durch ein / Zeichen getrennt, durch ein - Zeichen, mal durch Blanks, manchmal steht schon ein +49 davor aber die Nummer falsch (beispiel: +49 123456 )
Bitte warten ..
Mitglied: colinardo
24.07.2014, aktualisiert um 15:44 Uhr
teste mal die oben korrigierte Fassung. Es ist hier nicht so einfach alle Varianten zu erfassen ohne zu wissen wie lang die Orts-Vorwahl ist wenn diese nicht von den anderen Zahlen getrennt ist, dann müsste man dies mit einer Liste von Vorwahlen vergleichen ... Es reicht aber normal schon das alle Sonderzeichen raus sind und +49 vorne dran steht. Ich würde es nicht so kompliziert machen.
Bitte warten ..
Mitglied: pixel0815
24.07.2014, aktualisiert um 15:47 Uhr
Das sieht ja richtig gut aus.
Die Vorwahl ist immer 5 Ziffern lang wenn Sie ausgeschrieben wurde. danach folgt die meist 3 stellige Nummer für den Standort und dann die entweder drei oder vierstellige Durchwahl, es gibt aber auch die berühmte 0 wenn eine rkeine durchwahl hat.. Kann ich dir damit etwas helfen`?
Bitte warten ..
Mitglied: colinardo
24.07.2014, aktualisiert um 15:55 Uhr
regex korrigiert teste nochmal

04101/123-111 
04101-123 111 
+49 04101 123/111 
 
+49 4101 123 111 
+49 4101 123 111 
+49 4101 123 111 
Bitte warten ..
Mitglied: pixel0815
24.07.2014, aktualisiert um 16:02 Uhr
geht. Habe jetzt gerade im AD noch ein Alptraum gefunden.

04101123 111
+49 4101-123111
Bitte warten ..
Mitglied: colinardo
24.07.2014, aktualisiert um 16:05 Uhr
Die paar kannst du von Hand anpacken ....
Bitte warten ..
Mitglied: pixel0815
24.07.2014 um 16:10 Uhr
Wenns ein paar wären, dann mach ich das sehr gerne. von den 4500 Benutzern sind das nach meiner Excelreport Sichtung 424 Telefonnummern. Wenn das noch gehn würde dann mach ich alles andere von Hand und schließe dich in mein Nachtgebet ein :o))))) Die Regex geschichte ist ja sowas von verzwickt :O
Bitte warten ..
Mitglied: colinardo
LÖSUNG 24.07.2014, aktualisiert um 16:35 Uhr
Zitat von pixel0815:
Wenn das noch gehn würde dann mach ich alles andere von Hand und schließe dich in mein Nachtgebet ein
:o)))))
dann bete mal , Anpassung siehe oben.

Achtung ganze Zeile 7 korrigiert ...
Bitte warten ..
Mitglied: pixel0815
24.07.2014 um 16:29 Uhr
Du bist genial !!! Ich hab schon angefangen !! Ich danke dir 1000000 mal !
Bitte warten ..
Mitglied: colinardo
24.07.2014, aktualisiert um 16:45 Uhr
Zitat von pixel0815:
Ich hab schon angefangen !!
[OT]
danke, aber leider hat es hier gerade das Gegenteil bewirkt, hier is grad das Scheißhaus übergelaufen wat ne Sauerei ....Na dem Seppel der hier grad so'n Monster abgeseilt hat, werd ich aber was erzählen
[/OT]

Viel Erfolg weiterhin
Grüße Uwe
Bitte warten ..
Mitglied: pixel0815
25.07.2014 um 08:30 Uhr
Schön Scheiße So heftige Unwetter? Ich bin froh das wir hier nur mit Stromausfällen zu kämpfen haben
Bitte warten ..
Mitglied: blackhawk17
18.05.2017 um 13:58 Uhr
Hallo,

ich würde mit Deinem Skript gerne Handynummern (mobile) bearbeiten wollen.

Für das Regex habe ich mit den Schlüssel "'^(\+\d{1,4})([\s-])(\(\d{1,4}\))([\s-])(\d{1,9})'" gebaut.

Nun würde ich einfach aus deinem Skript "telefonnumber" gegen "mobile" tauschen und gut.

Was ich aber nicht so ganz verstehe ist wie setze ich die Änderungen jetzt um?

Wie machst du das '+49 $3 $4 $5' fest? Dies zerreißt meinen Schlüssel natürlich.

Hast du da mal einen Tipp zu?
Bitte warten ..
Mitglied: colinardo
18.05.2017, aktualisiert um 22:27 Uhr
Servus,
Wie machst du das '+49 $3 $4 $5' fest? Dies zerreißt meinen Schlüssel natürlich.
das sind die Submatches (die geklammerten Ausdrücke) im Regex-String, der Reihenfolge nach wie sie auftauchen, also $1 = Inhalt des ersten Klammernpaars, $2 = vom zweiten, usw.

Grüße Uwe
Bitte warten ..
Mitglied: colinardo
23.05.2017, aktualisiert um 13:06 Uhr
Auch wenn der Beitrag schon älter ist, eine umfassende Lösung zur einheitlichen Formatierung alle Rufnummern der User im AD mit automatischer Erkennung des Ländercodes und deutscher Vorwahlen habe ich hier gepostet:
https://www.administrator.de/contentid/180245#comment-1201885

Grüße Uwe
Bitte warten ..
Ähnliche Inhalte
Windows Server
PowerShell Active Directory
gelöst Frage von makaroniWindows Server8 Kommentare

Ganz kurz und knapp: ALLE Nutzer einer OU inklusive Benutzer von Unterordnern klappt soweit, außer, dass wenn die OU ...

Windows Server

Verbieten Active Directory Objekte zu bearbeiten

Frage von saesch82Windows Server2 Kommentare

Hallo Admins, ich möchte gerne eine Reihe von Accounts haben, welche in der Lage sind Clients in die Domäne ...

Batch & Shell

User im Active Directory mit Powershell erstellen

Frage von XeidazBatch & Shell3 Kommentare

Hallo zusammen, ich bin neu im Forum und wollte mich zu aller erst mal vorstellen. Ich bin 18 Jahre ...

Batch & Shell

Powershell - Excel-Datei in Active Directory schreiben

Frage von ScriptNewbieBatch & Shell2 Kommentare

Hallo liebe Community Scripter, ich bin neu hier im Forum und habe auch leider keinen Ansatz zu meinem Problem ...

Neue Wissensbeiträge
Humor (lol)
IoT-Gefahr: Smartes Aquarium leckt!
Information von Lochkartenstanzer vor 1 TagHumor (lol)3 Kommentare

Moin, Die IoT-Manie hat weitere Opfer gefunden. Ein Casino-Leck durch ein smartes Aquarium: Allerdings haben sie kein Wasser, sondern ...

Router & Routing

Alte Fritzbox 7270 mit VPN und SIP-Telefonie hinter O2 Homebox 6641 als "Modem"

Erfahrungsbericht von the-buccaneer vor 1 TagRouter & Routing3 Kommentare

Nun war es soweit: Auch O2 hat mich mit VOIP zwangsbeglückt. Heute am Privatanschluss, in 2 Wochen ist das ...

Sicherheit

Ungepatchte Remote Code Execution-Lücke in LG NAS

Information von kgborn vor 2 TagenSicherheit

Nutzt wer LG NAS-Einheiten? In den NAS-Einheiten der LG Network Storage-Einheiten gibt es eine sehr unschöne Schwachstelle, die einen ...

Windows Update

Neue Version KB4099950 NIC Einstellungen gehen verloren

Information von sabines vor 2 TagenWindows Update2 Kommentare

Es ist eine neue Version des KB4099950 verfügbar, die das Problem mit den verlorenen Netzwerkeinstellungen lösen soll. Das Datum ...

Heiß diskutierte Inhalte
Sicherheit
Verbindliche Zustellung per E-Mail?
Frage von ahussainSicherheit18 Kommentare

Hallo allerseits, ein Kunde von mir nutzt intensiv Fax. Hauptgrund: zusammen mit einer Empfangsbestätigung ist eine verbindliche Zustellung gewährleistet. ...

Router & Routing
Mikrotik: Routing zwischen Interfaces mit Geräten ohne Gateway
Frage von TonLichtVideoRouter & Routing18 Kommentare

Hallo zusammen, ich komme aus dem Veranstaltungstechnik Bereich und habe zwei Netze um verschiedene Hardware zu Remoten. CONTROL1 192.168.1.0/24 ...

Linux Netzwerk
Raspberry Pi 3: WLAN Power save deaktivieren
Frage von nordie92Linux Netzwerk14 Kommentare

Moin moin, mein Raspberry Pi 3 Model B benötigt eine dauerhaft aktive WLAN-Verbindung. Leider bricht die WLAN-Verbindung nach einigen ...

SAN, NAS, DAS
Entscheidung SAN Dell oder HP
Frage von VincorSAN, NAS, DAS13 Kommentare

Hallo, wir wollen uns für unsere Hyper V Umgebung eine neue SAN Anschaffen. Es laufen 30 VM's darunter, DC; ...