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

Frage Entwicklung Batch & Shell

GELÖST

Powershell - Active Directory Nummern bearbeiten

Mitglied: pixel0815

pixel0815 (Level 1) - Jetzt verbinden

24.07.2014, aktualisiert 16:35 Uhr, 1751 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 ...

Microsoft
Powershell Active Directory: Nur einen Benutzername ausgeben!
gelöst Frage von gabeBUMicrosoft3 Kommentare

Hallo Zusammen Mein Script wächst und wächst. Ich kann jetzt schon Benutzer per CSV hinzufügen mit richtigen Passwort und ...

Neue Wissensbeiträge
Router & Routing

PfSense als Addon auf QNAP

Information von magicteddy vor 4 StundenRouter & Routing1 Kommentar

Moin, für Spielereien eine ganz nette Idee aber ich fürchte das soetwas auch als echte Firewall genutzt wird: In ...

Datenschutz

Teamviewer kommt für IoT-Geräte wie den Raspberry Pi

Information von magicteddy vor 11 StundenDatenschutz

Moin, jetzt werden IoT Geräte endgültig zur Wanze? Anscheinend kann man auf einem Dashboard seine Geräte visualisieren Ich stelle ...

Microsoft

Letzte Updates für Win10 und Server2016 müssen bei Bedarf über den Update catalogue in den WSUS importiert werden!

Tipp von DerWoWusste vor 16 StundenMicrosoft1 Kommentar

automatisch kommt da nichts an im WSUS und auch nicht im SCCM. Siehe Hinweise zum Bezug der jeweils neuesten ...

Linux

Meltdown und Spectre: Linux Update

Information von Frank vor 3 TagenLinux

Meltdown (Variante 3 des Prozessorfehlers) Der Kernel 4.14.13 mit den Page-Table-Isolation-Code (PTI) ist nun für Fedora freigegeben worden. Er ...

Heiß diskutierte Inhalte
Netzwerkmanagement
Preis für Wartungsvertrag ok?
gelöst Frage von a-za-zNetzwerkmanagement22 Kommentare

Hallo! Mal ne Frage, weil ich mich mit dem akzeptablen Preis für einen Reaktionszeitvertrag nicht auskenne. Meine Firma hat ...

Windows Netzwerk
Ist ein Portforwarding auf einen PC ohne lauschendes Programm ein (großes) Sicherheitsproblem?
Frage von PluwimWindows Netzwerk13 Kommentare

Hallo zusammen, zur Fernwartung eines Rechners an einem anderen Ort nutze ich VNC. Da dieser Rechner einfach nur eine ...

Windows Server
Terminal Server 2016 erkennt Berechtigungen nicht
gelöst Frage von Thomas2Windows Server10 Kommentare

Hallo Administratoren, folgendes Problem stellt sich dar: Es gibt zwei Windows Server 2016, die als Terminal Server fungieren. Jetzt ...

Sonstige Systeme
7-zip: Programm frägt nach Passwort erst bei einzelnen Dateien
Frage von freeskierchrisSonstige Systeme7 Kommentare

Guten Morgen, ich habe ein Problem beim Arbeiten mit 7-zip: Wenn ich die einzelnen Dateien zu einem Archiv verpacke ...