Comment lancer un fichier mmc en tant que [Résolu]

Signaler
Messages postés
33
Date d'inscription
mercredi 15 mars 2006
Statut
Membre
Dernière intervention
5 mars 2010
-
Messages postés
33
Date d'inscription
mercredi 15 mars 2006
Statut
Membre
Dernière intervention
5 mars 2010
-
Bonsoir,

Quelle est la procédure à suivre pour lancer un fichier mmc comme gpedit.mmc par exemple en tant que.Merci d'avance.


Cordialement.

4 réponses

Messages postés
33
Date d'inscription
mercredi 15 mars 2006
Statut
Membre
Dernière intervention
5 mars 2010

Re,

Oups !!! Désolé, j'ai oublié quelque chose :

lpApplicationName = "mmc.exe"
lpCommandLine = "mmc.exe c:\windows\system32\gpedit.msc"

Voilà.

@+++

Cdt.
Messages postés
2814
Date d'inscription
mardi 15 avril 2003
Statut
Membre
Dernière intervention
2 juin 2020
27
Bonsoir,

Un simple Shell suffit :

Shell ("gpEdit.msc")

@+ Mayzz.
                                                                              
Si le déboguage est l'art d'enlever les bogues, la programmation doit être l'art de les créer. <
Messages postés
33
Date d'inscription
mercredi 15 mars 2006
Statut
Membre
Dernière intervention
5 mars 2010

Bonjour,

Cette solution fonctionne si l'utilisateur est lui même administrateur de son poste ou du domaine.

En fait voilà j'explique ma situation :

Au bureau je possède 2 comptes.Un compte administrateur du domaine et un compte utilisateur lambda avec lequel je me connecte tous les matins.Depuis peu sous mon compte lambda je n'ai plus moyen de lancer les outils systems comme regedit.exe, gpedit.msc, diskmgmt.msc suite à des restrictions de l'administrateur du domaine niveau AD.Pour cela pour éviter de changer de compte j'essaye de développer une application qui me permettrait de lancer des outils systems "en tant que" en utilisant mon compte administrateur du domaine.Il faut savoir que sous mon compte lambda des scripts de connexion se lancent et permettent l' accès à diverses applications et lecteur réseaux suivant configuration du mon profil utilisateur, l'accès à ma messagerie d'où l'importance de ce compte.Le compte administrateur du domaine ne me servant que pour l'intervention à distance sur les postes utilisateurs par vnc d'ou l'importance du développement de cette application.
J'espère avoir été assez explicite.

PS : Je réussis à lancer tout ce qui est extension .exe mais je bloque au niveau des .msc.Avez-vous une idée quelconque sur la procédure à suivre.

J'utilise ce code pour lancer des exe comme regedit.exe en utilisant les paramètres de mon compte admin du domaine.

Option Explicit

'ATTENTION!!!! ce programme ne fonctionne pas si vous l'exécutez a partir d'un emplacement réseau
' il doit être lancé sur le disque local de la machine qui doit l'exécuter
Private Const LOGON_WITH_PROFILE = &H1& 'pour accès local
Private Const LOGON_NETCREDENTIALS_ONLY = &H2& 'pour accès réseau (notre cas)
Private Const CREATE_DEFAULT_ERROR_MODE = &H4000000
Private Const CREATE_NEW_CONSOLE = &H10&
Private Const CREATE_NEW_PROCESS_GROUP = &H200&
Private Type PROCESS_INFORMATION
hProcess As Long
hThread As Long
dwProcessId As Long
dwThreadId As Long
End Type
Private Type STARTUPINFO
cb As Long
lpReserved As Long
lpDesktop As Long
lpTitle As Long
dwX As Long
dwY As Long
dwXSize As Long
dwYSize As Long
dwXCountChars As Long
dwYCountChars As Long
dwFillAttribute As Long
dwFlags As Long
wShowWindow As Integer
cbReserved2 As Integer
lpReserved2 As Byte
hStdInput As Long
hStdOutput As Long
hStdError As Long
End Type
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
Private Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Long) As Long
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Dim lpUsername As String, lpDomain As String, lpPassword As String, lpApplicationName As String
Dim lpCommandLine As String, lpCurrentDirectory As String
Dim StartInfo As STARTUPINFO, PROCESSINFO As PROCESS_INFORMATION

Private Sub Submit_Click()
On Error GoTo ErreurTraitement
'**************************************************************************
lpUsername = UserAdm
lpDomain = "Neree"
lpPassword = UserPasswd
lpApplicationName = "c:\windows\regedit.exe"
lpCommandLine = ""
'***************************************************************************
'si le programme a lancé est en local sur la machine genre c:\windows\notepad.exe
'remplacer LOGON_NETCREDENTIALS_ONLY par LOGON_WITH_PROFILE a la ligne CreateProcessWithLogon
lpCurrentDirectory = App.Path 'utilise le repertoire en cours
StartInfo.cb = LenB(StartInfo) 'initialise la structure
StartInfo.dwFlags = 0&
CreateProcessWithLogon StrPtr(lpUsername), StrPtr(lpDomain), StrPtr(lpPassword), LOGON_WITH_PROFILE, StrPtr(lpApplicationName), StrPtr(lpCommandLine), CREATE_DEFAULT_ERROR_MODE Or CREATE_NEW_CONSOLE Or CREATE_NEW_PROCESS_GROUP, ByVal 0&, StrPtr(lpCurrentDirectory), StartInfo, PROCESSINFO
CloseHandle PROCESSINFO.hThread 'ferme le handle des threads de creation
CloseHandle PROCESSINFO.hProcess 'ferme le handle du process de creation
Exit Sub
ErreurTraitement:
MsgBox "ERREUR lors du lancement : " & Err.Description

Merci d'avance pour vos réponses.

Bonne soirée.
Messages postés
33
Date d'inscription
mercredi 15 mars 2006
Statut
Membre
Dernière intervention
5 mars 2010

Bonsoir,


Solution trouvée.Il suffit de faire comme ceci sur ces deux lignes :

lpApplicationName = "mmc.exe"
lpCommandLine = "c:\windows\system32\gpedit.msc"

Merci encore.

Bonne soirée.

Cordialement.