[PowerShell] Telefonnummer im Active Directory anpassen

derlorenz

Commander
Registriert
März 2011
Beiträge
2.803
Das hinzufügen und entfernen von Attributen im AD per PS ist mir einigermaßen bekannt. Allerdings muss ich nun die vorhandenen Telefonnummern der User pflegen.
Bei uns haben alle User eine Telefonnummer im folgenden Format:

+49 (0)1111 2222-333

nun soll das Ganze dann aber so aussehen:

+49 1111 2222-333 - d.h. die (0) muss weg.

Ich hatte unter folgenden Link schon etwas gefunden, kann es aber aus Mangel an PS-Know-How nicht in eine sauber Abfrage bringen.

Für Tipps und Anregungen bin ich sehr dankbar.

Grüße
Lorenz
 
Probiers mal mit:

Code:
foreach($user in $users)
{
    $newNumber = $user.telephoneNummber.replace("(0)", "")
    Set-Aduser $user -replace @{"telephoneNumber"=$newNumber} -WhatIf
}

$users wäre deine Collection mit ADUsern, bei denen du die Nummer ändern willst...
 
Sorry das ich mich jetzt erst melde. Leider bekomm ich hier eine Fehlermeldung:

Code:
$users = Get-ADUser USER

foreach($user in $users)
{
    $newNumber = $user.telephoneNummber.replace("(0)", "")
    Set-Aduser $user -replace @{"telephoneNumber"=$newNumber} -WhatIf
}
Fehler beim Aufrufen der Methode, da 
[Microsoft.ActiveDirectory.Management.ADPropertyValueCollection] keine Methode 
mit dem Namen "replace" enthält.
In Zeile:5 Zeichen:5
+     $newNumber = $user.telephoneNummber.replace("(0)", "")
+     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : InvalidOperation: (:) [], RuntimeException
    + FullyQualifiedErrorId : MethodNotFound
 
Set-ADUser : Das Argument für den Parameter "Replace" kann nicht überprüft 
werden. Das Argument ist NULL, oder ein Element der Argumentauflistung enthält 
einen NULL-Wert.
In Zeile:6 Zeichen:31
+     Set-Aduser $user -replace @{"telephoneNumber"=$newNumber} -WhatIf
+                               ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : InvalidData: (:) [Set-ADUser], ParameterBindingV 
   alidationException
    + FullyQualifiedErrorId : ParameterArgumentValidationError,Microsoft.Activ 
   eDirectory.Management.Commands.SetADUser

Was mache ich falsch?
 
Zuletzt bearbeitet: (typo)
Whoops, da hat sich noch ein Fehler eingeschlichen: Das Attribute heisst telehoneNumber <-- natürlich mit einem 'm' :)

Mit "Get-ADUser" bekommst du das "telephoneNumber" Attribute nicht zurück. Versuchs mit :

Code:
$users = Get-ADUser "user" -properties telephoneNumber

Wie ich schon gesagt habe, kannst du eine Collection in $users ablegen - geht dann evtl ein wenig schneller wenn du nicht nur 10 Users bearbeiten musst ;)

Und der Switch -WhatIf musst du dann wegnehmen, damit die Änderungen tatsächlich durchgeführt werden.
 
Danke erste Mal :)
Und den Typo hätte ich natürlich auch sehen müssen :freak:

Die Collection kommt dann jetzt nachdem ich erfolgreich das Ganze an meinem Testuser erprobt habe :)

Danke noch Mal für deine Unterstützung!

Grüße
Lorenz
 
Zurück
Oben