Page 1 sur 1

Problême d'accent

Posté : 14 déc. 2017 - 09:51
par steph.prevot
Bonjour,
pour passer les PC sous Windows 7 d'IP fixe en DHCP j'ai un soucis avec le "é". Manuellement mon batch passe bien mais j'ai un soucis d'encodage avec WAPT, du coup j'ai tenté de remplacer utf-8 par cp850:

# -*- coding: cp850 -*-
from setuphelpers import *

uninstallkey = []

def install():
print("Mise a jour des interfaces IP")
run (r'reg import DHCP-CLIENT.reg')
run (u'netsh interface ip set dns "Connexion au r‚seau local" dhcp')
run (u'netsh interface ip set address "Connexion au r‚seau local" dhcp')

mais je revient à mon probleme d'encodage avec le message:
Mise a jour des interfaces IP
'ascii' codec can't encode characters in position 42-44: ordinal not in range(128) : faulty string is 'u'netsh interface ip set dns "Connexion au r\xd4\xc7\xdcseau local" dhcp''

Merci de votre aide

Re: Problême d'accent

Posté : 14 déc. 2017 - 17:40
par dcardon
il faut éviter autant que possible les accents dans les commandes run. L'encoding d'entrée et l'encoding de retour ne sont jamais vraiment maîtrisé (ce n'est pas un problème WAPT en soi, c'est un problème de cmd.exe).

Il faut mieux utiliser les commande wmi qui sont exploitable en python, en gros un truc du genre:

import wmi
nic_configs = wmi.WMI().Win32_NetworkAdapterConfiguration(IPEnabled=True)
for nic in nic_configs:
nic.EnableDHCP()

Et n'oubliez pas de vérifier dans le paquet qu'il y a bien un lease disponible pour votre poste avant de faire la bascule!

Re: Problême d'accent

Posté : 15 déc. 2017 - 12:50
par steph.prevot
Salut,

merci du coup de main.
Avec WMI on dépasse largement mon seuil de compétence, du coup je me suis fait un petit script à l'ouverture de session qui fait très bien le boulot.

@+