Auf Elevation an der Eingabeaufforderung prüfen [duplizieren]

0

Ich versuche, einen Weg zu finden, um autorisierend zu zeigen, ob eine Eingabeaufforderung mit der Eingabeaufforderung (CMD.exe) in einer Windows-Standardinstallation ausgeführt wird oder nicht. Die meisten Methoden, die ich je gesehen habe, sind auf nicht native Tools, Software von Drittanbietern oder Proxy-Indikatoren angewiesen, die nicht unbedingt zuverlässig oder kompatibel für alle Systeme sind. Ich bin auf der Suche nach etwas mehr, um das System selbst dazu zu bringen, die aktuelle Sitzung explizit anzugeben ist erhöht, oder um über die Befehlszeile anzuzeigen, dass der aktuelle Prozess auf einem Integritätsgrad von Hoch ausgeführt wird.

Ein Beispiel (aber nicht unbedingt eine absolute Definition) von etwas, das akzeptabel wäre, wäre ein Befehl, der die aktuelle PID abruft und anzeigt, gefolgt von einem anderen Befehl (falls nicht gleich), der den Integritätsgrad für diese PID anzeigt. Befehle, die sich auf die Auswirkungen einer bestimmten Ausgabe verlassen (z. B. die Annahme, dass die Sitzung erhöht ist, wenn Sie bestimmte Befehle ausführen können, oder die Ermittlung des Höhenstatus basierend auf der Titelleiste des Fensters), sind für diesen Zweck nicht zulässig.

Lösungen sollten bis zu Windows 7 Pro SP0 kompatibel sein. Obwohl diese Systeme über PowerShell verfügen, ist dies für diesen Zweck keine Option. Software, die nicht in das Betriebssystem integriert ist, ist keine Option.

Iszi
quelle
@ Ƭᴇcʜιᴇ007 Nicht ganz genau ein Duplikat, da diese Frage strengere Einschränkungen hat. Eine der Antworten auf die andere Frage ist jedoch die, die verwendet wird whoami /groups - scheint für diesen angemessen zu sein.
Iszi
Es ist immer noch ein Duplikat, IMO. Es stellte die Frage, die Sie wollten (nur ein wenig breiter), und gab Ihnen eine Antwort, die funktioniert. Unabhängig davon braucht es mehr als meine Stimme, um es zu schließen. :)
Ƭᴇcʜιᴇ007
@ Ƭᴇcʜιᴇ007 Ich stimme nicht zu. Ich habe den genommen whoami /groups Antwort und erweiterte es hier ein wenig für die zukünftige Referenz, und stimmte auch dafür, es als Duplikat zu schließen.
Iszi
Klingt gut für mich. Um den Rekord auf den Punkt zu bringen, ist keine der negativen Stimmen zu dieser Frage und Antwort von mir. Nur eine der knappesten Stimmen ...
Ƭᴇcʜιᴇ007
@ Ƭᴇcʜιᴇ007 Danke für die Rückmeldung. Ich weiß nicht, warum jemand die Frage ablehnt. Das Vorhandensein eines Duplikats ist kein SE-angemessener Grund für die Abstimmung. Was meine Antwort anbelangt, so kam die Ablehnung, bevor ich damit fertig war. Ich würde also niemanden dafür verantwortlich machen, da es zu dieser Zeit tatsächlich nur eine Link-Antwort war. (Technisch gesehen sollte dies jedoch eine Flagge sein - keine Ablehnung.)
Iszi

Antworten:

0

Wenn Sie eindeutig sehen möchten, ob die Sitzung erhöht ist und nicht in einem Skript verwendet wird, überprüfen Sie einfach den Titel. Es wird Administrator sagen: Auch im Titel wird angezeigt, dass die Befehlseingabe erhöht ausgeführt wird.

Außerdem wird ein cmd, das mit erhöhten Rechten gestartet wird, nicht in Ihrem Benutzerverzeichnis, sondern im Ordner c: \ windows \ system32 gestartet.

enter image description here

enter image description here

Skriptweise können Sie Systembefehle ausführen, für die eine Erhöhung erforderlich ist, beispielsweise "at". Es wird mit einer Nachricht fehlschlagen Access is denied. und% errorlevel% wird auf 1 gesetzt, sodass Sie es auch mit einem Batch-Skript überprüfen können. Ansonsten ist% errorlevel% 0.

LPChip
quelle
@Joeqwerty tut mir leid. Hat es wehgetan? XD
LPChip
Alex schlag euch beide um ein Jahr. ;)
Ƭᴇcʜιᴇ007
@ Ƭᴇcʜιᴇ007 Ja, und es tut immer noch weh. LOL
LPChip
Der Unterschied hier ist, dass ich auch erwähne, wie der Benutzer es sehen kann, anstatt ein Skript zu verwenden, das sich von Alex 'Antwort unterscheidet.
LPChip
1
@LPChiip Nein, du beantwortest die Frage anders als die Frage. In dieser Frage heißt es sogar: "Ermitteln des Höhenstatus basierend auf der Titelleiste des Fensters) ist für diesen Zweck nicht akzeptabel". Sie haben also nur unerwünschte Informationen hinzugefügt und behaupten, dass sich die Frage (die Frage selbst) aufgrund der ausgewählten Informationen unterscheidet in deine Antwort einzuführen Ist für mich nicht sinnvoll, aber hey, es ist eine freie Welt. ;)
Ƭᴇcʜιᴇ007
0

Eine gute Antwort im Duplikat gefunden, Hier .

Sie können verwenden whoami mit dem /groups Parameter, um die dem aktuellen Benutzer zugewiesenen Berechtigungen anzuzeigen. Diese Berechtigungen sind auch sitzungsspezifisch - d. H .: wenn die Sitzung nicht erhöht ist, whoami /groups fehlt die Gruppe, die für erhöhte Sitzungen gegeben wird. Verwendung der whoami Befehl und die /groups Parameter ist im TechNet-Artikel für dokumentiert Wer bin ich .

Die Gruppe, nach der Sie suchen müssen, ist SID S-1-16-12288auch als "High Mandatory Level" bezeichnet. Weitere Informationen finden Sie im TechNet-Artikel. Bekannte Sicherheits-IDs in Windows-Betriebssystemen .

Wenn Sie die Aufgabe für sich selbst vereinfachen möchten, müssen Sie die Ausgabe an alle gelisteten Gruppen weiterleiten, anstatt sie visuell zu durchsuchen find mit der folgenden Syntax:

whoami /groups | find "S-1-16-12288"

Dadurch wird die Zeile ausgegeben, die die SID enthält, wenn sie gefunden wird, oder eine leere Ausgabe, wenn die SID nicht gefunden wird. (In letzterem Fall würde dies auf eine nicht erhöhte Sitzung hindeuten.) In einem Skript können Sie auch die Fehlerstufe von überprüfen find um festzustellen, ob die Gruppe gefunden wurde oder nicht. Eine Fehlerstufe von Null zeigt eine erfolgreiche Suche an (erhöhte Sitzung), während eine Fehlerstufe von Eins angibt, dass die Gruppe nicht gefunden wurde (nicht erhöhte Sitzung).

Iszi
quelle