Précédent   Forum du club des développeurs et IT Pro > Autres langages > Général Visual Basic 6 et VBScript > VBScript
VBScript Le forum d'entraide sur VBScript. Avant de poster -> La FAQ VBScript
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 11/12/2012, 10h17   #1
foudhil92
Invité de passage
 
Inscription : décembre 2012
Messages : 4
Détails du profil
Informations forums :
Inscription : décembre 2012
Messages : 4
Points : 0
Points : 0
Par défaut Modification fichier host

Bonjour,

Je suis novice dans le langage VBS, voilà je veux ajouter une ligne au fichier host de plusieurs postes. La ligne est "adresse IP nom de machine"
Le fichier host n'est modifiable qu'avec le compte administrateur, j'ai résolu ce problème avec le script ci-dessous mais je n'arrive pas à ajouter les commandes pour modifier le host dans la même fenêtre dos ouverte en administrateur avec mon script:
Code :
1
2
3
4
5
6
7
set WshShell = WScript.CreateObject("WScript.Shell" )
 
WshShell.run "runas /user:domain\administrator %comspec%"  
WScript.Sleep 1000
WshShell.SendKeys "motdepasse"
WshShell.SendKeys "{ENTER}"    
WScript.Sleep 1000
Pourriez-vous m'aider
Merci
foudhil92 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/12/2012, 11h38   #2
Daynvheur
Nouveau Membre du Club
 
Technicien Help Desk
Inscription : décembre 2012
Messages : 23
Détails du profil
Informations personnelles :
Localisation : France

Informations professionnelles :
Activité : Technicien Help Desk

Informations forums :
Inscription : décembre 2012
Messages : 23
Points : 29
Points : 29
Essaie avec ça ?
Code :
1
2
3
4
5
set WshShell = WScript.CreateObject("WScript.Shell" )
LigneEnPlus = "adresse IP nom de machine"
HostFile = "c:\Windows\System32\drivers\etc\host"
command = "runas /user:domain\administrator ""%comspec% /c echo " & LigneEnPlus & ">>""" & HostFile & """"""
WshShell.run command
La commande Echo [texte]>>[fichier] permet d'ajouter du texte à la suite du fichier indiqué.

Dans ce cas précis, un fichier Batch standard serait probablement aussi simple à manier :
Code :
1
2
3
4
5
6
@SETLOCAL
@Set LIGNEENPLUS=adresse IP nom de machine
@Set HOSTFILE=c:\Windows\System32\drivers\etc\host
@REM Ne pas mettre de guillemets ci-dessus
RUNAS /user:domain\administrator "cmd /c echo %LIGNEENPLUS%>>"%HOSTFILE%""
@ENDLOCAL
Par-contre, placer les identifiants administrateurs dans un fichier texte, je trouve que c'est une mauvaise idée. Et les faire remplir automatiquement, je trouve que c'est un appel à faille.
Daynvheur est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/12/2012, 12h01   #3
foudhil92
Invité de passage
 
Inscription : décembre 2012
Messages : 4
Détails du profil
Informations forums :
Inscription : décembre 2012
Messages : 4
Points : 0
Points : 0
Merci Daynvheur

Mais j'ai un problème le fichier host n'est pas modifier avec le script que tu m'as donné
foudhil92 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/12/2012, 12h11   #4
Daynvheur
Nouveau Membre du Club
 
Technicien Help Desk
Inscription : décembre 2012
Messages : 23
Détails du profil
Informations personnelles :
Localisation : France

Informations professionnelles :
Activité : Technicien Help Desk

Informations forums :
Inscription : décembre 2012
Messages : 23
Points : 29
Points : 29
Il ne serait pas en lecture-seule, par hasard ?
Daynvheur est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/12/2012, 14h51   #5
foudhil92
Invité de passage
 
Inscription : décembre 2012
Messages : 4
Détails du profil
Informations forums :
Inscription : décembre 2012
Messages : 4
Points : 0
Points : 0
ça fonctionne lorsque j'ouvre la fenêtre dos en admin et que je tape directement les commandes à la main. Mais ça fonctionne pas avec le script.
foudhil92 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/12/2012, 17h48   #6
hackoofr
Expert Confirmé
 
Avatar de hackoofr
 
Homme Mehdi Tounisiano
Enseignant
Inscription : juin 2009
Messages : 1 629
Détails du profil
Informations personnelles :
Nom : Homme Mehdi Tounisiano
Âge : 38
Localisation : Tunisie

Informations professionnelles :
Activité : Enseignant

Informations forums :
Inscription : juin 2009
Messages : 1 629
Points : 3 689
Points : 3 689
Citation:
Envoyé par foudhil92 Voir le message
ça fonctionne lorsque j'ouvre la fenêtre dos en admin et que je tape directement les commandes à la main. Mais ça fonctionne pas avec le script.

Essayez ce code :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
Option Explicit
Dim Ws,WshEnv,WinPath,ProcessEnv,FSO,HostFile,File,LIGNEENPLUS,sUser,sPass,sCmd,rc
LIGNEENPLUS="adresse IP nom de machine Test"
set Ws = CreateObject("WScript.Shell")
set WshEnv = Ws.Environment("Process")
WinPath = WshEnv("SystemRoot")&"\System32\runas.exe"
HostFile = WshEnv("SystemRoot")&"\System32\drivers\etc\host"
set FSO = CreateObject("Scripting.FileSystemObject")
if  Not FSO.FileExists(HostFile) then
    MsgBox "Le fichier Host n'existe pas !",16,"Le fichier Host n'existe pas !"
    Wscript.Quit
end if
sUser = WshEnv("USERNAME")
sPass="VotrePassword"& VBCRLF 'Modifiez cette ligne par votre mot de passe
sCmd="%comspec% /c echo " & LigneEnPlus & ">>" & HostFile &""
rc=Ws.Run("runas /user:" & qq(sUser) & " " & qq(sCmd),2,FALSE)
Wscript.Sleep 1000
Ws.AppActivate(WinPath)
Ws.SendKeys sPass
 
Function qq(strIn)
qq = Chr(34) & strIn & Chr(34)
End Function
hackoofr est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 23h14.


 
 
 
 
Partenaires

Hébergement Web