| |
| In diesem Forum haben Sie die Möglichkeit Kommentare, Fragen und Verbesserungsvorschläge zu den im vb@rchiv gelisteten Tipps und Workshops zu posten.
Hinweis: Ein neues Thema kann immer nur über die jeweilige Tipps & Tricks bzw. Workshop Seite eröffnet werden! | Fragen zu Tipps & Tricks und Workshops im vb@rchivTipp 2363: Fremdanwendung mit Adminrechten starten | | | Autor: punkler | Tipp anzeigenDatum: 10.12.15 16:23 |
| Ich möchte unter VB6 ocx-Dateien automatisch registrieren.
Der nachfolgende Aufruf klappt nicht, da wir den Benutzer (z.B. Domain\Administrator) und das zugehörige Passwort nicht mit auf den Weg bringen können. Gibt es dazu noch eine entsprechende Alternative/Erweiterung ?
ShellExecuteA 0, "RunAs", "regedit.exe", vbNullString, vbNullString, vbNormalFocus
Über eine Antwort würde ich mich freuen. | |
Re: Fremdanwendung mit Adminrechten starten | | | Autor: Ralf Schlegel | Datum: 12.12.15 10:20 |
| Hallo,
zum Registrieren von ocx oder dll Dateien wird nicht regedit, sondern regsvr32 benötigt.
Der Aufruf sieht dann folgendermaßen aus:
ShellExecuteA "runas", "regsvr32", """" & fName & """", vbNullString, vbNormalFocus
wobei fName der Dateiname incl. Pfad des ocx ist.
In jedem Fall muss der aktiv angemeldete Benutzer über die die Berechtigung zur Installation / Registrierung solcher Dateien haben.
Sonst funktioniert es nicht.
Was soll denn genau gemacht werden?
ocx-Dateien in der Entwicklungsumgebung registrieren, oder aus einer VB-Anwendung heraus?
Die von mir aufgeführten Beispiele beziehen sich auf eine Registrierung innerhalb einer VB6-Anwendung.
Um in VB6 selbst ocx-Dateien zu registrieren muss VB6 mit Adminrechten gestartet werden.
Gruss
Ralf Schlegel | |
Re: Fremdanwendung mit Adminrechten starten | | | Autor: punkler | Datum: 12.12.15 11:47 |
| Die Registrierung der OCX-Dateien soll auch bei einem User ohne Admin-Rechte funktionieren.
Sobald ein Update von einem "normalen" Domainen-Benutzer ausgeführt wird, sollen die OCX-Dateien trotzdem registriert werden. D.h. der Benutzer und das Passwort eines Benutzers mit entsprechenden Admin-Rechten muss im Programm mit übergeben werden können. Dies soll bei 32bit UND 64bit Systemen funktionieren.
Logisch, dass dafür auch die regsrv32.exe notwendig ist ..... (Mein Fehler !)
Danke.
Gruß
Jan
Beitrag wurde zuletzt am 12.12.15 um 11:48:16 editiert. | |
Re: Fremdanwendung mit Adminrechten starten | | | Autor: Ralf Schlegel | Datum: 19.12.15 14:50 |
| Hallo Jan,
jetzt wird es kompliziert:
der "RunAs" Parameter lässt sich für solch einen Fall erweitern, indem ein Benutzer mit Adminrechten zusätzlich übergeben wird.
In jedem Fall wird aber ein Dialog aufpoppen, in dem das Adminpasswort eingegeben werden muss.
Ob eine automatische Passwortübergabe möglich ist, wage ich zu bezweifeln, da dann die MS-Sicherheitsrichtlinien über den Haufen geschmissen werden.
Bitte lies doch dazu den folgenden Artikel von Microsoft:
https://technet.microsoft.com/en-us/library/bb490994.aspx
Ansonsten weiß ich an dieser Stelle nicht weiter - sorry
und Gruß
Ralf Schlegel
www.vb-zentrum.de | |
Re: Fremdanwendung mit Adminrechten starten - gelöst | | | Autor: punkler | Datum: 19.12.15 15:00 |
| Hallo zusammen,
vielen Dank für Eure Hilfe, aber wir haben eine Lösung gefunden:
Man kann eine Batch-Datei mit Administrator-Rechten starten, die dann die entsprechenden Aufgaben erledigt !
Natürlich wird dazu ein mit Admin-Rechten ausgestatteter Benutzer (+ Domaine) benötigt UND das dazugehörige Passwort. dann flutscht das richtig gut - wir haben es schon im Live-Betrieb getestet - FUNKTIONIERT !
Dim lpUsername As String
Dim lpDomain As String
Dim lpPassword As String
Dim lpApplicationName As String
Dim lpCommandLine As String
Dim lpCurrentDirectory As String
Dim lpProg As String
Dim StartInfo As STARTUPINFO
Dim ProcessInfo As PROCESS_INFORMATION
'hier die Anmeldedaten zuordnen !
lpUsername = "ADMINISTRATOR" 'Benutzer mit administrativem Account
lpDomain = "TestDomain" 'Environ("Computername") 'Oder eben direkt der Domänenname
lpPassword = "AdminPasswort" 'Das Passwort...
'Ist es ein 64bit oder32bit - Betriebssystem ?
If is64BitWin Then
lpProg = "C:\windows\syswow64\regsvr32.exe"
lpApplicationName = "C:\windows\syswow64\cmd.exe"
Else
lpProg = "C:\windows\system32\regsvr32.exe"
lpApplicationName = "C:\windows\system32\cmd.exe"
End If
lpCommandLine = vbNullString
lpCurrentDirectory = vbNullString
StartInfo.cb = LenB(StartInfo)
StartInfo.dwFlags = 0&
'https://support.microsoft.com/en-us/kb/285879
'https://msdn.microsoft.com/en-us/library/windows/desktop/ms682425(v=vs.85).aspx
'To run a batch file, you must start the command interpreter; set lpApplicationName to cmd.exe and set lpCommandLine to the following arguments: /c plus the name of the batch file.
lpCommandLine = "/c C:\synframe\synsys\Reg_122015.bat"
lpCurrentDirectory = "C:\current\directory"
lpCommandLine = "C:\synframe\synsys\Reg_122015.bat"
Call W2KRunAsUser(lpUsername, lpPassword, lpDomain, lpCommandLine, lpCurrentDirectory) | |
| Sie sind nicht angemeldet! Um einen neuen Beitrag schreiben zu können, müssen Sie sich zunächst anmelden.
Einloggen | Neu registrieren |
|
|
Neu! sevCoolbar 3.0
Professionelle Toolbars im modernen Design!
Mit sevCoolbar erstellen Sie in wenigen Minuten ansprechende und moderne Toolbars und passen diese optimal an das Layout Ihrer Anwendung an (inkl. große Symbolbibliothek) - für VB und MS-Access Weitere InfosTipp des Monats Access-Tools Vol.1
Über 400 MByte Inhalt
Mehr als 250 Access-Beispiele, 25 Add-Ins und ActiveX-Komponenten, 16 VB-Projekt inkl. Source, mehr als 320 Tipps & Tricks für Access und VB
Nur 24,95 EURWeitere Infos
|
|
|
Copyright ©2000-2024 vb@rchiv Dieter Otter Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.
Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel
|
|