[Ecriture] Permission refusée

Vianneyp Messages postés 82 Date d'inscription jeudi 6 juillet 2006 Statut Membre Dernière intervention 6 janvier 2010 - 3 avril 2008 à 19:40
cs_JMO Messages postés 1854 Date d'inscription jeudi 23 mai 2002 Statut Membre Dernière intervention 24 juin 2018 - 3 avril 2008 à 20:57
Bonjour,
Je souhaiterai modifier le fichier host de Windows a l'aide d'un script vbs.
Seulement cela ne fonctionne pas : on me renvoi une erreur "Permission refusée" sur la ligne :
Set Fichier = FSO.CreateTextFile("C:\WINDOWS\system32\drivers\etc\hosts")
Comment doit-je m'y prendre pour modifier ce fichier ?
Peut étre qu'en employant une autre méthode ?

4 réponses

Vianneyp Messages postés 82 Date d'inscription jeudi 6 juillet 2006 Statut Membre Dernière intervention 6 janvier 2010
3 avril 2008 à 20:22
Bon, ok,je suis vraiment trop nul,je n'ai même pas verifié si le fichier était protégé contre l'écriture...
Alors je vais détourner le sujet : comment changer l'attribut d'un fichier en vbs ?
Merci d'avance pour votre aide.
0
cs_ghuysmans99 Messages postés 3983 Date d'inscription jeudi 14 juillet 2005 Statut Membre Dernière intervention 30 juin 2013 16
3 avril 2008 à 20:26
Malheureusement il faut passer par un truc genre FSO parce qu'on ne peut pas utiliser l'API Windows ...
_______________________________________________________________________
VB.NETis good ...VB6is better
0
jmfmarques Messages postés 7668 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 28
3 avril 2008 à 20:40
Bonsoir,

Tiens !

Pas de SetAttr en VBS ? Sûr ?
0
cs_JMO Messages postés 1854 Date d'inscription jeudi 23 mai 2002 Statut Membre Dernière intervention 24 juin 2018 26
3 avril 2008 à 20:57
Bonsoir,

Le fichier hosts existant, tu peux utiliser la méthode OpenTextFile (ou OpenAsTextStream).

Option Explicit
Dim Fso, File, Resultat
Set Fso = CreateObject("Scripting.FileSystemObject")
 Const ForReading 1, ForWriting 2, ForAppending = 8

Set File = Fso.OpenTextFile("C:\WINDOWS\system32\drivers\etc\hosts", ForReading)

Resultat =  File.ReadAll
File.Close

MsgBox Resultat
Set File = Nothing
Set Fso = Nothing

Quant à l'attribut, voir la propriété Attributes de l'objet Fso.

Méthode CreateTextFile:
Crée le nom d'un fichier spécifié et renvoie un objet TextStream qui
peut être utilisé pour lire ou écrire dans le fichier.

object.CreateTextFile(filename[, overwrite[, unicode]])

Arguments:
object
Requis. Doit toujours correspondre à un nom d'objet FileSystemObject ou Folder.

filename
Requis. Expression de chaîne identifiant le fichier à créer.

overwrite
Facultatif. Valeur booléenne qui indique si un fichier existant peut être écrasé.
La valeur est true lorsque le fichier peut être écrasé, false dans le cas contraire.
En cas d'omission, les fichiers existants ne sont pas écrasés.

unicode
Facultatif. Valeur booléenne indiquant si le fichier est créé sous forme d'un fichier
Unicode ou ASCII. La valeur est true si le fichier est créé comme un fichier Unicode,
et false s'il est créé comme un fichier ASCII. En cas d'omission, un fichier ASCII est choisi.

jean-marc
0