Question
Formatage d'un numéro de téléphone
- Fontaine
- Auteur du sujet
- Hors Ligne
- Nouveau membre
-
Réduire
Plus d'informations
- Messages : 10
- Remerciements reçus 0
il y a 3 mois 4 semaines - il y a 3 mois 3 semaines #33012
par Fontaine
Formatage d'un numéro de téléphone a été créé par Fontaine
Bonjour à tous,
C'est une bouteille à la mer que je jette ici, en désespoir de cause et après avoir multi recherché dans Google et essayé ce qui était à mon niveau.
Mon projet sur lequel j'ai bien avancé et que je pensais terminé est un script PowerShell permettant de récupérer les valeurs d'attribut dans l'AD pour générer une signature Outlook à partir d'un modèle de signature.
Ainsi je récupérer les infos voulues dans des variables comme suit :
Seulement je pêche pour un détail et je ne parviens pas à m'en sortir.
Mon attribut telephonenumber dans l'ad contient les numéros de téléphone sous cette forme : 0235000000
Et je voudrais pouvoir formater ce numéro lorsque je récupère sa valeur plutôt sous cette forme : 02 35 00 00 00
Inspiré de plusieurs sujets sur le web, je définis donc une nouvelle variable :
Seulement je récupère ce résultat dans mon fichier généré au lieu du numéro.
"Tel.: System.DirectoryServices.PropertyValueCollection"
Alors qu'en testant cette mise en forme dans une console PS, cela y va bien.
Il y a certainement un domaine qui m'échappe mais je ne parviens pas à trouver.
Je suis donc preneur de toutes aides afin que je ne m'arrache pas les cheveux qu'il me reste.
Merci par avance.
C'est une bouteille à la mer que je jette ici, en désespoir de cause et après avoir multi recherché dans Google et essayé ce qui était à mon niveau.
Mon projet sur lequel j'ai bien avancé et que je pensais terminé est un script PowerShell permettant de récupérer les valeurs d'attribut dans l'AD pour générer une signature Outlook à partir d'un modèle de signature.
Ainsi je récupérer les infos voulues dans des variables comme suit :
# récupération des informations personnelles dans l'AD
$Info=[ADSI] "LDAP: / / $ADpath2"
$Prenom=$info.givenname # récupération du Prénom.
$Nom=$info.sn # récupération du Nom.
$Tel=$info.telephonenumber # récupération du téléphone fixe
$Mobile=$info.mobile # récupération du num de portable
$Mail=$info.mail # récupération de l'adresse email.
Seulement je pêche pour un détail et je ne parviens pas à m'en sortir.
Mon attribut telephonenumber dans l'ad contient les numéros de téléphone sous cette forme : 0235000000
Et je voudrais pouvoir formater ce numéro lorsque je récupère sa valeur plutôt sous cette forme : 02 35 00 00 00
Inspiré de plusieurs sujets sur le web, je définis donc une nouvelle variable :
$PhoneNumberform = "{0:0# ## ## ## ##}" -f $Tel
Seulement je récupère ce résultat dans mon fichier généré au lieu du numéro.
"Tel.: System.DirectoryServices.PropertyValueCollection"
Alors qu'en testant cette mise en forme dans une console PS, cela y va bien.


Il y a certainement un domaine qui m'échappe mais je ne parviens pas à trouver.
Je suis donc preneur de toutes aides afin que je ne m'arrache pas les cheveux qu'il me reste.
Merci par avance.
Dernière édition: il y a 3 mois 3 semaines par Fontaine.
Connexion ou Créer un compte pour participer à la conversation.
- Laurent Dardenne
- Hors Ligne
- Modérateur
-
Réduire
Plus d'informations
- Messages : 6278
- Remerciements reçus 65
il y a 3 mois 3 semaines #33016
par Laurent Dardenne
Tutoriels PowerShell
Réponse de Laurent Dardenne sur le sujet Formatage d'un numéro de téléphone
Salut,
il faut analyser la structure de l'objet manipulé avec Get-Member.
Ici "Tel.: System.DirectoryServices.PropertyValueCollection" indique que la propriété/variable est un tableau contenant + numéros de téléphone.
>>Alors qu'en testant cette mise en forme dans une console PS, cela y va bien.
Toi tu affiches une string mais ton code manipule un tableau.
Et l'opérateur -F attend en paramètre un tableau d'objet, ça tombe en marche
il faut analyser la structure de l'objet manipulé avec Get-Member.
Ici "Tel.: System.DirectoryServices.PropertyValueCollection" indique que la propriété/variable est un tableau contenant + numéros de téléphone.
>>Alors qu'en testant cette mise en forme dans une console PS, cela y va bien.
Toi tu affiches une string mais ton code manipule un tableau.
Et l'opérateur -F attend en paramètre un tableau d'objet, ça tombe en marche

Tutoriels PowerShell
Connexion ou Créer un compte pour participer à la conversation.
- Fontaine
- Auteur du sujet
- Hors Ligne
- Nouveau membre
-
Réduire
Plus d'informations
- Messages : 10
- Remerciements reçus 0
il y a 3 mois 3 semaines #33017
par Fontaine
Réponse de Fontaine sur le sujet Formatage d'un numéro de téléphone
Bonjour Laurent,
Merci pour ta réponse.
Je me suis basé sur des exemples trouvé sur internet et je confesse ne pas maitriser tout le vocabulaire.
Du coup si je comprend bien , c'est cet exemple de formatage qui met en forme en tableau "$PhoneNumberform = "{0:0# ## ## ## ##}" -f $Tel" que je ne peux pas récupérer ensuite en variable par ce qu'une string est attendu?
Connais tu de ce fait un autre moyen de mettre en forme un numéro de téléphone ?
Merci pour ta réponse.
Je me suis basé sur des exemples trouvé sur internet et je confesse ne pas maitriser tout le vocabulaire.
Du coup si je comprend bien , c'est cet exemple de formatage qui met en forme en tableau "$PhoneNumberform = "{0:0# ## ## ## ##}" -f $Tel" que je ne peux pas récupérer ensuite en variable par ce qu'une string est attendu?
Connais tu de ce fait un autre moyen de mettre en forme un numéro de téléphone ?
Connexion ou Créer un compte pour participer à la conversation.
- Laurent Dardenne
- Hors Ligne
- Modérateur
-
Réduire
Plus d'informations
- Messages : 6278
- Remerciements reçus 65
il y a 3 mois 3 semaines #33020
par Laurent Dardenne
Tutoriels PowerShell
Réponse de Laurent Dardenne sur le sujet Formatage d'un numéro de téléphone
>>Du coup si je comprend bien , c'est cet exemple de formatage qui met en forme en tableau "$PhoneNumberform = "{0:0# ## ## ## ##}" -f $Tel"
>>que je ne peux pas récupérer ensuite en variable par ce qu'une string est attendu?
Non, je parlais du code de ta recopie d'écran.
Ceci est le problème :Le champ telephonenumber peut contenir 1 ou + numéros de téléphone mais qu'il y en ait 0 ou 1 ou + tu manispule un tableau. Ensuite c'est le code qui formate ( qu'on ne connait pas ici) qui doit être adapté.
Déjà essaie ceci :Et ceci suppose qu'il existe au moins un numéro. Pour être averti, sans ajouter de test, il est préférable d'afficher le contenu d'une variable entre guillemet simple :
>>que je ne peux pas récupérer ensuite en variable par ce qu'une string est attendu?
Non, je parlais du code de ta recopie d'écran.
Ceci est le problème :
$Tel=$info.telephonenumber # récupération du téléphone fixe
Déjà essaie ceci :
$Tel=$info.telephonenumber[0] # récupération du PREMIER numéro de téléphone fixe
"tel : '$tel'"
Tutoriels PowerShell
Connexion ou Créer un compte pour participer à la conversation.
- Laurent Dardenne
- Hors Ligne
- Modérateur
-
Réduire
Plus d'informations
- Messages : 6278
- Remerciements reçus 65
il y a 3 mois 3 semaines #33021
par Laurent Dardenne
Tutoriels PowerShell
Réponse de Laurent Dardenne sur le sujet Formatage d'un numéro de téléphone
Je n'ai pas d'AD sous la main pour créer un code d'exemple, mais tu peux consulter ce post : www.365admin.com.au/2018/04/how-to-force...to-export-multi.html
Ce qui passe dans ce cas est que Powershell appel la méthode ToString() de la classe mais celle-ci ne redéfinie pas cette méthode elle utilise donc celle de base qui affiche le nom du type de l'objet .
Ce qui passe dans ce cas est que Powershell appel la méthode ToString() de la classe mais celle-ci ne redéfinie pas cette méthode elle utilise donc celle de base qui affiche le nom du type de l'objet .
Tutoriels PowerShell
Connexion ou Créer un compte pour participer à la conversation.
- Fontaine
- Auteur du sujet
- Hors Ligne
- Nouveau membre
-
Réduire
Plus d'informations
- Messages : 10
- Remerciements reçus 0
il y a 3 mois 3 semaines #33040
par Fontaine
Réponse de Fontaine sur le sujet Formatage d'un numéro de téléphone
Bonjour Laurent et merci pour ces précieux conseils.
Je n'avais effectivement pas pris en compte que le champ telephonenumber était un tableau en définitive.
L'établissement de la variable comme suggéré:
$Tel=$info.telephonenumber[0]
Me permet bien d'isoler le numéro de téléphone et donc ne plus avoir de message de type "System.DirectoryServices.PropertyValueCollection".
A partir de ce point, j'étais plutôt confiant pour formater ensuite mon numéro de téléphone.
Peu importe le code que j'utilise la valeur reste irrémédiablement sans formatage .
J'ai donc utilisé une solution de contournement pour arriver à mes fins.
J'utilise un fichier temporaire pour déposer le résultat et le réimporter ensuite à partir d'un csv et là, le formatage fonctionne...
Je n'avais effectivement pas pris en compte que le champ telephonenumber était un tableau en définitive.
L'établissement de la variable comme suggéré:
$Tel=$info.telephonenumber[0]
Me permet bien d'isoler le numéro de téléphone et donc ne plus avoir de message de type "System.DirectoryServices.PropertyValueCollection".
A partir de ce point, j'étais plutôt confiant pour formater ensuite mon numéro de téléphone.
Peu importe le code que j'utilise la valeur reste irrémédiablement sans formatage .
J'ai donc utilisé une solution de contournement pour arriver à mes fins.
# récupération des informations personnelles dans l'AD
$Info=[ADSI] "LDAP: / / $ADpath2"
$Prenom=$info.givenname # récupération du Prénom.
$Nom=$info.sn # récupération du Nom.
$Tel=$info.telephonenumber[0] # récupération du PREMIER numéro de téléphone fixe
$Mobile=$info.mobile # récupération du num de portable
$Mail=$info.mail # récupération de l'adresse email.
#$PhoneNumberform = $telformat
$mobileform=$Mobile
#Recuperation pour formatage du numéro de tel
New-Item $localpathSH\Microsoft\Signatures\tel.csv
Set-Content -path $localpathSH\Microsoft\Signatures\tel.csv -value "Tel"
ADD-content -path $localpathSH\Microsoft\Signatures\tel.csv -value "$Tel"
$telformat= Import-CSV -Path $localpathSH\Microsoft\Signatures\tel.csv -Encoding UTF8
Foreach($Telformatage in $telformat){
$telformate = $Telformatage.Tel
}
#Mise en forme du numéro de tel
$PhoneNumberform = [String]::Format('{0:0# ## ## ## ##}',[int]$telformate)
J'utilise un fichier temporaire pour déposer le résultat et le réimporter ensuite à partir d'un csv et là, le formatage fonctionne...
Connexion ou Créer un compte pour participer à la conversation.
Temps de génération de la page : 0.053 secondes
- Vous êtes ici :
-
Accueil
-
forum
-
PowerShell
-
Entraide pour les débutants
- Formatage d'un numéro de téléphone