[Résolu] Compilation d'un batch

Compilation d'un batch [Résolu] - Shell/Batch - Programmation

Marsh Posté le 07-04-2011 à 13:07:04    

Bonjour à tous,
 
Dans le cadre d'un projet au boulot pour une machine sous Windows XP SP3 (devant être éventuellement compatible Windows 7, mais l'urgent c'est XP), je dois trouver un moyen logiciel de désactiver une carte réseau suivant l'utilisateur logué. Jusque là rien de bien difficile en utilisant devcon :

Spoiler :

switch('%username%')
{
case 'USERABLOCK' : devcon disable *DEV_carterzo*; break ;
default : devcon enable *DEV_carterzo* ; ipconfig /renew ;
}


 
Le soucis c'est qu'il doit être lancé en tant qu'administrateur, or mes users ne sont évidemment pas administrateur... là pas de soucis on invoque le batch par un 2ème en utilisant psexec, qui sera donc lancé soit par le menu Démarrer/Démarrage, ou via la base de registre, ou plus propre encore dans les scripts de démarrage de session.
 
Le gros soucis étant que dans psexec, mon mot de passe admin apparaît...en clair ! :o
Seul moyen que je verrais dans "l'immédiat", ce serait la compilation de ce batch contenant psexec... comment faire ?
 
Pour désactiver la carte réseau il n'y a pas 36 solutions, mais seulement 3 (dixit après validation par Microsoft) : du WMI, du VBScript et devcon. Devant tous 3 être lancés en tant qu'administrateur...


Message édité par bardiel le 23-04-2011 à 11:22:21

---------------
Grippe ? Coronavirus ? Portez votre masque correctement ! :D
Reply

Marsh Posté le 07-04-2011 à 13:07:04   

Reply

Marsh Posté le 15-04-2011 à 07:40:53    

Personne ? Ou pas faisable ?
Pour psexec sur un client, vous utilisez quoi alors ?


---------------
Grippe ? Coronavirus ? Portez votre masque correctement ! :D
Reply

Marsh Posté le 15-04-2011 à 17:22:42    

jscript ou vbscript encodé avec screnc : http://www.microsoft.com/downloads [...] f0626a6329


---------------
Laissez l'Etat dans les toilettes où vous l'avez trouvé.
Reply

Marsh Posté le 16-04-2011 à 14:22:02    

Bon, ça ne marche pas pour les VBS.
 
J'ai fait un VBScript qui me lance mon psexec :D

Spoiler :

Dim appPath  
appPath = "C:\Windows\psexec.exe -u admin -p motdepasse -d c:\Windows\monbatch.bat"
Set WshShell = WScript.CreateObject("WScript.Shell" )
WshShell.Run chr(34) & appPath & chr(34)


(apparemment il est conseillé de faire un coup de chr(34) pour éviter d'avoir trop de " dans la ligne du WshShell.Run)
 
Je l'ai "compilé", et pouf erreurs sur erreurs :/


---------------
Grippe ? Coronavirus ? Portez votre masque correctement ! :D
Reply

Marsh Posté le 20-04-2011 à 11:00:27    

Reply

Marsh Posté le 23-04-2011 à 02:42:07    

SISI CA MARCHE !
 
Fichier x.vbs :

Code :
  1. Dim appPath 
  2. appPath = "C:\Windows\psexec.exe -u admin -p motdepasse -d c:\Windows\monbatch.bat"
  3. Set WshShell = WScript.CreateObject("WScript.Shell" )
  4. WshShell.Run chr(34) & appPath & chr(34)


screnc /l vbscript x.vbs x.vbe
 
Fichier x.vbe

Code :
  1. #@~^zQAAAA==9b:~mwanlDt,~@#@&l2whlO4,'Pr/)'k [Ghk-a/n6n^c+a+,RE,l[hbxPR2,:GY9naldk+,ON,m=wbx[WS/whKx4mOm4R4mOE@#@&?Y~d4UtnV^~',j^MkwO ;DnlDn}4%mD`Jq?1.kaY ?4+ssrP#@#@&kt?4nsVcI!x~m4.v&*#,'Pmw2KmYt~',m4DvfW#@#@&ekAAAA==^#~@


Le truc c'est l'extension .VBE et pas .VBS !
A+


---------------
Laissez l'Etat dans les toilettes où vous l'avez trouvé.
Reply

Marsh Posté le 23-04-2011 à 11:19:32    

Ben avec screnc j'avais essayé et ça ne marchait pas, finalement je suis parti sur de l'AutoIT en compilant en exe autonome, et cela fonctionne.

If (@UserName = "COMPTEABLOCKER" ) Then
 Run(@ComSpec & " /c " & 'C:\WINDOWS\psexec.exe /accepteula -u administrateur -p mdpadmin C:\WINDOWS\batchrzooff.bat', "", @SW_HIDE) ;
Else
 Run(@ComSpec & " /c " & 'C:\WINDOWS\psexec.exe /accepteula -u administrateur -p mdpadmin C:\WINDOWS\batchrzoon.bat', "", @SW_HIDE) ;
EndIf
Exit


Le batchrzooff.bat

C:\WINDOWS\devcon.exe disable *DEV_(id carte réseau)*


Le batchrzoon.bat

C:\WINDOWS\devcon.exe enable *DEV_(id carte réseau)*
ipconfig /renew


 
J'ai donc besoin au final :
- mon exe qui lance les batch selon l'utilisateur, et qui sera inclus "à l'arraché" dans la base de registre dans la clé HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run
- les 2 batchs qui active/désactive la carte réseau
- psexec.exe et devcon.exe


---------------
Grippe ? Coronavirus ? Portez votre masque correctement ! :D
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed