vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
vb@rchiv Offline-Reader - exklusiv auf der vb@rchiv CD Vol.4  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2024
 
zurück

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!

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

Fragen zu Tipps & Tricks und Workshops im vb@rchiv
Tipp 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.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

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
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

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.
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

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
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

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)
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

Sie sind nicht angemeldet!
Um einen neuen Beitrag schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

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