Bonjour à tout le monde,
J'espère que vous allez bien en ce beau vendredi.
Je viens vous embêter un brin, car pas moyen de faire fonctionner un petit script de mise à jour de comptes AD.
Voici ce qui se passe....
Dans notre AD, on a des comptes qui ont, dans le champ "-StreetAddress", un retour chariot.
Ce qui donne :
Chez Toto
Rue de la Liberte
Ce que je souhaite, c'est de pouvoir faire des corrections "globales" de ce champ (et d'autres), via un fichier Excel.
Mon Excel est OK, avec toutes les colonnes, et un retour chariot (ALT+ENTREE) sur la cellule pour l'adresse.
Après pas mal de tâtonnements, voici le script pour un seul compte dans le fichier source :
Code powershell : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 Import-csv C:\sources\testadresse040615.csv | foreach-object{ $adresse=$_.address -replace ("`n","`r`n") Set-ADUser -Identity samaccountname -Office $_.office -StreetAddress $adresse -POBox $_.bp -PostalCode $_.cp -City $_.town -Country $_.C}
Le souci que j'ai maintenant, c'est quand j'ai plusieurs comptes dans mon Excel, qui n'ont pas ce fameux retour chariot.
Powershell me sort l'erreur suivante :
Ayant allumé un brin mon petit poids, je me dis que le script interprète mal ce que je souhaite faire (lool ).Set-ADUser : replace
Au caractère C:\Users\triplexxx\AppData\Local\Temp\2\4376af25-ed5a-4166-9cf2-e047898ee31a.ps1:4 : 1
+ Set-ADUser -Identity $_.samaccountname -Office $_.office -StreetAddress $adresse ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidOperation : (toto:ADUser) [Set-ADUser], ADInvalidOperationException
+ FullyQualifiedErrorId : replace,Microsoft.ActiveDirectory.Management.Commands.SetADUser
Après maintes recherches, je ne trouve pas de solution pour dire à Powershell de faire le -replace que là où c'est nécessaire.
Auriez-vous une idée ?
Je vous remercie par avance
Partager