Question
Changer l'encodage de l'ISE
- Nicolas Lang
- Auteur du sujet
- Hors Ligne
- Membre junior
Réduire
Plus d'informations
- Messages : 31
- Remerciements reçus 0
il y a 10 ans 5 mois #17734
par Nicolas Lang
Changer l'encodage de l'ISE a été créé par Nicolas Lang
Coucou tout le monde!
Une question, est-il possible de changer l'encodage au niveau de la console de l'ISE.
Parce que, si je fais un schtasks depuis mon powershell.exe, ca me sort les infos sans problème, mais dans l'ise... aïe aïe...
L'encodage ne doit pas être bon, car les accents sont tous remplacés par d'autres caractères.
Ce qui est étrange, c'est que le $outputencoding de powershell.exe est en \"Ascii\", et quand bien même je prend un caractère type \"é\", il me renvoie le bon code de caractère (233, ici), alors que dans l'ISE => 8218 (donc une virgule). L'encodage
Quelqu'un peut-il éclairer ma lanterne s'il vous plait?
Une question, est-il possible de changer l'encodage au niveau de la console de l'ISE.
Parce que, si je fais un schtasks depuis mon powershell.exe, ca me sort les infos sans problème, mais dans l'ise... aïe aïe...
L'encodage ne doit pas être bon, car les accents sont tous remplacés par d'autres caractères.
Ce qui est étrange, c'est que le $outputencoding de powershell.exe est en \"Ascii\", et quand bien même je prend un caractère type \"é\", il me renvoie le bon code de caractère (233, ici), alors que dans l'ISE => 8218 (donc une virgule). L'encodage
Quelqu'un peut-il éclairer ma lanterne s'il vous plait?
Connexion ou Créer un compte pour participer à la conversation.
- Laurent Dardenne
- Hors Ligne
- Modérateur
Réduire
Plus d'informations
- Messages : 6302
- Remerciements reçus 68
il y a 10 ans 5 mois #17742
par Laurent Dardenne
Tutoriels PowerShell
Réponse de Laurent Dardenne sur le sujet Re:Changer l'encodage de l'ISE
Salut,
Darum écrit:
As-tu essayé de récupérer ces informations avec Get-ScheduledTask ?
Darum écrit:
Sans avoir le code que tu utilises cela me semble difficile. De plus tu n'indiques pas l'OS ni la version de Powershell utilisée.Quelqu'un peut-il éclairer ma lanterne s'il vous plait?
As-tu essayé de récupérer ces informations avec Get-ScheduledTask ?
Tutoriels PowerShell
Connexion ou Créer un compte pour participer à la conversation.
- Nicolas Lang
- Auteur du sujet
- Hors Ligne
- Membre junior
Réduire
Plus d'informations
- Messages : 31
- Remerciements reçus 0
il y a 10 ans 5 mois #17760
par Nicolas Lang
Réponse de Nicolas Lang sur le sujet Re:Changer l'encodage de l'ISE
Le \"code\" c'est juste une ligne :
schtasks /query /s \"nom_serveur\" /fo csv /v
Pour récuperer les infos des tâches planifiées
Je suis sur du windauz 7 avec un Powershell V4 (j'ai mis à jour en pensant que le bug serait corrigé)
Quand aux tâches, non, je n'ai pas essayé.
Plus de détails, quand je fais la commande depuis powershell.exe (je montre juste les headers):
[code:1]\"Nom de l'hôte\",\"Nom de la tâche\",\"Prochaine exécution\",\"Statut\",\"Mode d'ouverture de session\",\"Heure de la dernière exécution\",\"Dernier résultat\",\"Auteur\",\"Tâche à exécuter\",\"Démarrer dans\",\"Commentaire\",\"Statut de la tâche planifiée\",\"Durée d'inactivité\",\"Gestion de l'alimentation\",\"Exécuter en tant qu'utilisateur\",\"Supprimer la tâche si elle n'est pas replanifiée\",\"Arrêter la tâche après X heures et X minutes\",\"Planification\",\"Type de planification\",\"Heure de début\",\"Date de début\",\"Date de fin\",\"Jours\",\"Mois\",\"Répéter : Chaque\",\"Répéter : Jusqu'à : Heure\",\"Répétition : pendant une durée donnée\",\"Répétition : arrêter si l'exécution est toujours en cours\"[/code:1]
Maintenant, la même, en version depuis la console de l'ISE :
[code:1]\"Nom de l'h“te\",\"Nom de la tƒche\",\"Prochaine ex‚cution\",\"Statut\",\"Mode d'ouverture de session\",\"Heure de la derniŠre
ex‚cution\",\"Dernier r‚sultat\",\"Auteur\",\"Tƒche … ex‚cuter\",\"D‚marrer dans\",\"Commentaire\",\"Statut de la tƒche planifi
‚e\",\"Dur‚e d'inactivit‚\",\"Gestion de l'alimentation\",\"Ex‚cuter en tant qu'utilisateur\",\"Supprimer la tƒche si elle n
'est pas replanifi‚e\",\"Arrˆter la tƒche aprŠs X heures et X minutes\",\"Planification\",\"Type de planification\",\"Heure
de d‚but\",\"Date de d‚but\",\"Date de fin\",\"Jours\",\"Mois\",\"R‚p‚terÿ: Chaque\",\"R‚p‚terÿ: Jusqu'…ÿ: Heure\",\"R‚p‚titionÿ:
pendant une dur‚e donn‚e\",\"R‚p‚titionÿ: arrˆter si l'ex‚cution est toujours en cours\"[/code:1]
$outputencoding est le même pour l'ISE et powershell.exe.
La seule manipulation que j'ai trouvé pour changer cela, (mais à faire à chaque fois) c'est de changer le codepage par defaut dans l'ISE
[code:1]chcp 1252[/code:1]
Par défaut c'est 850 (comme dans la console), mais en forcant en 1252 ca me rétablit les caractères accentués...
Mais j'ai toujours pas compris pourquoi ca ne marchait pas ...
J'ai doublement contourné le problème en passant par des objets COM pour accéder aux infos des serveurs distants.
[code:1]
$taskarray = New-Object System.Collections.ArrayList
$schedSvc = New-Object -ComObject Schedule.Service
$schedSvc.Connect($scheduleserver)
# obtenir les taches sur le repertoire racine
$folder = $SchedSvc.GetFolder(\"\"«»)
$tasks = $folder.GetTasks(\"\"«») | Where-Object {$_.name -notin $excludedtasks}
$tasks | % {
$object = new-object System.Object
$object | Add-Member -membertype NoteProperty -Name \"Nom\" -Value $_.name
$object | Add-Member -membertype NoteProperty -Name \"Derniere execution\" -Value $_.lastruntime
$object | Add-Member -membertype NoteProperty -Name \"Dernier resultat\" -Value $_.lasttaskresult
$taskarray.Add($object) |Out-Null
}
$taskarray
[/code:1]<br><br>Message édité par: Darum, à: 30/06/14 16:15
schtasks /query /s \"nom_serveur\" /fo csv /v
Pour récuperer les infos des tâches planifiées
Je suis sur du windauz 7 avec un Powershell V4 (j'ai mis à jour en pensant que le bug serait corrigé)
Quand aux tâches, non, je n'ai pas essayé.
Plus de détails, quand je fais la commande depuis powershell.exe (je montre juste les headers):
[code:1]\"Nom de l'hôte\",\"Nom de la tâche\",\"Prochaine exécution\",\"Statut\",\"Mode d'ouverture de session\",\"Heure de la dernière exécution\",\"Dernier résultat\",\"Auteur\",\"Tâche à exécuter\",\"Démarrer dans\",\"Commentaire\",\"Statut de la tâche planifiée\",\"Durée d'inactivité\",\"Gestion de l'alimentation\",\"Exécuter en tant qu'utilisateur\",\"Supprimer la tâche si elle n'est pas replanifiée\",\"Arrêter la tâche après X heures et X minutes\",\"Planification\",\"Type de planification\",\"Heure de début\",\"Date de début\",\"Date de fin\",\"Jours\",\"Mois\",\"Répéter : Chaque\",\"Répéter : Jusqu'à : Heure\",\"Répétition : pendant une durée donnée\",\"Répétition : arrêter si l'exécution est toujours en cours\"&#65279;[/code:1]
Maintenant, la même, en version depuis la console de l'ISE :
[code:1]\"Nom de l'h“te\",\"Nom de la tƒche\",\"Prochaine ex‚cution\",\"Statut\",\"Mode d'ouverture de session\",\"Heure de la derniŠre
ex‚cution\",\"Dernier r‚sultat\",\"Auteur\",\"Tƒche … ex‚cuter\",\"D‚marrer dans\",\"Commentaire\",\"Statut de la tƒche planifi
‚e\",\"Dur‚e d'inactivit‚\",\"Gestion de l'alimentation\",\"Ex‚cuter en tant qu'utilisateur\",\"Supprimer la tƒche si elle n
'est pas replanifi‚e\",\"Arrˆter la tƒche aprŠs X heures et X minutes\",\"Planification\",\"Type de planification\",\"Heure
de d‚but\",\"Date de d‚but\",\"Date de fin\",\"Jours\",\"Mois\",\"R‚p‚terÿ: Chaque\",\"R‚p‚terÿ: Jusqu'…ÿ: Heure\",\"R‚p‚titionÿ:
pendant une dur‚e donn‚e\",\"R‚p‚titionÿ: arrˆter si l'ex‚cution est toujours en cours\"[/code:1]
$outputencoding est le même pour l'ISE et powershell.exe.
La seule manipulation que j'ai trouvé pour changer cela, (mais à faire à chaque fois) c'est de changer le codepage par defaut dans l'ISE
[code:1]chcp 1252[/code:1]
Par défaut c'est 850 (comme dans la console), mais en forcant en 1252 ca me rétablit les caractères accentués...
Mais j'ai toujours pas compris pourquoi ca ne marchait pas ...
J'ai doublement contourné le problème en passant par des objets COM pour accéder aux infos des serveurs distants.
[code:1]
$taskarray = New-Object System.Collections.ArrayList
$schedSvc = New-Object -ComObject Schedule.Service
$schedSvc.Connect($scheduleserver)
# obtenir les taches sur le repertoire racine
$folder = $SchedSvc.GetFolder(\"\"«»)
$tasks = $folder.GetTasks(\"\"«») | Where-Object {$_.name -notin $excludedtasks}
$tasks | % {
$object = new-object System.Object
$object | Add-Member -membertype NoteProperty -Name \"Nom\" -Value $_.name
$object | Add-Member -membertype NoteProperty -Name \"Derniere execution\" -Value $_.lastruntime
$object | Add-Member -membertype NoteProperty -Name \"Dernier resultat\" -Value $_.lasttaskresult
$taskarray.Add($object) |Out-Null
}
$taskarray
[/code:1]<br><br>Message édité par: Darum, à: 30/06/14 16:15
Connexion ou Créer un compte pour participer à la conversation.
- Laurent Dardenne
- Hors Ligne
- Modérateur
Réduire
Plus d'informations
- Messages : 6302
- Remerciements reçus 68
il y a 10 ans 5 mois #17764
par Laurent Dardenne
Tutoriels PowerShell
Réponse de Laurent Dardenne sur le sujet Re:Changer l'encodage de l'ISE
Essai ceci :
[code:1]
[Console]::OutputEncoding = [Text.Encoding]::Utf8
schtasks /query /s \"nom_serveur\" /fo csv /v
[/code:1]
Darum écrit:
Voir aussi :
p0w3rsh3ll.wordpress.com/2013/04/16/viewing-code-pages/
wishmesh.com/2012/08/powershell-in-unico...dows-server-2012-rc/
[code:1]
[Console]::OutputEncoding = [Text.Encoding]::Utf8
schtasks /query /s \"nom_serveur\" /fo csv /v
[/code:1]
Darum écrit:
Cette question je l'ai tjr mise de côté ...Mais j'ai toujours pas compris pourquoi ca ne marchait pas ...
Voir aussi :
p0w3rsh3ll.wordpress.com/2013/04/16/viewing-code-pages/
wishmesh.com/2012/08/powershell-in-unico...dows-server-2012-rc/
Tutoriels PowerShell
Connexion ou Créer un compte pour participer à la conversation.
- Laurent Dardenne
- Hors Ligne
- Modérateur
Réduire
Plus d'informations
- Messages : 6302
- Remerciements reçus 68
il y a 10 ans 5 mois #17768
par Laurent Dardenne
Tutoriels PowerShell
Réponse de Laurent Dardenne sur le sujet Re:Changer l'encodage de l'ISE
Pour info Tobias Weltner, MVP Powershell, a posé aujourd'hui, sur la mailing list MVP, une question similaire pour l'Allemand.
Une autre solution est d'utiliser ceci :
[code:1]
>Cmd.exe /c echo ÄÖÜäöüß
#Ž™š„”á
>[Console]::OutputEncoding = [System.Text.Encoding]::GetEncoding(437)
> Cmd.exe /c echo ÄÖÜäöüß
#ÄÖÜäöüß
[/code:1]
Ceci semble identique :
[code:1]
>Cmd.exe /c echo àèéùç
#…Š‚—‡
>[Console]::OutputEncoding = [Text.Encoding]::Utf8
>Cmd.exe /c echo àèéùç
#àèéùç
[/code:1]
J'ai demandé confirmation à l'équipe de PS (à savoir si les deux approches sont identiques), si j'ai un retour je te tiens informé.
Une autre solution est d'utiliser ceci :
[code:1]
>Cmd.exe /c echo ÄÖÜäöüß
#Ž™š„”á
>[Console]::OutputEncoding = [System.Text.Encoding]::GetEncoding(437)
> Cmd.exe /c echo ÄÖÜäöüß
#ÄÖÜäöüß
[/code:1]
Ceci semble identique :
[code:1]
>Cmd.exe /c echo àèéùç
#…Š‚—‡
>[Console]::OutputEncoding = [Text.Encoding]::Utf8
>Cmd.exe /c echo àèéùç
#àèéùç
[/code:1]
J'ai demandé confirmation à l'équipe de PS (à savoir si les deux approches sont identiques), si j'ai un retour je te tiens informé.
Tutoriels PowerShell
Connexion ou Créer un compte pour participer à la conversation.
- Laurent Dardenne
- Hors Ligne
- Modérateur
Réduire
Plus d'informations
- Messages : 6302
- Remerciements reçus 68
il y a 10 ans 5 mois #17771
par Laurent Dardenne
Tutoriels PowerShell
Réponse de Laurent Dardenne sur le sujet Re:Changer l'encodage de l'ISE
La réponse :
Utf8 utilise une autre page de code (pseudo). Entre les deux, il peut exister des différences sur certains caractères.
Utf8 utilise une autre page de code (pseudo). Entre les deux, il peut exister des différences sur certains caractères.
Tutoriels PowerShell
Connexion ou Créer un compte pour participer à la conversation.
Temps de génération de la page : 0.137 secondes
- Vous êtes ici :
- Accueil
- forum
- PowerShell
- Discussions générales
- Changer l'encodage de l'ISE