Bonjour,
J'ai réalisé un script récemment pour ajouter des contacts dans un annuaire Exchange au moyen d'un CSV pré-rempli, mais je n'arrive pas à oter les accents des prénoms et noms quand il y en a...
En recherchant ça et là j'ai trouvé qu'il fallait passer par une fonction et j'en ai dénichées 2 dont une qui ne fonctionnait pas visiblement.
Pour celle qui fonctionne, mon soucis est qu'elle ne me corrige les accents que si j'indique des variables déclarées directement dans mon script (sans appel depuis le CSV). Si je cherche à appeler ma variable depuis le CSV puis de la remanier, l'accent n'est pas supprimé mais remplacé par un ?".
voici mon script actuel :
j'ai remplacé la commande de création de contact exchange par un echo $prenom1 $prenom2 $prenom et j'obtiens des résultats s?verine (2x) et S?Verine pour le dernier
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37 Write-host "######################################################" -ForegroundColor green Write-host "#### Creation contacts via CSV)" -ForegroundColor green $csv = Import-Csv -Path "Contacts.csv" -Delimiter ";" # début fonction de suppression des accents function Remove-accent([string]$string) { $objD = $string.Normalize([Text.NormalizationForm]::FormD) $sb = New-Object Text.StringBuilder for($i = 0; $i -lt $objD.Length; $i++) { $c = [Globalization.CharUnicodeInfo]::GetUnicodeCategory($objD[$i]) if($c -ne [Globalization.UnicodeCategory]::NonSpacingMark) { [void]$sb.Append($objD[$i]) } } return "$sb".Normalize([Text.NormalizationForm]::FormC) } # fin fonction de suppression des accents foreach($user in $csv) { #gestion des champs du fichier CSV $emailAccount = $user.email # adresse email du contact $prenom1= $user.prenom.ToLower() # prénom passé en minuscules $prenom2= Remove-accent($prenom1) # prénom passé sans accents $prenom= (Get-Culture).textinfo.totitlecase($prenom2) # Prenom du contact $nom1= $user.nom.ToUpper() # NOM du contact passé en majuscule $nom= Remove-accent($nom1) # NOM du contact sans accents $fullname= $nom + " " + $prenom # NOM Prenom du contact (nom complet) $alias= $nom + $prenom echo $prenom1 $prenom2 $prenom
Donc en gros comment arriver à décoder l'accent du CSV pour le récupérer en variable.
Visiblement la fonction est OK, c'est plus au niveau de la variable tirée du CSV que mon problème se situe.
Merci par avance pour votre aide![]()
Partager