| 

.NET C# Java Javascript Exception

2
Hallo zusammen,
ich habe einen Service, der mir alle verfügbaren Updates auf den lokalen Rechner kopiert und dann die msi via msiexec ausführt. Jetzt zu meiner Frage:
Bei WinXP lief das ganze ja noch ganz gut. Wenn ich das ganze aber unter Vista/7 ausführe, bekomme ich Probleme mit der UAC.
Ich habe meinen Service schon als "Lokales System" und explizit als "Admin" laufen lassen. Leider mit enttäuschendem Ergebnis. Weiß jemand Rat?
07.03.2011
phlow666 922 1 9
2
Von welchen Problemen reden wir hier?
Konstantin 07.03.2011
Das sich UAC meldet (Eingabe von Adminname und Passwort). Ich hätte aber gern, dass ich das Passwort an dieser Stelle nicht wissen muss.
phlow666 07.03.2011
4 Antworten
3
Schau dir das mal an.
07.03.2011
Konstantin 3,7k 1 8
Das sah fürs erste mal sehr gut aus, danke. Jetzt kommt beim Starten des Services:
"Der Dienst "..." auf "Lokaler Computer" konnte nicht gestartet werden. Fehler 740: Der angeforderte Vorgang erfordert erhöhte Rechte."
Jetzt habe ich den Dienst schon als Admin gestartet. Mehr geht glaub ich nicht...
phlow666 07.03.2011
3
Vielleicht hilft Dir die Option /jm für msiexec weiter.
07.03.2011
Joachim 3,1k 4 9
2
Nun, man kann in der Systemsteuerung unter Benutzerkonten die Einstellungen der Benutzerkontensteuerung ändern. Es geht aber auch mittels einer Einstellung in der Registry

HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Policies\System\EnableLUA
Wert 1 = UAC ist eingeschaltet
Wert 0 = UAC ist ausgeschaltet


Lt. MS wird dies aber nicht empfohlen.
07.03.2011
Joachim 3,1k 4 9
UAC möchte ich nicht ausschalten. Das kann ich auf Kunden-PCs nicht machen. Bei mir zu Hause wäre das was anderes.
phlow666 07.03.2011
1
Eine konkrete Lösung kann ich dir nicht bieten, aber ein paar Hinweise.
Ich kenne mich eher mit ClickOnce-Deployment aus, aber die Probleme dürften ähnlich gelagert sein. Hier ein Artikel dazu in der MSDN: Probleme mit Sicherheit, Versionsverwaltung und Manifesten in ClickOnce-Bereitstellungen
Hier ist folgendes zu lesen:
In Windows Vista werden Anwendungen standardmäßig als Standardbenutzer ausgeführt, selbst wenn der aktuelle Benutzer mit einem Konto angemeldet ist, das über Administratorberechtigungen verfügt. Wenn in einer Anwendung eine Aktion ausgeführt werden muss, für die Administratorberechtigungen erforderlich sind, wird das Betriebssystem benachrichtigt, das daraufhin den Benutzer auffordert, Administrator-Anmeldeinformationen einzugeben. Dieses Feature wird als Benutzerkontensteuerung (User Account Control, UAC) bezeichnet und verhindert, dass Anwendungen ohne die ausdrückliche Genehmigung durch einen Benutzer Änderungen vornehmen, die Auswirkungen auf das gesamte Betriebssystem haben können.

Das bedeutet, für die Benutzerkontensteuerung ist es unerheblich, dass der Dienst mit Admin-Rechten gestartet wird.
Microsoft reagierte mit der UAC auf ihren Ruf eine "Virenschleuder" zu sein. Somit wird es für Schadprogramme erheblich schwieriger Programme nachzuladen.
Das bereitet natürlich auch dem Programmierer erhebliche Schwierigkeiten und endet häufig in einer Änderung der Architektur.
Einfacher wird das Deployment für den Programmierer, wenn es sich um eine Client-Server-Architektur handelt, bei der wenn möglich nichts installiert werden muss (Copy&Paste-Deployment) und der Server nur einmal eingerichtet werden muss.
Da ich deine Architektur nicht kenne, kann ich darauf nicht genauer eingehen.
07.03.2011
Jürgen Luhr 7,1k 2 9
Danke für deine Antwort. Leider kann ich an der Architektur der Anwendung nichts mehr ändern. Die Anwendung ist nicht meine und Client-/Server- wird die auch nicht mehr.
Hab gerade noch gesehen, dass PsExec von Sysinternals noch helfen könnte. Ich forsche diesbezüglich.
Mein Verdacht ist aber, dass wenn msiexec aufgerufen wird, bei Windows alle Alarmglocken klingeln!!!
phlow666 07.03.2011

Stelle deine Service-Frage jetzt!