Question [Résolu] Exception lors de l'appel de «ToString»

Plus d'informations
il y a 8 ans 1 mois #24975 par PAWLAK
Si j'enlève le code suivant :

[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. :P

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.

Plus d'informations
il y a 8 ans 1 mois #24976 par Laurent Dardenne
rico76 écrit:

Ou placer des Write-debug ?

En début de script, après ces lignes :
[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.

Plus d'informations
il y a 8 ans 1 mois #24981 par PAWLAK
Trouvé ! :woohoo: :silly:

En cherchant les attributs pour l'Active Directory je me suis rendu compte que TelephoneMobile était mal interprété.

J'ai donc changé par \&quot;Mobile\&quot; et tout est rentré dans l'ordre !

If ($ADMobile -ne \&quot;\&quot;) {
$FindText = \&quot;Mobile\&quot;
$ReplaceText = 'Mobile : '+ $ADMobile.ToString()
$MSWord.Selection.Find.Execute($FindText, $MatchCase, $MatchWholeWord, $MatchWildcards, $MatchSoundsLike, $MatchAllWordForms, $Forward, $Wrap, $Format, $ReplaceText, $ReplaceAll )
}
Else {
$FindText = \&quot;Mobile\&quot;
$ReplaceText = \&quot;\&quot;
$MSWord.Selection.Find.Execute($FindText, $MatchCase, $MatchWholeWord, $MatchWildcards, $MatchSoundsLike, $MatchAllWordForms, $Forward, $Wrap, $Format, $ReplaceText, $ReplaceAll )

}


Petite question, comment ajouter un tiret \&quot;-\&quot; entre 2 si il y a les 2 téléphones indiqués ?

J'ai tenté un :

[code:1]if($ADTelephoneNumber -ne \&quot;\&quot; -and $ADMobile -ne \&quot;\&quot;«»)
{
$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.

Plus d'informations
il y a 8 ans 1 mois #24982 par Philippe
salut rico76 et Laurent

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.

Plus d'informations
il y a 8 ans 1 mois #24983 par PAWLAK
Bonjour 6ratgus,

Oui suis-je bête :unsure:

[code:1] if($ADTelephoneNumber -ne \&quot;\&quot; -and $ADMobile -ne \&quot;\&quot;«»)
{
$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.

Plus d'informations
il y a 8 ans 1 mois #24986 par Laurent Dardenne
Bravo :)
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.

Temps de génération de la page : 0.060 secondes
Propulsé par Kunena