Gibt es eine Möglichkeit, ein Programm oder einen Befehl mit erhöhten Rechten auszuführen, wenn ich mich bereits in einer nicht erhöhten Befehlszeile befinde?
Genau die gleiche Aktion, die ausgeführt wird, wenn ich auf die Programmverknüpfung klicke und Als Administrator ausführen auswähle .
Der Befehl runas ist wahrscheinlich keine Lösung - er fragt nach einem Kennwort, aber ich möchte nur den UAC- Dialog.
windows
administrator
privileges
Lukas Cenovsky
quelle
quelle
In PowerShell gibt es eine Möglichkeit, dies zu tun :
quelle
powershell -Command "Start-Process 'C:\program.exe' -Verb runAs"
powershell -Command "Start-Process 'gvim' 'c:\windows\system32\drivers\etc\hosts' -Verb runAs"
. Vielen Dank!$p = Start-Process powershell -Verb runAs -ArgumentList "-Command ``"& { ``$Host.SetShouldExit(123) }``"" -PassThru; $p.ExitCode
Aufbauend auf Rustam ‚s Antwort , können Sie:
su.bat
Stapeldatei mit dem folgenden Einzeiler an einer beliebigen Stelle in Ihrer Standardeinstellung% PATH%:@powershell start -verb runas %*
function su {start -verb runas @args}
Jetzt können Sie
su <command> [parameters]
in jeder Shell ausgeben !quelle
RunAdmin ist ein kleines Dienstprogramm (150 KB), mit dem Sie ein Programm über die Befehlszeile mit erhöhten Rechten ausführen können (es zeigt die Benutzerkontensteuerung an). Und im Gegensatz zu Hidden Start ist Freeare.
quelle
Dies funktioniert für mich auf allen Plattformen, einschließlich Windows 10. Meine Anforderungen sind einfach. Vielleicht können Sie den Ansatz anpassen, wenn Sie Strom benötigen .
Ich hatte ein kleines Skript mit dem Namen "
sudo.cmd
Linux sudo". Es funktioniert gut genug, denke ich. Ich habe die Anforderungen, die Schritte, die zu befolgen sind, umrissen und das Skript befindet sich unten mit einem Beispiel. Zuerst ein warnendes Wort.WARNUNG : Der Befehl wird standardmäßig im Windows-Systemverzeichnis ausgeführt. Sie werden zuerst an
cd
einen sicheren Ortwollen.Anforderungen :
oder der Cmd-Shell aus.
sudo
Befehl unter Linux tut .lösung :
sudo.cmd
sudo.lnk
.sudo
Verknüpfung in Ihren Windows-Pfad ein, damit Sie sie sehen können.Start in:
Pfad leer.Advanced
Schaltfläche [ ] - ÜberprüfenRun as Administrator
Wenn Sie
sudo dir
in die Befehlszeile tippen , zeigt Windows das SymbolPopup-Fenster für die Zugriffskontrolle. Wenn Sie auf "[
NO
]" klicken, geschieht nichts. Windows zeigt eineAccess is denied.
Meldung " " an.Wenn Sie auf "[
YES
]" klicken, wird der Verzeichnisbefehl mit erhöhten Rechten ausgeführt. Natürlich möchten Sie wahrscheinlich etwas Interessanteres wie das Beenden oder Abfragen eines Dienstes:SDRSVC ist der Dienstname für "Windows-Sicherungsdienst". Dies zeigt Folgendes in einem separaten Cmd-Fenster:
Das
sudo.cmd
Skript selbst ist sehr einfach. Wie gesagt, meine Bedürfnisse sind einfach. Ich möchte nur Dienste beenden und starten, während ich Code zum Testen bereitstelle.sudo.cmd
:Der
pause
Befehl wartet darauf, dass Sie die Ergebnisse überprüfen. Wenn Siepause
das Administrationsfenster schließen, wissen Sie nicht, ob der Befehl funktioniert hat oder nicht. DerERRORLEVEL
from-Befehl wird ebenfalls zurückgegeben.quelle
Dies funktioniert unter Windows 10 und wurde nicht mit anderen Windows-Versionen getestet.
Ein Beispiel zum Öffnen von Notepad mit Administratorrechten von cmd.exe, das Powershell startet und nach erhöhten Berechtigungen fragt.
Dadurch erhalten Sie ein UAC-Dialogfeld (falls aktiviert) mit [Ja] [Nein], oder Sie werden nach dem Administratorkennwort gefragt.
Ein weiteres Beispiel zum Öffnen der Hosts-Datei mit dem Editor wäre:
Weitere Informationen: https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.management/start-process?view=powershell-6
quelle
-ArgumentList
Parameter sein, nicht einfach zusätzliche Parameter, die gestartet werden sollen.Schauen Sie sich Start ++ an - es hat diese Funktionalität zusammen mit vielen anderen nützlichen Dingen. Um mit der UAC-Eingabeaufforderung zu starten, geben Sie einfach
sudo
Ihren Programmnamen in die Befehlszeile ein, wie hier gezeigt:Hier sind einige andere Funktionen (Sie können auch Ihre eigenen hinzufügen):
quelle
Sie können einstellen
__COMPAT_LAYER=RunAsAdmin
. Dann werden die Befehle in einer separaten erhöhten ausgeführtcmd
.Beispiel
.bat
:Alle Optionen für den Kompatibilitätsmodus sind im MS Application Compatibility Toolkit aufgeführt.
quelle
;
als Kommentar-Trennzeichen verwenden. "Stapeldateien erkennen das Semikolon nicht und verursachen im Allgemeinen eine Fehlermeldung über einen fehlerhaften Befehl."