Je me rends compte que je me suis mal expime. Tout d'abord je programme sous VB6, j'integre aussi du VBS.
J'ai deux executables :
- Le premier "test.exe", lors de la connection d'un peripherique USB, analyse si c'est un peripherique de stockage et ensuite verifie son numero de serie.
Si le numéro de série correspond à une des clé que l'on a fourni aux utilisateurs, rien ne se passe. Par contre, si l'utilisateur insert une cle perso (donc non autorise), "test.exe" vas ecrire dans la base de registre pour verouiller les ports USB, ce qui oblige l'utilisateur a contacter les administrateurs, car s'il ne le fait pas ses ports usb sont inutilisables.
Probleme : un compte utilisateur ne pas modifier la base de registre à cause de la securite. J'ai donc eu recours a un ptit truc.
- Le deuxieme "Lanceur.exe", lance mon "Test.exe" en tant qu'administrateur local ce qui me permet d'avoir tous les droits. Je peux donc modifier la base de registre a ma guise.
Je vous donne la portion de code qui me pose probleme:
' Déclaration de la fonction
Private Declare Function CreateProcessWithLogon Lib "Advapi32" Alias "CreateProcessWithLogonW" (
ByVal lpUsername As Long,
ByVal lpDomain As Long,
ByVal lpPassword As Long,
ByVal dwLogonFlags As Long,
ByVal lpApplicationName As Long,
ByVal lpCommandLine As Long,
ByVal dwCreationFlags As Long,
ByVal lpEnvironment As Long,
ByVal lpCurrentDirectory As Long,
lpStartupInfo As STARTUPINFO,
lpProcessInfo As PROCESS_INFORMATION) As Long
' Affectation du contenu des variables
lpUsername = "login administrateur"
' Login en clair
lpDomain = "nom du pc"
lpPassword = "XXXXXXXXX"
' Mot de pass en clair
lpApplicationName = App.Path & "\test\test.exe"
' Lancement de test.exe en tant que administrateur local
CreateProcessWithLogon
StrPtr(lpUsername),
StrPtr(lpDomain),
StrPtr(lpPassword),
LOGON_NETCREDENTIALS_ONLY,
StrPtr(lpApplicationName),
StrPtr(lpCommandLine),
CREATE_DEFAULT_ERROR_MODE Or CREATE_NEW_CONSOLE Or CREATE_NEW_PROCESS_GROUP,
ByVal 0&,
StrPtr(lpCurrentDirectory),
StartInfo,
PROCESSINFO
Comme vous pouvez le voir, le login et le mot de passe sont obligatoirement en clair. Meme s'il y a peut de chance pour qu'un des utilisateurs puissent recuperer le login et le mot de passe, je prefere etre prudent.
Je suis vraiment desoler mais je ne peux pas vous laisser un exemplaire de mon prog. Par contre je peux repondre a toute vos questions. Je suis militaire et c'est une application pour mon regiment. Par contre le resultat de mes recherches je peux les partager avec vous car je les ai eu sur le net.
-------
Citation :
Il ne faut jamais remettre au lendemain ce que votre femme pourai faire maintenant.