Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

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

Frage Entwicklung Batch & Shell

Mitglied: pixel0815

pixel0815 (Level 1) - Jetzt verbinden

24.07.2014, aktualisiert 16:35 Uhr, 1414 Aufrufe, 12 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 ..
Neuester Wissensbeitrag
Humor (lol)

Linkliste für Adventskalender

(3)

Information von nikoatit zum Thema Humor (lol) ...

Ähnliche Inhalte
Windows Server
gelöst Active Directory File Extension - Associated Program (11)

Frage von adm2015 zum Thema Windows Server ...

Windows 8
gelöst Active Directory Default User.v2 Profile - Windows 8.1 Apps Error (4)

Frage von adm2015 zum Thema Windows 8 ...

Windows Server
Active Directory sinnvoll für kleine Firma (15)

Frage von WolfPeano zum Thema Windows Server ...

Windows Server
gelöst Verschlüsselungsmethode Active-Directory Domänen Usern (4)

Frage von User79 zum Thema Windows Server ...

Heiß diskutierte Inhalte
Windows Server
DHCP Server switchen (25)

Frage von M.Marz zum Thema Windows Server ...

SAN, NAS, DAS
gelöst HP-Proliant Microserver Betriebssystem (14)

Frage von Yannosch zum Thema SAN, NAS, DAS ...

Grafikkarten & Monitore
Win 10 Grafikkarte Crash von Software? (13)

Frage von Marabunta zum Thema Grafikkarten & Monitore ...

Windows 7
Verteillösung für IT-Raum benötigt (12)

Frage von TheM-Man zum Thema Windows 7 ...