Page 1 sur 1

[R] RunAs avec un script VBS

Posté : mer. 08 juil. 2009 16:32
par guillaume
Bonjour,

j'ai un script VBS qui me permet de changer la passerelle d'une connection réseau :

Code : Tout sélectionner

strComputer = "."
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
Set colNetAdapters = objWMIService.ExecQuery _
("Select * from Win32_NetworkAdapterConfiguration where IPEnabled=TRUE")
strGateway = Array("10.1.0.253")
strGatewayMetric = Array(1)
For Each objNetAdapter in colNetAdapters
errGateways = objNetAdapter.SetGateways(strGateway, strGatewaymetric)
If errEnable = 0 Then
WScript.Echo "The IP address has been changed."
Else
WScript.Echo "The IP address could not be changed."
End If
Next

Le problème c'est que pour fonctionner ce script doit être executé en admin

j'ai pensé à faire un RunAs ( $DomainUserName , $DomainName , $UserPassword , 0 , 'c:\script.vbs', '', @SW_HIDE )

Mais en ayant parcouru le forum il me semble qu'autoit ne permet pas cette fonction.

Y a t - il un moyen de lancer ce vbs avec les droits admin ?
(je ne pense pas être capable de convertir le vbs en autoit)

Merci à vous

Re: [..] RunAs avec un script VBS

Posté : mer. 08 juil. 2009 17:03
par softwater
Hello,

Il y a une solution ici
http://www.autoitscript.fr/forum/viewto ... 737#p18737

Voir 2ème code et utiliser RunAs au lieu de Run sur la première ligne

Re: [..] RunAs avec un script VBS

Posté : jeu. 09 juil. 2009 17:08
par guillaume
Merci beaucoup je vais essayer de caler ça dans mon RunAs

Re: [R] RunAs avec un script VBS

Posté : jeu. 09 juil. 2009 20:09
par ani
Bonjour,
Voici le code vbs transformé en AU3

Code : Tout sélectionner

Global $strGateway[1], $strGatewayMetric[1]
$strComputer = "."
Global $objWMIService = ObjGet("winmgmts:\\" & $strComputer & "\root\cimv2")
Global $colNetAdapters = $objWMIService.ExecQuery("Select * from Win32_NetworkAdapterConfiguration where IPEnabled=TRUE")
$strGateway[0] = "10.1.0.253"
$strGatewayMetric[0] = 1
For $objNetAdapter in $colNetAdapters
    $errGateways = $objNetAdapter.SetGateways($strGateway, $strGatewaymetric)
    If $errEnable = 0 Then
        msgbox(0,"","The IP address has been changed.")
    Else
        msgbox(0,"","The IP address could not be changed.")
    EndIf
Next
On peut aussi imaginer une fonction
Func ChangeIP($ip,$Gateway,$subnet="255.255.255.0")
.....
Endfunc

Le script change toute les adresses de toute les cartes ?
il serait pas mieux de changer juste la carte qu'on désire ?
en regardeant le nom ? $objNetAdapter.caption
Func ChangeIP($Carte,$ip,$Gateway,$subnet="255.255.255.0")
.....
Endfunc

bonne continuation ;)

Re: [R] RunAs avec un script VBS

Posté : ven. 10 juil. 2009 13:59
par guillaume
Alors là franchement merci beaucoup, c'est exactement ce qu'il me fallait !

Effectivement je change l'adresse de toutes les cartes (pour la bonne raison que je ne connais pas grand chose en VBS et que je me suis inspiré d'un script existant)
L'autre soucis c'est que sur certains PC le nom de la carte peut être différent, et donc là si je change pour tout je n'ai pas le soucis d'avoir le bon nom.

Merci !

Re: [R] RunAs avec un script VBS

Posté : ven. 10 juil. 2009 15:51
par ar0ray
Heum, désoler mon la question novice mais...Ca sert a quoi changer la passerelle? :roll:

Peace

Re: [R] RunAs avec un script VBS

Posté : ven. 10 juil. 2009 16:11
par ani
le subnet est un systeme de classe, A,B,C,D et E

Un petit lien qui m'a bien aidé pour comprendre l'adressage IP

Re: [R] RunAs avec un script VBS

Posté : jeu. 03 sept. 2009 12:12
par Polstar
Bonjour,

Sinon on peut lancer directement un vbs avec le runAs en lui précisant le chemin vers wscript.exe

Ex :

Code : Tout sélectionner

Local $sUserName = "Administrateur"
Local $sPassword = "*****"
Local $Application = "C:\WINDOWS\system32\wscript.exe C:\scripts\admin_script.vbs"

RunAs($sUserName, @ComputerName, $sPassword, 0, $Application, @SystemDir)