rene1976
Goto Top

.Net Programm wird unter Win 8 immer nur mit Adminsicherheit installiert und nicht für alle User aufrufbar

Hallo,

ich habe folgendes Problem unter Win 8.

Wir haben ein kleines Programm mit VS 2010 in C# und .Net 4.0 geschrieben und dafür auch ein Setup mit VS 2010 erstellt.

Wenn ich das Programm auf einem Win 8 Client unter dem Administrator installiere und während der Installation im Wizard "für alle Benutzer" auswähle, dann sollte das Programm nach meinem bisherigen Verständnis eigentlich auch von allen Usern ohne "UAC-Fenster/Rechte" geöffnet werden können, oder?

Wenn ich das Programm unter C:\Programmname\Programm.exe als Admin aufrufe klappt das auch wunderbar.

Wenn ich mich als normaler User einlogge, sehe ich an der Programm.exe gleich das "Adminschutzschild".
Bei Aufruf will die UAC dann den Adminnamen und Passwort haben.

Wie bekomme ich das weg?

Habe im Kontextmenü beim User "Jeder" auch schon alle Rechte freigeschaltet, trotzdem steht das Schild bei der Exe-Datei immer noch da.


Was macht das Programm:
Das Programm soll einen Unterordner unter C:\MeinOrnder\ löschen und die Dateien aus einem anderen Unterordner hineinkopieren.
Das ist doch eigentlich nicht so schlimm das das Programm nur unter UAC ausgeführt werden kann, oder.

Noch was:
Unser Programm hat keinen Herausgeber (also: unbekannter Herausgeber) und ist nicht Zertifiziert. Spielt das eine Rolle?
Wri wollen es auch nur intern bei uns nutzen.
Muss ich das im Code setzen damit es klappt? Wie?

Kennt jemand eine Lösung?

Gruß,

Rene

Content-Key: 197508

Url: https://administrator.de/contentid/197508

Printed on: April 24, 2024 at 22:04 o'clock

Member: MrTrebron
MrTrebron Jan 23, 2013 updated at 15:17:25 (UTC)
Goto Top
Hi

hast du schon mal geprüft ob der angemeldete User denn Berechtigungen auf dem Ordner hat?
Kann der User dort Dateien löschen und wieder kopieren?
Schreibt das Programm in sein Programmverzeichnis temp Dateien?

Edit:
Was steht denn im app.manifest der Applikation?

Gruß
Norbert
Member: DerWoWusste
DerWoWusste Jan 23, 2013 at 15:24:09 (UTC)
Goto Top
Moin.

Du hast ein Adminschutzschild vor Dir. Das hat nichts mit den Zugriffsberechtigungen auf diese .exe oder deren Ordner zu tun, sondern beim Erstellen dieser exe muss bereits eingestellt worden sein, dass zur Ausführung Adminrechte benötigt werden.
Du kannst Sie nun also mit mehr Umsicht versuchen neu zu erstellen, oder, falls Du keine passenden Optionen bei der Neuerstellung findest (müss[t]en da sein), ein shim erstellen und anwenden, dass die Anpassung runasinvoker beinhaltet.
Siehe http://blogs.technet.com/b/askperf/archive/2010/08/27/act-suppressing-e ...
Member: Rene1976
Rene1976 Jan 23, 2013 at 17:54:04 (UTC)
Goto Top
Hi,

also ihr meint es liegt am VS 2010 Setup und man könnte dort noch etwas besser einstellen.
Weiß jemand wo genau, bzw. was für eine Einstellung fehlt?

Ich werde morgen nochmal genauer hinschauen, wenn ich mein Projekt wieder vor mir habe.

Hier ein Link zur app.manifest:
Create and Embed an Application Manifest (UAC)
http://msdn.microsoft.com/en-us/library/windows/desktop/bb756929.aspx


Hab mir auch das mit dem "shim" mal durchgelesen. Die Anleitung ist für Vista und Win 7 geschrieben.
Geht das mit Win 8 auch noch, oder hat sich was geändert.

Im Netz reden sie schon von ACT 6.0 für Win 8
http://technet.microsoft.com/en-us/library/hh825226.aspx

Bis jetzt hab ich aber nur einen Download für 5.6 gefunden.
http://www.microsoft.com/en-us/download/details.aspx?id=7352

Klappt ACT 5.6 auch mit Win 8 ?

Danke schon mal.

Bis dann,

Rene
Member: DerWoWusste
DerWoWusste Jan 23, 2013 at 18:06:36 (UTC)
Goto Top
Ich sehe auch keinen Download für 6 - evtl. lange angekündigt und doch noch nicht draußen. I5.6 ware zumindest einen Versuch wert.
Member: MrTrebron
MrTrebron Jan 23, 2013 at 19:05:51 (UTC)
Goto Top
Servus,

mache mal auf deinem Projekt, nicht das Setup, einen Rechtsklick und ruf die Eigenschaften auf.
Im Teil "Anwendung" klick mal auf "Windows-Einstellungen anzeigen".
Dann geht das app.manifest auf.

Und dann der Bereich
<security>
      <requestedPrivileges xmlns="urn:schemas-microsoft-com:asm.v3"> 
        <!-- UAC-Manifestoptionen
          Wenn Sie die Zugangsebene für das Windows-Benutzerkonto ändern möchten, ersetzen Sie den 
          requestedExecutionLevel-Knoten durch eines der folgenden Elemente.

        <requestedExecutionLevel  level="asInvoker" uiAccess="false" /> 
        <requestedExecutionLevel  level="requireAdministrator" uiAccess="false" /> 
        <requestedExecutionLevel  level="highestAvailable" uiAccess="false" /> 

            Durch Angeben des requestedExecutionLevel-Knotens wird die Datei- und Registrierungsvirtualisierung deaktiviert.
            Wenn Sie Datei- und Registrierungsvirtualisierung für Abwärts- 
            kompatibilität verwenden möchten, löschen Sie den requestedExecutionLevel-Knoten.
        -->
        <requestedExecutionLevel level="asInvoker" uiAccess="false" /> 
      </requestedPrivileges>
    </security>

Gruß
Norbert
Member: Rene1976
Rene1976 Jan 24, 2013 at 10:36:10 (UTC)
Goto Top
Hi Trebron,

danke für den Tipp.

Der erste Schritt hat funktioniert und das Programm kann nun auch unter einem "normalen User" aufgerufen werden.

Bei installieren hab ich jetzt aber noch eine kleine Unschönheit:

Beim Installieren meldet sich jetzt der Win 8 "SmartScreen" zu Wort das er Windows vor dem Programm schützen will.

Ich kann dann zwar weiterinstallieren wenn ich "Trotzdem ausführen" klicke, ich würde aber gerne noch wissen woran das liegt.
Ich denke weil ich immer noch ein "unbekannter Herausgeber" ohne Zertifikat bin. Könnte das sein?
Oder gibt es noch andere Gründe und Einstellungen die ich machen muss?
Falls es an einem Zertifikat liegt, reicht es aus, ein eigenes AD-Zertifikat (AD CS) zu erstellen, oder muss ich mir eins (teuer) ausstellen lassen (Das würde sich eigentlich für unsere internen Zwecke nicht lohnen).
Ist die Installation un Erstellung eines AD CS komplizert?
Habe bis jetzt noch nichts mit Zertifikaten zu tun gehabt.


Grüße,

Rene
Member: Rene1976
Rene1976 Jan 24, 2013 at 11:33:05 (UTC)
Goto Top
Hi,

Nachtrag was ich schon rausgefunden habe:

Um keine Smart Screen Meldung mehr zu bekommen braucht man anscheinend ein offizielles Zertifikat, am besten ein EV Zertifikat wie man hier nachlesen kann:

http://blogs.msdn.com/b/ie/archive/2012/08/14/microsoft-smartscreen-amp ...

"Digitally sign your programs (Standard or EV code signing)
Reputation is generated and assigned to digital certificates as well as specific files. Digital certificates allow data to be aggregated and assigned to a single certificate rather than many individual programs. Although not required, programs signed by an EV code signing certificate can immediately establish reputation with SmartScreen reputation services even if no prior reputation exists for that file or publisher. EV code signing certificates also have a unique identifier which makes it easier to maintain reputation across certificate renewals. Only Authenticode Certificates issued by a CA that is a member of the Windows Root Certificate Program can establish reputation.

At this time, Symantec and DigiCert are offering EV code signing certificates."

Die Geschichte kosten dann ca. 330-995 $/Jahr (Stand heute 24.01.2013).

Was sollen dann Freeware / Shareware oder hausinterne Developer machen???
Anscheinend müssen diese Zielgruppe mit der Meldung leben und ihren "Kunden" erklären warum die Warnung kommt.

Die Frage ist nun ob ein "normaler User" nach ein paar bestätigten Meldungen nicht immer versucht ist die Meldung zu deaktivieren oder immer zu bestätigen (stumpfes Schwert).

Meiner Meinung nach müßten die Zertifikate zukünftig billiger werden, damit eine breite Sicherheit entsteht (auch unter "gratis oder billig" Programmen).

Gruß,

Rene
Member: MrTrebron
MrTrebron Jan 25, 2013 at 07:16:55 (UTC)
Goto Top
Moin Rene,

ich kann die leider nichts dazu sagen wie das alles so unter Windows 8 läuft, aber wenn Zertifikate noch günstiger werden dann hat demnächst jedes Schadtool demnächst ein gültiges Zertifikat.

Gruß
Norbert
Member: Rene1976
Rene1976 Jan 25, 2013 at 10:20:08 (UTC)
Goto Top
Hi Norbert,

so wie ich das verstehe kann man einen Zertifikatschlüssel auch wieder aberkennen.
Dann wird er auch aus Microsoft´s sichere Zertifikateliste gestrichen.

Es gab doch auch schon Fälle (ich glaub das war sogar bei VeriSign) von Zertifikatdiebstahl.

Ein Zertifikat für 1000$ wird das organisierte Verbrechen sicherlich nicht abhalten.
Der Preis des Zertifikats spielt bei den erwarteten Gewinnen nur eine untergeordnte Rolle.

Gruß,

Rene
Member: MrTrebron
MrTrebron Jan 25, 2013 at 10:28:09 (UTC)
Goto Top
Hi

ich denke eher daran das jeder anfängt seinen Kram signieren zu lassen. Wer das Groß machen möchte macht das auch wenn das Ding Zehntausend kostet. Hast du schon recht.

Gruß
Norbert