Was bedeutet "__COMPAT_LAYER " - eigentlich tun?
Vor kurzem, ich versuchte, meine Anwendung ohne administrator-Rechte-system Fragen, für "willst du administrator-Rechte erteilen?" und ich fand einen Weg, die perfekt funktioniert.
Lösung, Die Ich Gefunden
Erstellte ich eine bat-Datei mit dem Namen nonadmin.bat und schrieb den folgenden code in es
cmd min C set __COMPAT_LAYER=RunAsInvoker && start %1
und wenn wir ziehen jede exe auf, es gibt Sie administrator-Rechte (vorher ging es nicht lassen mir den Zugang Umgebungsvariablen, ohne es aber nach ziehen der Datei auf bat es hat funktioniert).
Frage
Nun meine Frage:-
- Was tatsächlich "__COMPAT_LAYER " bedeutet und was es macht?
- Wie Entferne ich so ein Ding also, dass es fragt nach administrator Rechte wieder?
- Tut dies reduziert die Sicherheit des Systems?
- Es tut, was es sagt. Setzt die Kompatibilität Optionen. Ihre Beispiele funktionieren nur für Administratoren. Non-admins Fehler.
- können Sie bitte erläutern und erklären Sie die Antwort auf diese 3 Fragen.
- Vermutlich das Lesen sollte
cmd /min /c ...
?
Du musst angemeldet sein, um einen Kommentar abzugeben.
__COMPAT_LAYER, und Wie Es Zu Benutzen
__COMPAT_LAYER ist eine system-environment-variable, die Ihnen erlaubt, um die Kompatibilität Ebenen, das sind die Einstellungen, die Sie anpassen können, wenn Sie mit der rechten Maustaste auf eine ausführbare Datei, wählen Sie Eigenschaften und gehen Sie auf die Registerkarte "Kompatibilität".
Gibt es mehrere Optionen zur Auswahl zusätzlich zu der, die Sie kennen:
Können Sie mehrere Optionen durch Trennung mit einem Leerzeichen:
set __COMPAT_LAYER=Win98 640x480
Entfernen der __COMPAT_LAYER Variable
Diese Einstellungen bestehen bleiben, solange die variable existiert. Die variable Stoppt vorhandene, wenn entweder die Eingabeaufforderung, in der die variable gesetzt wurde, geschlossen ist, oder wenn die variable wird manuell mit dem Befehl unset
set __COMPAT_LAYER=
.Da Sie die Einstellung der variable per batch-script, die variable wird automatisch gelöscht, sobald Sie die ausführbare Datei ziehen, auf die es vollendet, und das Skript wird geschlossen. Es ist wichtig zu beachten, dass die variable Einstellungen beibehalten, um alle untergeordneten Prozesse, die erzeugt werden, indem Sie die ausführbare Datei auswählen.
Die Sicherheit der Nutzung __COMPAT_LAYER
Einstellung __COMPAT_LAYER zu RunAsInvoker eigentlich nicht geben Sie administrator-Privilegien, falls Sie diese nicht haben; es wird einfach verhindert, dass die UAC-pop-up erscheint und dann führt das Programm mit welchem user es aufgerufen. Als solche, ist es sicher diese zu verwenden, da Sie nicht magisch Erlangung admin-Rechte.
Können Sie auch die variable, um RunAsHighest (nur Trigger UAC, wenn Sie admin-Rechte, aber auch nicht gewähren admin-Rechte, wenn Sie diese nicht haben) oder RunAsAdmin (immer löst UAC).
set __COMPAT_LAYER=RunAsAdmin
setx
aus irgendeinem Grund oder so etwas.RunAsAdmin