Überprüfen Sie an der Eingabeaufforderung die Höhe

1798
Iszi

Ich versuche, einen Weg zu finden, um autorisierend darzustellen, 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 suche nach etwas mehr entlang der Linien des Erhaltens des Systems selbst ausdrücklich darauf hinweist, dass die aktuelle Sitzung wird erhöht, oder über die Kommandozeile zu zeigen, dass der aktuelle Prozess in einem Integrity Level High 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 (wenn 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), ist für diesen Zweck nicht akzeptabel.

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.

0
@ Ƭᴇcʜιᴇ007 Nicht ganz genau ein Duplikat, da diese Frage strengeren Einschränkungen unterliegt. Eine der Antworten auf die andere Frage, die "whoami / groups" verwendet, scheint jedoch für diese Frage angemessen zu sein. Iszi vor 10 Jahren 0
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 vor 10 Jahren 0
@ Ƭᴇcʜιᴇ007 Ich stimme nicht zu. Ich habe die Antwort von "whoami / groups" genommen und hier ein wenig erweitert, um später darauf zurückgreifen zu können. Iszi vor 10 Jahren 0
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 vor 10 Jahren 0
@ Ƭᴇ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 vor 10 Jahren 0
Auch whoami / groups hat einen Randfall, bei dem Sie falsche Informationen erhalten. Siehe http://stackoverflow.com/questions/4051883/batch-script-how-to-check-for-admin-rights/30921854#30921854 zumalifeguard vor 9 Jahren 0
@zumalifeguard Gut zu wissen, aber es scheint ein * sehr * seltener Fall zu sein. Unter welchen * allgemeinen * Bedingungen kann ein Benutzer das erleben? Iszi vor 9 Jahren 0

2 Antworten auf die Frage

0
LPChip

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.

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

@Joeqwerty Es tut mir leid. Hat es wehgetan? XD LPChip vor 10 Jahren 0
[Alex] (http://superuser.com/a/667745/23133) schlug Sie beide um ein Jahr. ;) Ƭᴇcʜιᴇ007 vor 10 Jahren 0
@ Ƭᴇcʜιᴇ007 Ja, und es tut immer noch weh. LOL LPChip vor 10 Jahren 0
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 vor 10 Jahren 0
Ziemlich sicher, dass dies von der Aktivierung der UAC abhängt. Ohne die Benutzerkontensteuerung sehen nicht alle Eingabeaufforderungen gleich aus? Das scriptwise-Bit ist ein Beispiel für die Art von Lösung, die ich * nicht * suche, wie in der Frage angegeben. Außerdem können Sie hier mit `title Administrator:% comspec%` ein falsch-positives Ergebnis erstellen Iszi vor 10 Jahren 0
@Iszi Ich habe das gerade getestet. Wenn die Benutzerkontensteuerung deaktiviert ist, geschieht dasselbe. Nur die Aufforderung zum Ausführen als erhöht ist weg, es wird jedoch immer noch Administrator angezeigt: ... im Fenstertitel. LPChip vor 10 Jahren 0
LPChip Ihre Antwort ist möglicherweise anders / besser, aber es ist immer noch dieselbe Lösung und auf jeden Fall dieselbe Frage (zumindest IMO). Vielleicht verschieben / fügen Sie Ihre Antwort zu der vorhandenen doppelten Frage hinzu? Ƭᴇcʜιᴇ007 vor 10 Jahren 0
@ Ƭᴇcʜιᴇ007 aber der Teil über das Lesen im Titel wird in diesem anderen Thema nirgends gefragt, während er in diesem Teil zutreffend ist. Für mich sind das also zwei verschiedene Fragen. LPChip vor 10 Jahren 0
@LPChip Beachten Sie auch, dass ich genau diesen Fall in meiner Erklärung berücksichtigt habe, was "nicht akzeptabel" ist. Iszi vor 10 Jahren 0
@LPChiip Nein, du beantwortest die Frage anders als die Frage. In dieser Frage heißt es sogar: "Ermitteln des Höhenstatus anhand 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 vor 10 Jahren 1
0
Iszi

Eine gute Antwort hier im Duplikat gefunden .

Sie können mit whoamidem /groupsParameter, die die Berechtigungen für den aktuellen Benutzer zugewiesen sehen. Diese Berechtigungen sind auch sitzungsspezifisch, dh: Wenn die Sitzung nicht erhöht ist, whoami /groupsfehlt die Gruppe, die für erhöhte Sitzungen erteilt wird. Die Verwendung des whoamiBefehls und der /groupsParameter sind im TechNet-Artikel für Whoami dokumentiert .

Die Gruppe, nach der Sie suchen müssen, ist SID S-1-16-12288, auch bekannt als "High Mandatory Level". 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 nicht findmit allen aufgelisteten Gruppen visuell durchsuchen, sondern mit folgender Syntax weiterleiten:

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 prüfen, findum 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).