Benutzerkontosteuerung verhindern

  • Morgen Leute,

    ich habe nach langer Zeit mal wieder eine Frage ^_^. Und zwar möchte ich verhindern, dass wenn eines meiner Programme mit Windows startet, nicht der Benutzer immer zuerst mittels Benutzerkontosteuerung es mit Ja zustimmen muss. Kann man das irgendwie verhindern?

    Edit: Ich habe auch die Suche benutzt aber nicht brauchbares gefunden. :(

    Einmal editiert, zuletzt von MehmeX (13. März 2011 um 02:34)

    • Offizieller Beitrag

    Kann man das irgendwie verhindern?


    Jein ;)
    Also grundsätzlich kannst du es nicht unterbinden, da es keine "Whitelist" für die UAC gibt.
    Mich hat das auch genervt, dass nur von M$ als OK befundene Software ohne Meckern startet. Ich habe die Einstellungen der Benutzerkontensteuerung auf "Nie benachrichtigen" gesetzt.
    Damit ist sie defacto wertlos. Aber ich hatte ein (sicherheitstechnisch) Problemloses Computerleben vor UAC und tue mir nicht den Terror an jede zweite Anwendung zusätzlich beim Start zu bestätigen. Total gaga. :wacko:

  • Ja, das ist mal echt GAGA. Hmm ... schade das es da keine Lösung gibt. Denn es icht echt nervig, wenn ein Programm von mir mit Windows startet, ich es immer erst mit Ja bestätigen muss.

    EDIT: Irgendwas sagt mir, das es aber irgendwie eine Lösung geben muss.

    Einmal editiert, zuletzt von MehmeX (10. März 2011 um 13:07)

  • Natürlich gibt es ne Lösungen, aber Sicherheitseinstellungen zu umgehen entspricht glaube ich nicht den Sinn des Forums.

    Wen die UAC nervt der stellt sie ja sowieso ab (Siehe BugFix ^^ ).
    Und derjenige den es nicht stört muss halt damit leben, dass es nicht anders geht

  • Danke Oscar . Das ist zumindest eine geringe Lösung. Was ich aber nicht verstehe, ist, dass die andere Hersteller es ja auch hinbekommen, es ohne zuerst mit UAC zu bestätigen.

  • Es gibt viele grunde warum warum,

    - hast du #RequireAdmin in dein script?
    - vielleich, hat du auf irgend ein Ordner/ Datei keine schreib Berechtigung.
    - Name von der Datei enthält z.B. install, setup usw....

    wenn das Programm kein Admin rechte benötig kannst du mit shims anpassen.

    RunAsInvoker
    Dieser Kompatibilitätsfix kennzeichnet diese Anwendung für die Ausführung im Kontext des übergeordneten Objekts, um das Sicherheitsrisiko zu reduzieren.

    Oder

    Du erstellt eine BAT Datei und set den compat layer manuell. :rock:

    z.B.
    set __COMPAT_LAYER=RunAsInvoker
    start regedit.exe

    Ich hoffe es hilft dir weiter

    Gruss

    wdonde

  • Oder mit ResHacker die Manifest-Ressource bearbeiten.

    Spoiler anzeigen
    Code
    <trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
        <security>
          <requestedPrivileges>
            <requestedExecutionLevel level="asInvoker" uiAccess="false"></requestedExecutionLevel>
          </requestedPrivileges>
        </security>
      </trustInfo>


    Das sollte in der Manifest Resource enthalten sein, damit es läuft.
    Also insgesamt ungefähr so:

    Spoiler anzeigen

    http://msdn.microsoft.com/en-us/library/bb756929.aspx

    Gruß
    Greenhorn


  • Oh man, ist das kompliziert. Ich habe es mal ohne #RequireAdmin gestartet und da kam dann kein UAC. Das Problem ist nur, wenn ich es ohne #RequireAdmin starte, kann das Programm keine Registry Einträge etc. schreiben.

  • Das Problem ist nur, wenn ich es ohne #RequireAdmin starte, kann das Programm keine Registry Einträge etc. schreiben.


    Nach meinem Kenntnisstand kannst du damit sehr wohl Registrywerte seten, allerdings nur HKCU-Werte. Weitergehende Änderungen würden mich auch dazu veranlassen auf das Programm zu verzichten

    mfg autoBert

  • Oh man, ist das kompliziert. Ich habe es mal ohne #RequireAdmin gestartet und da kam dann kein UAC. Das Problem ist nur, wenn ich es ohne #RequireAdmin starte, kann das Programm keine Registry Einträge etc. schreiben.

    Wenn das Script mit Userrecht in der Regstry schreiben soll dann entweder nur in HKCU wie Autobert es schrieb oder Du stelltst die Zugriffsrechte des Registryzweiges so um, das auch Anwender dort "ändern" dürfen.

    Oder Du lebst mit "#RequireAdmin" was deinem Script ja "anweist", sich Adminrechte zu besorgen. Dann musst Du auch mit der UAC leben, bzw. solltest froh sein das sie "nachfragt", sonst würde das Script ja gar nicht arebiten !

    Zur Nutzung dieses Forum's, ist ein Übersetzer für folgende Begriffe unerlässlich:

    "On-Bort, weier, verscheiden, schädliges, Butten steyling, näckstet, Parr, Porblem, scripe, Kompletenz, harken, manuel zu extramieren, geckukt, würglich, excell, acces oder Compilevorgeng"

  • Das habe ich nicht gewusst, dass das geht mit dem Registry (HKCU). Wie sieht's aber mit dem Installationsverzeichnis aus? Kann man da auch ohne #RequireAdmin Dateien schreiben ins Verzeichnis schreiben.

  • Wie sieht's aber mit dem Installationsverzeichnis aus? Kann man da auch ohne #RequireAdmin Dateien schreiben ins Verzeichnis schreiben.

    Jain.

    In das ProgramFilesDir (C:\Program Files\) kann nur geschrieben werden, wenn das Programm über Adminrechte verfügt. Verfügt das Programm über keine Adminrechte, leitet Windows das ganze um, und die Dateien werden in das Benutzerverzeichnis geschoben - frag mich allerdings nicht wohin, das weiß ich nämlich nicht mehr.

    Bin mir da allerdings auch nicht zu 100% sicher, hatte da mal was drüber gelesen, aber ich finds nich mehr.

  • In das ProgramFilesDir (C:\Program Files\) kann nur geschrieben werden, wenn das Programm über Adminrechte verfügt. Verfügt das Programm über keine Adminrechte, leitet Windows das ganze um, und die Dateien werden in das Benutzerverzeichnis geschoben - frag mich allerdings nicht wohin, das weiß ich nämlich nicht mehr.

    Oder man ändert auch hier nach der Installation eines Programms nach @ProgramFilesDir die Berechtigung, damit ein Benutzer ändern darf. Dies ist zwar nicht die feine Art, aber eine letzte Möglichkeit.

    Das mit dem Umlenken der Schreibzugriffe auf einen Ordner der vom User beschrieben werden kann, soll aber erst ab Windows7 gehen. Ich habe Windows7 Pro 64bit, kann dies aber bisher nicht bestätigen. Wenn ich als User versuche in einem Systemordner etwas zu schreiben, taucht die UAC auf. Es wird also nix umgelenkt und das Ist auch gut so, so entsteht nach kurzer Zeit ein riesen Chaos.

    Die sauberste Lösung ist nunmal: User schreiben nur in HKCU, @AppDataDir, @DesktopDir, @UserProfileDir u.ä.

    Zur Nutzung dieses Forum's, ist ein Übersetzer für folgende Begriffe unerlässlich:

    "On-Bort, weier, verscheiden, schädliges, Butten steyling, näckstet, Parr, Porblem, scripe, Kompletenz, harken, manuel zu extramieren, geckukt, würglich, excell, acces oder Compilevorgeng"

  • Ich danke für eure tolle Unterstützung! :)
    EDIT: Noch eine letzte Frage: Mit "HKCU" ist "HKEY_CURRENT_USER" gemeint, oder?

    2 Mal editiert, zuletzt von MehmeX (11. März 2011 um 22:05)

  • Na klar !

    Zur Nutzung dieses Forum's, ist ein Übersetzer für folgende Begriffe unerlässlich:

    "On-Bort, weier, verscheiden, schädliges, Butten steyling, näckstet, Parr, Porblem, scripe, Kompletenz, harken, manuel zu extramieren, geckukt, würglich, excell, acces oder Compilevorgeng"

  • Danke Micha_he.
    Ich habe mein Programm jetzt so umprogrammiert, dass man keine Adminrechte mehr braucht und somit die UAC nicht dazwischen schaltet. Danke nochmal für eure Hilfe.