Question
[Résolu] Traitement chaine de caractère
- Pierre
- Auteur du sujet
- Hors Ligne
- Nouveau membre
Réduire
Plus d'informations
- Messages : 5
- Remerciements reçus 0
il y a 11 ans 8 mois #12502
par Pierre
[Résolu] Traitement chaine de caractère a été créé par Pierre
Bonjour à tous,
je sollicite votre aide pour un petit souci.
Je récupère d'un AD une liste d'utilisateurs de cette façon :
[code:1]Get-QADUser -Enabled -searchroot \"domaine/ou\" | Where {$_.mail -match \"externe\"} | Select company, sn, givenname, mail, department, manager, accountexpires | Sort company | Export-Csv c:\mail_ext.txt -Encoding Unicode[/code:1]
Jusqu'ici tout va bien mais dans la colonne \"manager\" de mon fichier j'obtiens le DN du style CN=jean némar,OU=PROGICIEL,OU=PARIS,DC=domaine que je voudrais remanier pour récupérer uniquement le nom et le prénom du début tout en gardant le reste du fichier intact.
Je n'ai pas trouvé comment modifier le \"manager\" directement dans le \"select\" :
[code:1]Select company, sn, givenname, mail, department, manager.split(\"[=,]\"«»), accountexpires[/code:1]
je me suis alors dirigé vers ça :
[code:1]Import-Csv c:\mail_ext.txt | foreach {$_.manager.split(\"[=,]\"«»)[1]}[/code:1]
Qui me renvoie ma colonne manager modifiée juste comme je le veux mais je ne sais pas comment récupérer le résultat dans un nouveau fichier txt avec mes autres colonnes (company, sn, etc.).
C'est à ce moment que j'implore votre aide car j'enrage d'être coincé là-dessus... Merci par avance!<br><br>Message édité par: Lepiero, à: 9/08/12 17:57
je sollicite votre aide pour un petit souci.
Je récupère d'un AD une liste d'utilisateurs de cette façon :
[code:1]Get-QADUser -Enabled -searchroot \"domaine/ou\" | Where {$_.mail -match \"externe\"} | Select company, sn, givenname, mail, department, manager, accountexpires | Sort company | Export-Csv c:\mail_ext.txt -Encoding Unicode[/code:1]
Jusqu'ici tout va bien mais dans la colonne \"manager\" de mon fichier j'obtiens le DN du style CN=jean némar,OU=PROGICIEL,OU=PARIS,DC=domaine que je voudrais remanier pour récupérer uniquement le nom et le prénom du début tout en gardant le reste du fichier intact.
Je n'ai pas trouvé comment modifier le \"manager\" directement dans le \"select\" :
[code:1]Select company, sn, givenname, mail, department, manager.split(\"[=,]\"«»), accountexpires[/code:1]
je me suis alors dirigé vers ça :
[code:1]Import-Csv c:\mail_ext.txt | foreach {$_.manager.split(\"[=,]\"«»)[1]}[/code:1]
Qui me renvoie ma colonne manager modifiée juste comme je le veux mais je ne sais pas comment récupérer le résultat dans un nouveau fichier txt avec mes autres colonnes (company, sn, etc.).
C'est à ce moment que j'implore votre aide car j'enrage d'être coincé là-dessus... Merci par avance!<br><br>Message édité par: Lepiero, à: 9/08/12 17:57
Connexion ou Créer un compte pour participer à la conversation.
- Matthew BETTON
- Hors Ligne
- Membre platinium
Réduire
Plus d'informations
- Messages : 968
- Remerciements reçus 0
il y a 11 ans 8 mois #12503
par Matthew BETTON
Réponse de Matthew BETTON sur le sujet Re:Traitement chaine de caractère
Bonsoir,
Un délire à moi
Une solution :
[code:1]Get-QADUser -Enabled -searchroot \"domaine/ou\" | Where {$_.mail -match \"externe\"} | Select company, sn, givenname, mail, department, @{Name=\"manager\";Expression={$_.manager.split(\"[=,]\"«»)[1]}}, accountexpires | Sort company | Export-Csv c:\mail_ext.txt -Encoding Unicode[/code:1]
Le Select-Object permet d'utiliser une propriété calculée.
Pour comprendre :
[code:1]PS> Get-Help Select-Object -Parameter Property
-Property <Object[]>
Spécifie les propriétés à sélectionner. Les caractères génériques sont autorisés.
La valeur du paramètre Property peut être une nouvelle propriété calculée. Pour créer une propriété calculée, utili
sez une table de hachage. Les clés valides sont :
-- Name (ou Label) <chaîne>
-- Expression <chaîne> ou <bloc de script>
Obligatoire ? false
Position ? 1
Valeur par défaut
Accepter l'entrée de pipeline ? false
Accepter les caractères génériques ? true
[/code:1]
@ +
Matthew
... j'enrage d'être coincé là-dessus ...
la peur mène à la colère, la colère mène à la haine, la haine... mène à la souffrance.
Un délire à moi
Une solution :
[code:1]Get-QADUser -Enabled -searchroot \"domaine/ou\" | Where {$_.mail -match \"externe\"} | Select company, sn, givenname, mail, department, @{Name=\"manager\";Expression={$_.manager.split(\"[=,]\"«»)[1]}}, accountexpires | Sort company | Export-Csv c:\mail_ext.txt -Encoding Unicode[/code:1]
Le Select-Object permet d'utiliser une propriété calculée.
Pour comprendre :
[code:1]PS> Get-Help Select-Object -Parameter Property
-Property <Object[]>
Spécifie les propriétés à sélectionner. Les caractères génériques sont autorisés.
La valeur du paramètre Property peut être une nouvelle propriété calculée. Pour créer une propriété calculée, utili
sez une table de hachage. Les clés valides sont :
-- Name (ou Label) <chaîne>
-- Expression <chaîne> ou <bloc de script>
Obligatoire ? false
Position ? 1
Valeur par défaut
Accepter l'entrée de pipeline ? false
Accepter les caractères génériques ? true
[/code:1]
@ +
Matthew
Connexion ou Créer un compte pour participer à la conversation.
- Matthew BETTON
- Hors Ligne
- Membre platinium
Réduire
Plus d'informations
- Messages : 968
- Remerciements reçus 0
il y a 11 ans 8 mois #12504
par Matthew BETTON
Réponse de Matthew BETTON sur le sujet Re:Traitement chaine de caractère
Un ajout... Au sujet du Export-Csv, utilises le paramètre '-NoTypeInformation' qui permet d'omettre les informations de type du fichier CSV.
[code:1]PS>Get-Help Export-Csv -parameter NoTypeInformation
-NoTypeInformation [<SwitchParameter>]
Omet les informations de type du fichier CSV. Par défaut, la première ligne du fichier CSV contient « #TYPE », suiv
i du nom complet du type d'objet .NET Framework.
Obligatoire ? false
Position ? named
Valeur par défaut
Accepter l'entrée de pipeline ? false
Accepter les caractères génériques ? false
[/code:1]
[code:1]PS>Get-Help Export-Csv -parameter NoTypeInformation
-NoTypeInformation [<SwitchParameter>]
Omet les informations de type du fichier CSV. Par défaut, la première ligne du fichier CSV contient « #TYPE », suiv
i du nom complet du type d'objet .NET Framework.
Obligatoire ? false
Position ? named
Valeur par défaut
Accepter l'entrée de pipeline ? false
Accepter les caractères génériques ? false
[/code:1]
Connexion ou Créer un compte pour participer à la conversation.
- Pierre
- Auteur du sujet
- Hors Ligne
- Nouveau membre
Réduire
Plus d'informations
- Messages : 5
- Remerciements reçus 0
il y a 11 ans 8 mois #12505
par Pierre
Réponse de Pierre sur le sujet Re:Traitement chaine de caractère
Je savais bien que c'était simple (enfin ça dépend pour qui!).
Tu es mon sauveur et du coup je suis beaucoup moins enragé (et donc je souffre moins .
Et ce petit truc que je ne connaissais pas va me resservir pour plein d'autres scripts, c'est génial!
Merci aussi pour le -NoTypeInformation... je l'avais oublié!
Tu es mon sauveur et du coup je suis beaucoup moins enragé (et donc je souffre moins .
Et ce petit truc que je ne connaissais pas va me resservir pour plein d'autres scripts, c'est génial!
Merci aussi pour le -NoTypeInformation... je l'avais oublié!
Connexion ou Créer un compte pour participer à la conversation.
Temps de génération de la page : 0.071 secondes
- Vous êtes ici :
- Accueil
- forum
- PowerShell
- Entraide pour les débutants
- [Résolu] Traitement chaine de caractère