runas, wenn Sie bereits Administrator sind

2210
dargaud

Etwas entgeht mir beim Versuch, Runas zu verwenden, um Privilegien zu erhöhen. Einfache Win10-Maschine mit Einzelbenutzer, die bereits über Administratorrechte verfügt. Ich muss einen bestimmten Registrierungsschlüssel über ein Skript schreiben, erhalte jedoch "Zugriff verweigert", wenn ich den Befehl reg direkt ausprobiere.

> reg ... ERROR: Access is denied. 

Wenn ich es versuche:

> runas /user:Administrator Command Enter the password for Administrator: 1326: The user name or password is incorrect. 

Es verweigert mein Benutzerpasswort. Ich glaube nicht, dass es auf einem lokalen Computer ein bestimmtes Administratorkennwort gibt, oder? Es gibt kein anderes Konto. Versuchen:

> runas /user:MyUser Command Enter the password for MyUser: 740: The requested operation requires elevation 

Wie kann ich also Privilegien von der Kommandozeile aus erhöhen?!? Warum kann ich nicht sehen, dass ich hier Administratorrechte habe:

>runas /showtrustlevels The following trust levels are available on your system: 0x20000 (Basic User) 

EDIT: Vielleicht sollte ich mir klarer darüber klar werden, was ich tun möchte. Von einem C-Programm aus möchte ich eine Änderung an WT_KEY_HKLM vornehmen, "Software \ Microsoft \ Windows \ CurrentVersion \ Run". Ich könnte dies direkt in XP tun, aber in neueren Windows-Versionen hat dies keine Auswirkungen. Wenn Sie in der Befehlszeile "reg" ausführen, wird der Zugriff verweigert. Ich möchte mein Programm nicht mit erhöhten Privilegien ausführen, also war muy die Idee, etwas wie system ("runas reg ...") zu tun, bei dem es nach dem Passwort gefragt und die Registrierung geändert werden würde. Aber ich kann den Befehl nicht einmal über die Befehlszeile zum Laufen bringen. Vielleicht kann jemand den richtigen Weg vorschlagen, um das zu tun?

1
Haben Sie die Eingabeaufforderung "als Administrator" geöffnet? Ƭᴇcʜιᴇ007 vor 7 Jahren 0
Was wäre der Sinn von Runas? dargaud vor 7 Jahren 0

3 Antworten auf die Frage

1
FoxMcloud5655

Das Administratorkonto ist standardmäßig gesperrt, sodass andere Benutzer es nicht missbrauchen können. Wenn Sie versucht haben, ein leeres Kennwort für den Befehl "runas / user: Administrator" zu verwenden, können Sie feststellen, dass das Konto gesperrt ist.

Wenn Ihr Benutzer bereits über Administratorrechte verfügt, sollten Sie auf den Befehl "reg" zugreifen können. Auf meiner Maschine kann ich.

Leider können Sie "runas" nicht verwenden, um auf einen erhöhten Befehl zuzugreifen. Sie müssen dies über eine Eingabeaufforderung mit erhöhten Rechten tun. Dies kann entweder mit dem Befehl "runas" erstellt werden (was in Ihrem Fall nicht funktioniert) oder indem Sie mit der rechten Maustaste auf "cmd.exe" klicken und "Als Administrator ausführen" auswählen.

Der Benutzer hat Administratorrechte, aber der Zugriff auf _some_-Registrierungsschlüssel wurde verweigert (siehe meine Bearbeitung). dargaud vor 7 Jahren 0
1
S Roddick

Ersetzen Sie [Benutzer] und [Befehl] durch das, was Sie verwenden möchten, und versuchen Sie Folgendes:

powershell.exe -ExecutionPolicy Bypass -command "& " 

Pros:

  • Es kann in einer nicht aufgerufenen Eingabeaufforderung verwendet werden, die Verknüpfungen zum Ausführen von Fenstern und Fenstern
  • Es erhöht nur den Befehl. Beim Erhöhen des Befehls werden die PowerShell-Fenster nicht ausgeführt.

Nachteile:

  • Sie werden immer aufgefordert, sich anzumelden (es gibt keine Möglichkeit, Anmeldeinformationen zu speichern, wie dies bei runas der Fall ist). - Dies kann ein Profi sein.
  • Es wird eine Aufforderung zur Benutzerkontensteuerung angezeigt, wenn die Benutzerkontensteuerung aktiviert ist. Dies ist beim Erhöhen mit der Benutzerkontensteuerung nicht zu vermeiden.
  • Es öffnet (und schließt) zwei PowerShell-Fenster, während die Anmeldeinformationen und die Höhe verarbeitet werden
  • Anführungszeichen im Befehl sind problematisch (oder werden zumindest schnell zu schnell). Sie sollten jeden Befehl, der Anführungszeichen benötigt, in eine Batchdatei einfügen und die Batchdatei als Befehl ausführen.

Wenn Sie diesen Befehl an einer PowerShell-Eingabeaufforderung ausführen möchten, kann er folgendermaßen verkürzt werden:

Start-Process powershell.exe -Credential '[user]' -ArgumentList 'Start-Process ""[command]"" -Verb runAs`' 

S.

Schön gemacht; Sie können "-WindowsStyle Hidden" zum äußeren "Start-Process" -Aufruf hinzufügen, um das PowerShell-Zusatzfenster auszublenden. Nebenbei bemerkt: Sie müssen keinen Befehl einfügen, den Sie an `-command` in` & {...} `übergeben - siehe [hier] (https://github.com/PowerShell/PowerShell-Docs/issues) / 2750). mklement0 vor 5 Jahren 0
0
lmbs

Sie können die Befehlszeile als Administrator ausführen, indem Sie mit der rechten Maustaste auf das Befehlszeilensymbol oder cmd.exe klicken und auswählen, dass es als Administrator ausgeführt werden soll. Auf diese Weise werden Sie in einer Eingabeaufforderung mit erhöhten Rechten angezeigt und sollten das beschriebene Problem nicht haben. Sie müssen auch keine Runas verwenden, wenn Sie die Befehle eingeben.

Ich möchte keine manuelle Aktion außer der Eingabe des Passworts. Siehe meine Bearbeitung, warum. dargaud vor 7 Jahren 0