Ich arbeite auf meinem Windows-Computer immer mit einem Konto, das kein Administrator ist. Manchmal muss ich Programme installieren, für die Administratorzugriff erforderlich ist. Gibt es einen Windows-Befehl zum Eskalieren von Berechtigungen, der dem Linux-Terminalbefehl ähnelt, da ich meistens die Windows-Eingabeaufforderung verwende sudo
?
windows
command-line
privileges
ukanth
quelle
quelle
doskey sudo= runas /user:Administrator "cmd /k cd \"%cd%\" & $*"
wsudo
, einsudo
ähnliches Tool für Windows, das als Chocolatey-Paket erhältlich ist.Antworten:
Der Befehl runas .
Renn einfach:
um eine Befehlsshell als Administrator zu starten
quelle
/noprofile
.Runas
Führt lediglich Befehle mit anderen Anmeldeinformationen aus. Obwohl Ihre Anmeldeinformationen über Administratorberechtigungen verfügen, werden nicht alle Prozesse unter Ihren Anmeldeinformationen als Administrator ausgeführt.Ich entdeckte , heben heute die „einen Befehl mit UAC Erhöhung von Berechtigungen führt. Diese für die Arbeit innerhalb Eingabeaufforderungen oder mit Batch - Dateien nützlich ist.“ Es ist nicht dasselbe wie
sudo
, es ändert den ausführenden Benutzer in Administrator, aber seine Syntax ist viel einfacher zu verwenden alsrunas
und es kann das aktuelle Verzeichnis beibehalten, wodurch die Verwendung relativer Pfade ermöglicht wird.Der Zweck von Elevate besteht nicht darin, die Benutzerkontensteuerung (User Account Control, UAC) zu umgehen oder zu umgehen, sondern damit zu arbeiten. Solange die Benutzerkontensteuerung aktiviert ist , muss zu einem bestimmten Zeitpunkt eine Eingabeaufforderung vorliegen. Wenn Sie alle Eingabeaufforderungen entfernen müssen, müssen Sie die Benutzerkontensteuerung deaktivieren .
Die Schmerzpunkterhöhung lindert das Eskalieren eines bestimmten Prozesses von einer nicht privilegierten Shell und macht dann wie gewohnt weiter. Ohne dies müssen Sie eine privilegierte Eingabeaufforderung mit einem Rechtsklick> "Als Administrator ausführen" starten , die nicht einfach per Skript ausgeführt werden kann, bevor Sie den privilegierten Befehl ausführen.
quelle
%wheel ALL=(ALL) NOPASSWD: ALL
in sudo.@elevate %*
=> Gewinn!Sie können den ähnlichen Befehl runas verwenden oder das Projekt sudo für Windows unter SourceForge auschecken, das einen Befehl sudo hinzufügt.
Der Unterschied ist subtil:
Angenommen, Sie haben zwei Benutzer. Bob ist ein normaler Benutzer und James ein Administrator.
Wenn Sie sich als Bob anmelden und den Befehl "runas james acommand" verwenden, wird der Befehl so ausgeführt, als ob er von James ausgeführt wurde. Dadurch wird auf die Benutzereinstellungen von James zugegriffen, und alle Benutzeränderungen werden in die Ordner " James My Documents & settings " usw. verschoben B. eine Anwendung installieren, wird sie als James und nicht als Bob installiert.
Wenn Bob andererseits "sudo" -Befehl ausführt, wird der Befehl immer noch als Bob ausgeführt, jedoch mit erhöhten Berechtigungen - genau wie der Linux-Befehl sudo. Um zu verhindern, dass ein Benutzer sudo ausführen kann, müssen Sie eine Benutzergruppe für sudoer definieren, die die Liste der normalen Benutzer enthält, die über die Berechtigung verfügen, sudo zu verwenden. Die Benutzer müssen vor der Erhöhung noch Anmeldeinformationen eingeben.
Manchmal ist der Unterschied nicht wichtig, manchmal ist er es, und ich finde, dass beide Befehle nützlich sein können.
quelle
~/.themes
ist, kann die sudo-ed-Anwendung nicht auf dieses Theme zugreifen, da es nicht in ist/home/root/.themes
, und verwendet das voreingestellte hässliche GTK-Theme.Sie können auch die PowerToys zur Skripterhöhung verwenden .
quelle
Wenn Sie bereit sind, zu alternativen Konsolen zu wechseln, gibt es ConEmu (ich bin der Autor). Eine seiner Funktionen - die Möglichkeit, sowohl erhöhte als auch nicht erhöhte Tabs in einem ConEmu-Fenster auszuführen. Registerkarten können auch mit anderen Anmeldeinformationen gestartet werden.
Für den Benutzerkomfort gibt es die Batch-Datei csudo.cmd (die leicht in bash übernommen werden kann). Lesen Sie die vollständige Beschreibung im Wiki des Projekts . Kurz gesagt, wenn Sie beispielsweise einen Befehl von einer vorhandenen nicht erhöhten Registerkarte ausführen
ConEmu wird
dism
in der neuen erhöhten Konsole / Registerkarte gestartet (mit vorheriger UAC-Eingabeaufforderung in Vista oder Login-Box in XP).Standardmäßig
csudo
startet die neue Konsole in einem Split (Änderungen können durch Bearbeiten descsudo.cmd
Inhalts erfolgen).Und natürlich können Sie es umbenennen,
sudo.cmd
wenn Sie "klassisches"sudo
Wort mögen .quelle
press enter or esc to exit
Nachricht.sudo
Befehl ausgeführt wurde! Sie gehen in die falsche Richtung.Schnelle Methode:
Drei Schritte zum Hinzufügen von sudo.
Öffnen Sie PowerShell.
Kopieren Sie das folgende Skript (Strg + C) und fügen Sie es in PowerShell ein (Alt + Leertaste + E + P):
Der
sudo
Befehl in PowerShell wird dauerhaft aktiviert .Verwendungszweck:
Beispiele:
Lange Methode zum Lernen:
Hinweis: Ich habe das Skript aus beiden Artikeln gemischt, um das oben genannte Skript zu erstellen. Anstatt das Skript manuell in den Editor einzufügen, habe ich die
Out-File
zu speichernden Anweisungenps1
und$profile
Dateien aus dem Skript hinzugefügt .Tipp: Wenn Sie kein großer Fan von UAC-Popups sind (wie ich), speichern Sie Folgendes in der * .reg-Datei und führen Sie sie aus:
quelle
. : File C:\Users\User\Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1 cannot be loaded because running scripts is disabled on this system.
set-executionpolicy remotesigned
. Andere Optionenremotesigned
sind in offiziellen Dokumenten beschrieben .powershell -c start -verb runas program.exe
Funktionalität ist. Beachten Sie auch, dass Sie mit der Eingabeaufforderung cmd (nativ) nicht so hochfahren können. Powershell ist die beste native Option.Wenn Sie dies unter Windows tun, gibt es neben dem Befehl Ausführen als, wie in einigen anderen Antworten erwähnt, auch Möglichkeiten, dies mit der Maus zu tun.
Wenn Sie die ShiftTaste gedrückt halten, während Sie mit der rechten Maustaste auf die meisten ausführbaren Dateien in Windows klicken, sollten Sie einige erweiterte Optionen bemerken. Eine davon ist die
Run As...
Option " " (ich glaube, sie heißtRun As Administrator
ab Vista " ").Sie können auch eine erweiterte Version von RunAs von Microsoft, ShellRunAs , herunterladen . Dies hat Verbesserungen gegenüber dem integrierten RunAs-Befehl, sowohl im Befehlszeilen- als auch im Grafikmodus, einschließlich des Speicherns von Kontoanmeldeinformationen
quelle
Es gibt eine Schokoladenpackung mit dem passenden Namen sudo . Sie können das Paket mit diesem Befehl mit chocolatey installieren:
Dann können Sie in jeder Windows / MS-Shell, die Sie verwenden müssen,
sudo
wie erwartet verwenden.quelle
Surun ist eine kostenlose Open-Source-Anwendung, mit der bestimmte Programme mit Administratorrechten ausgeführt werden können, ohne ein Kennwort anzugeben , ohne die Benutzerregistry zu ändern oder Umgebungsvariablen zu ändern.
Wenn ich Windows XP verwendet habe, hilft mir diese App sehr. Beta läuft unter Windows 7.
quelle
Wie Sie wahrscheinlich festgestellt haben, können Sie mit runas als ein anderer Benutzer ausgeführt werden, aber es kann keine Erhöhung durchführen und es werden keine aktuellen Verzeichnisse, Umgebungsvariablen oder langen Befehlszeilen übergeben.
Die Hamilton C-Shell löst das mit einem echten Su und Sudo. Mit su können Sie einen Befehl als ein anderer Benutzer ausführen. Mit sudo (eigentlich ein Alias für su) können Sie einen Befehl mit erhöhten Rechten ausführen. Sie können auch beides ausführen, indem Sie als anderer Benutzer mit erhöhten Rechten ausgeführt werden. Aktuelle Verzeichnisse, Umgebungsvariablen und lange Befehlszeilen werden als Shared-Memory-Handshake zwischen su, das im Kontext des Aufrufers ausgeführt wird, und einer Kopie von su übergeben, die als Zwischenspiel mit den neuen Anmeldeinformationen ausgeführt wird, mit denen das untergeordnete Element gestartet wird. Vollständige Offenlegung: Ich bin der Autor.
quelle
Ein funktionierender
sudo
Ersatz für Cygwinsmintty
Terminal wäre, das folgende Skript in den PATH des Benutzers einzufügen:Für mich ist dies der einzig praktikable Ersatz, um die Rechte von Programmen wie
vim
odercygrunsrv
während der Arbeit in einem Terminal unter Windows zu erhöhen .quelle
Dieses Skript erledigt die Arbeit:
Speichern Sie es als
sudo.cmd
dann fügen Sie es Ihrem PFAD hinzuHinweis: Das
runas
bedeutet in diesem Zusammenhang "Als Administrator ausführen" und nicht "Als anderer Benutzer ausführen".Von hier genommen und leicht bearbeitet, um den cscript.exe-Header aus der Ausgabe zu entfernen
quelle
Die meiner Ansicht nach einfachste Lösung ist die Nutzung von Powershell für die Ausführung der Arbeit, die portabel ist und den Benutzer zur Verwendung der Benutzerkontensteuerung auffordert.
Sie können dies einfach in einer beliebigen Shell ausführen (cmd oder powershell)
quelle
Das folgende VBS-Skript erledigt den Trick für mich. Ich ziehe es an
C:\Windows\System32
Beispiel für die Verwendung an einer Eingabeaufforderung
sudo net start service
quelle