Programm ohne UAC und Administratorrechte starten
Hallo,
ich denke, jeder kennt das Problem, ein Programm das die UAC aufpoppen lässt ohne dass es wirklich Administrator Rechte braucht.
Entweder ihr habt die Verzeichnis Berechtigungen entsprechend "korrigiert" damit auch eine Nicht Admin Gruppe die Aktion ausführen kann, oder es war von vorne herein überflüssig.
Letzeres hatte ich neulich mit einem kleinen Programm zur Wiedergabe von Überwachungskamera aufnahmen. Auf meinem Client installiert und jedesmal kommt die UAC, obwohl die Rechte nicht benötigt werden (funktioniert auch ohne). Deshalb habe ich nach einer Lösung für das Problem gesucht und die möchte ich euch nicht vorenthalten.
Verknüpfung auf den Desktop und in den Einstellungen auswählen, dass sie minimiert startet
P. S. Desto weniger Programme als Administrator gestartet werden desto besser. So muss man wenigstens nicht jedem Administrator rechte erteilen damit er Arbeiten kann.
ich denke, jeder kennt das Problem, ein Programm das die UAC aufpoppen lässt ohne dass es wirklich Administrator Rechte braucht.
Entweder ihr habt die Verzeichnis Berechtigungen entsprechend "korrigiert" damit auch eine Nicht Admin Gruppe die Aktion ausführen kann, oder es war von vorne herein überflüssig.
Letzeres hatte ich neulich mit einem kleinen Programm zur Wiedergabe von Überwachungskamera aufnahmen. Auf meinem Client installiert und jedesmal kommt die UAC, obwohl die Rechte nicht benötigt werden (funktioniert auch ohne). Deshalb habe ich nach einer Lösung für das Problem gesucht und die möchte ich euch nicht vorenthalten.
Mittels start.bat und AsInvoker Shim
@echo off
set __COMPAT_LAYER=RUNASINVOKER
start C:\Path\To\Exe.exe
Mittels installiertem Shim
war mir etwas zu aufwendig, nur um die Batch Datei weg zu bekommen. Dabei wird auch nur die Umgebungsvariable von oben beim Programmaufruf gesetzt...Mittels Hex Editor den Manifest Eintrag ändern
exe im Hexeditor (z. B. HxD) öffnen und nach dem String "requestedExecutionLevel level=" suchen und anschließend den Wert auf "asInvoker" ändern. eventuell übrige Zeichen des alten Wertes einfach mit Leerzeichen überschreiben. Zerstört leider die Digitale Signatur, was Windows aber überhaupt nicht interessiert. In den Einstellungen wird die Signatur immer noch angezeigt, lediglich wenn man diese anklickt steht ganz klein "Ungültig" dorten...Mittels gespeicherter Anmeldeinformationen und mit Administrator Rechten
Das ist sicherheitstechnisch sehr fragwürdig, weil anschließend jedes Programm über diesen befehl als Administrator gestartet werden kann. Ich führe das hier nur der Vollständigkeit halber mit auf!- Lokales Administrator Konto aktivieren (ja, geht nur mit diesem und keinem anderen)
- Verknüpfung zum Starten auf den Befehl setzen:
runas /user:%computername%\Administrator /savecred /env /noprofile "C:\Path\To\Exe.exe"
- Verknüpfung anklicken und das Passwort eintippen, damit es gespeichert wird.
UAC deaktivieren
Einfach den Regler ganz nach unten Ziehen (Win7) hat den gleichen Effekt, nur leider wird dadurch auch der "low Privileges Mode" des Internet Explorers deaktiviert, so dass dieser zur Laufzeit mehr rechte als vorher (die des Benutzers) hat. Außerdem bekommen auch Administratoren an dem System keine UAC mehr angezeigt, was je nach Umgebung eventuell nicht gewollt ist.P. S. Desto weniger Programme als Administrator gestartet werden desto besser. So muss man wenigstens nicht jedem Administrator rechte erteilen damit er Arbeiten kann.
Please also mark the comments that contributed to the solution of the article
Content-ID: 315023
Url: https://administrator.de/contentid/315023
Printed on: December 10, 2024 at 14:12 o'clock
3 Comments
Latest comment
Zerstört leider die Digitale Signatur, was Windows aber überhaupt nicht interessiert.
Die meisten Entwickler prüfen das Code Signing Zertifikat, mehr oder weniger zufällig zur Laufzeit der Anwendung. Ist das Zertifikat beschädigt, wird häufig ein Counter gestartet, der in einer beliebigen Kombination aus Datum oder Programmstarts verschiedene Aktionen auslöst, z.B. Lizenz deaktivieren, Programm anhalten oder einfach unsinnige Fehlermeldungen produziert.
Mit diesen zeitversetzten Aktionen wird verhindert, dass ein „KiKo“ Rückschlüsse auf den Programmschutz ziehen kann. Es kann deshalb gut sein das ein "verändertes" Programm 1-2 Wochen läuft...
Auf jeden Fall verliert man seine Lizenz und jeglichen Anspruch auf Support!
Viel Erfolg...
Hallo,
wollte nur Aufzeigen, das es keine gute Idee ist, (mittels HEX-Editor) Veränderungen an signierten Programm Dateien vorzunehmen. Das kann schnell in Auge gehen, zumal das auch nicht nötig ist.
Man kann einfach eine (im Programm) eingebettete Manifestdatei durch eine externe Manifestdatei ersetzen und damit den "requestedExecutionLevel" beliebig verändern. Dazu wird in der Registry der Wert für "PreferExternalManifest" gesetzt:
Jetzt kann man eine eine neue Manifestdatei (dateiname.exe.manifest) ins Programmverzeichnis legen. Wer sich die Arbeit sparen möchte benutz Google für eine (einfache) Vorlage der Manifestdatei.
Die gleiche Technik kannst Du auch benutzen um die Bildschirmauflösung von Software (z.B. für den Surface 4) anzupassen
Manifestdatei-Vorlage:
Viel Erfolg....
wollte nur Aufzeigen, das es keine gute Idee ist, (mittels HEX-Editor) Veränderungen an signierten Programm Dateien vorzunehmen. Das kann schnell in Auge gehen, zumal das auch nicht nötig ist.
Man kann einfach eine (im Programm) eingebettete Manifestdatei durch eine externe Manifestdatei ersetzen und damit den "requestedExecutionLevel" beliebig verändern. Dazu wird in der Registry der Wert für "PreferExternalManifest" gesetzt:
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\SideBySide]
"PreferExternalManifest"=dword:00000001
Jetzt kann man eine eine neue Manifestdatei (dateiname.exe.manifest) ins Programmverzeichnis legen. Wer sich die Arbeit sparen möchte benutz Google für eine (einfache) Vorlage der Manifestdatei.
Die gleiche Technik kannst Du auch benutzen um die Bildschirmauflösung von Software (z.B. für den Surface 4) anzupassen
Manifestdatei-Vorlage:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0" xmlns:asmv3="urn:schemas-microsoft-com:asm.v3">
<dependency>
<dependentAssembly>
<assemblyIdentity
type="win32"
name="Microsoft.Windows.Common-Controls"
version="6.0.0.0" processorArchitecture="*"
publicKeyToken="6595b64144ccf1df"
language="*">
</assemblyIdentity>
</dependentAssembly>
</dependency>
<dependency>
<dependentAssembly>
<assemblyIdentity
type="win32"
name="Microsoft.VC90.CRT"
version="9.0.21022.8"
processorArchitecture="*"
publicKeyToken="1fc8b3b9a1e18e3b">
</assemblyIdentity>
</dependentAssembly>
</dependency>
<trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
<security>
<requestedPrivileges>
<requestedExecutionLevel
level="asInvoker"
uiAccess="false"/>
</requestedPrivileges>
</security>
</trustInfo>
<asmv3:application>
<asmv3:windowsSettings xmlns="http://schemas.microsoft.com/SMI/2005/WindowsSettings">
<ms_windowsSettings:dpiAware xmlns:ms_windowsSettings="http://schemas.microsoft.com/SMI/2005/WindowsSettings">false</ms_windowsSettings:dpiAware>
</asmv3:windowsSettings>
</asmv3:application>
</assembly>
Viel Erfolg....