Question Changer l'encodage de l'ISE

Plus d'informations
il y a 9 ans 9 mois #17734 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? :D

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 9 ans 9 mois #17742 par Laurent Dardenne
Salut,
Darum écrit:

Quelqu'un peut-il éclairer ma lanterne s'il vous plait? :D

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.

As-tu essayé de récupérer ces informations avec Get-ScheduledTask ?

Tutoriels PowerShell

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 9 ans 8 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

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 9 ans 8 mois #17764 par Laurent Dardenne
Essai ceci :
[code:1]
[Console]::OutputEncoding = [Text.Encoding]::Utf8
schtasks /query /s \&quot;nom_serveur\&quot; /fo csv /v
[/code:1]

Darum écrit:

Mais j'ai toujours pas compris pourquoi ca ne marchait pas ... :(

Cette question je l'ai tjr mise de côté :whistle: ...

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.

Plus d'informations
il y a 9 ans 8 mois #17768 par Laurent Dardenne
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]
&gt;Cmd.exe /c echo ÄÖÜäöüß
#Ž™š„”á
&gt;[Console]::OutputEncoding = [System.Text.Encoding]::GetEncoding(437)
&gt; Cmd.exe /c echo ÄÖÜäöüß
#ÄÖÜäöüß
[/code:1]
Ceci semble identique :
[code:1]
&gt;Cmd.exe /c echo àèéùç
#…Š‚—‡
&gt;[Console]::OutputEncoding = [Text.Encoding]::Utf8
&gt;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.

Plus d'informations
il y a 9 ans 8 mois #17771 par Laurent Dardenne
La réponse :
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.082 secondes
Propulsé par Kunena