Question
[Résolu] Exception lors de l'appel de «ToString»
- PAWLAK
- Auteur du sujet
- Hors Ligne
- Nouveau membre
-
- Messages : 17
- Remerciements reçus 0
[code:1]if($null -eq $TelephoneMobile){
$FindText = \"TelephoneMobile\"
$ReplaceText = 'Mobile : '+ $ADTelephoneMobile
$MSWord.Selection.Find.Execute($FindText, $MatchCase, $MatchWholeWord, $MatchWildcards, $MatchSoundsLike, $MatchAllWordForms, $Forward, $Wrap, $Format, $ReplaceText, $ReplaceAll)
}
Else{$FindText = \"TelephoneMobile\"
$ReplaceText = \"\"
}[/code:1]
Tout fonctionne.
Même si l'utilisateur n'a pas de téléphone fixe ($ADTelephoneNumber) et même s'il n'a pas de bureau ($ADDepartment), rien ne s'affiche ce qui est normal.
Mais si je remet $ADTelephoneMobile et que je n'ai pas d'info, cela m'affiche le message d'erreur.
Donc c'est vraiment lié à ce bout de code qui est soit en dit en passant identique aux 2 autres ($ADTelephoneNumber et $ADDepartment)
Connexion ou Créer un compte pour participer à la conversation.
- Laurent Dardenne
- Hors Ligne
- Modérateur
-
- Messages : 6311
- Remerciements reçus 68
En début de script, après ces lignes :Ou placer des Write-debug ?
[code:1]
$ADTelePhoneNumber = $ADUser.TelephoneNumber #Telephone
$ADTelephoneMobile = $ADUser.TelephoneMobile #MobileNumber
write-debug ...# pour $ADTelePhoneNumber
write-debug ...# pour $ADTelephoneMobile
[/code:1]
ensuite pour activer :
[code:1]$DebugPreference='Continue'
#désactiver
$DebugPreference='SilentlyContinue'[/code:1]
Tu peux aussi analyser directement les propriétés $ADUser.TelephoneMobile<br><br>Message édité par: Laurent Dardenne, à: 12/02/18 12:18
Tutoriels PowerShell
Connexion ou Créer un compte pour participer à la conversation.
- PAWLAK
- Auteur du sujet
- Hors Ligne
- Nouveau membre
-
- Messages : 17
- Remerciements reçus 0
En cherchant les attributs pour l'Active Directory je me suis rendu compte que TelephoneMobile était mal interprété.
J'ai donc changé par \"Mobile\" et tout est rentré dans l'ordre !
If ($ADMobile -ne \"\") {
$FindText = \"Mobile\"
$ReplaceText = 'Mobile : '+ $ADMobile.ToString()
$MSWord.Selection.Find.Execute($FindText, $MatchCase, $MatchWholeWord, $MatchWildcards, $MatchSoundsLike, $MatchAllWordForms, $Forward, $Wrap, $Format, $ReplaceText, $ReplaceAll )
}
Else {
$FindText = \"Mobile\"
$ReplaceText = \"\"
$MSWord.Selection.Find.Execute($FindText, $MatchCase, $MatchWholeWord, $MatchWildcards, $MatchSoundsLike, $MatchAllWordForms, $Forward, $Wrap, $Format, $ReplaceText, $ReplaceAll )
}
Petite question, comment ajouter un tiret \"-\" entre 2 si il y a les 2 téléphones indiqués ?
J'ai tenté un :
[code:1]if($ADTelephoneNumber -ne \"\" -and $ADMobile -ne \"\"«»)
{
$ReplaceText = 'Ligne Directe : '+ $ADTelephoneNumber.ToString() + ' - ' + 'Mobile : '+ $ADMobile.ToString()
}[/code:1]
Mais malheureusement cela ne fonctionne pas.
Je te remercie<br><br>Message édité par: rico76, à: 12/02/18 14:09
Connexion ou Créer un compte pour participer à la conversation.
- Philippe
- Hors Ligne
- Modérateur
-
- Messages : 1778
- Remerciements reçus 21
comme te la dis Laurent inutile d'utilisé .ToString(), ces deux attributs sont déjà en string dans l'AD
sans .ToString() tu n'aura plus d'erreur :
[code:1] 'Ligne Directe : '+ $ADTelephoneNumber + ' - ' + 'Mobile : '+ $ADMobile
[/code:1]<br><br>Message édité par: 6ratgus, à: 12/02/18 14:31
Connexion ou Créer un compte pour participer à la conversation.
- PAWLAK
- Auteur du sujet
- Hors Ligne
- Nouveau membre
-
- Messages : 17
- Remerciements reçus 0
Oui suis-je bête
[code:1] if($ADTelephoneNumber -ne \"\" -and $ADMobile -ne \"\"«»)
{
$ReplaceText = 'Ligne Directe : '+ $ADTelephoneNumber + ' - ' + 'Mobile : '+ $ADMobile
}[/code:1]
Mais malheureusement je n'ai toujours ce petit tiret entre 2.
Ligne Directe : 02 33 33 33 33 Mobile : 06 45 45 45 45
Connexion ou Créer un compte pour participer à la conversation.
- Laurent Dardenne
- Hors Ligne
- Modérateur
-
- Messages : 6311
- Remerciements reçus 68
Ceci dit ça ne nous dit pas ce qui provoquait l'erreur.
Pour ta construction de chaine tu peux faire ceci :
[code:1]$S='Ligne Directe : {0} - Mobile : {1}' -f $ADTelephoneNumber,$ADMobile
$S[/code:1]
Tutoriels PowerShell
Connexion ou Créer un compte pour participer à la conversation.
- Vous êtes ici :
-
Accueil
-
forum
-
PowerShell
-
Entraide pour les débutants
- [Résolu] Exception lors de l'appel de «ToString»