Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1563 connectés 

  FORUM HardWare.fr
  Programmation
  Shell/Batch

  [Résolu] Compilation d'un batch

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[Résolu] Compilation d'un batch

n°2068631
bardiel
Debian powa !
Posté le 07-04-2011 à 13:07:04  profilanswer
 

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
mood
Publicité
Posté le 07-04-2011 à 13:07:04  profilanswer
 

n°2070136
bardiel
Debian powa !
Posté le 15-04-2011 à 07:40:53  profilanswer
 

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


---------------
Grippe ? Coronavirus ? Portez votre masque correctement ! :D
n°2070353
Mara's dad
Yes I can !
Posté le 15-04-2011 à 17:22:42  profilanswer
 

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


---------------
Laissez l'Etat dans les toilettes où vous l'avez trouvé.
n°2070430
bardiel
Debian powa !
Posté le 16-04-2011 à 14:22:02  profilanswer
 

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
n°2071061
bardiel
Debian powa !
Posté le 20-04-2011 à 11:00:27  profilanswer
 
n°2071726
Mara's dad
Yes I can !
Posté le 23-04-2011 à 02:42:07  profilanswer
 

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é.
n°2071733
bardiel
Debian powa !
Posté le 23-04-2011 à 11:19:32  profilanswer
 

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

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Shell/Batch

  [Résolu] Compilation d'un batch

 

Sujets relatifs
creation d'un batch avec snmpset[resolu] Batch Caractere Joker dans une arborescence
[RESOLU] Problème compilation Visual C++[batch]récupérer son IP (OK) et l'analyser (pas ok)
Batch a éxecuter suivant l'adresse ip de la machine ?[Batch] Runas : Executer plusieurs programmes sur invite CMD [Résolu]
[Script Batch] Un /p dans un IF EXIST ?[Script Batch] Trouver tous les fichiers dont la taille est sup à "X"
[batch] Tasklist trop bavardsouci d'encodage
Plus de sujets relatifs à : [Résolu] Compilation d'un batch


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR