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 ancd
einen sicheren Ortwollen.
Anforderungen :
- Führen Sie den Befehl mit Administratorrechten von Windows .CMD
oder der Cmd-Shell aus.
- erfordern die normalen Windows-Berechtigungsprüfungen für den Befehl
- Mit anderen Worten, der Befehl funktioniert NICHT, wenn ich nicht bereits mit einem privilegierten Konto angemeldet bin.
- Führen Sie den Befehl mit Administratorberechtigung aus und fahren Sie fort, wenn Sie innerhalb eines Skripts aufgerufen werden. Warten Sie, bis der Befehl abgeschlossen ist.
- Sei einfach, damit es immer funktioniert
- Es muss nicht jedes Mal ein Passwort eingegeben werden, wenn ich bereits angemeldet bin.
- Eine bessere Methode wäre, wenn ich das Passwort einmal eingeben kann, wie es der echte
sudo
Befehl unter Linux tut .
lösung :
- Erstellen Sie ein Befehlsskript, um alle übergebenen Argumente auszuführen.
sudo.cmd
- Erstellen eines Windows - short-cut auf den Befehl Skriptnamen es:
sudo.lnk
.
- Fügen Sie die
sudo
Verknüpfung in Ihren Windows-Pfad ein, damit Sie sie sehen können.
- Bearbeiten Sie die Verknüpfungseigenschaften und machen Sie den
Start in:
Pfad leer.
- Klicken Sie auf die
Advanced
Schaltfläche [ ] - ÜberprüfenRun as Administrator
- Aktivieren Sie Verknüpfungen in Ihrem Windows-Pfad, und verwenden Sie die Umgebungsvariable PATHEXT.
d:> echo %PATHEXT%
.lnk;.EXE;.CMD;.BAT;.COM
Wenn Sie sudo dir
in die Befehlszeile tippen , zeigt Windows das Symbol
User Account Control
Do you want to allow this app to make changes to this device?
[YES] [NO]
Popup-Fenster für die Zugriffskontrolle. Wenn Sie auf "[ NO
]" klicken, geschieht nichts. Windows zeigt eine Access 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:
sudo sc query SDRSVC
SDRSVC ist der Dienstname für "Windows-Sicherungsdienst". Dies zeigt Folgendes in einem separaten Cmd-Fenster:
[sudo]
administrator
---------------
sc query SDRSVC
SERVICE_NAME: SDRSVC
TYPE : 10 WIN32_OWN_PROCESS
STATE : 4 RUNNING
(STOPPABLE, NOT_PAUSABLE, ACCEPTS_SHUTDOWN)
WIN32_EXIT_CODE : 0 (0x0)
SERVICE_EXIT_CODE : 0 (0x0)
CHECKPOINT : 0x0
WAIT_HINT : 0x0
[done]
Press any key to continue . . .
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
:
@echo off
@rem sudo.cmd
cd /d %temp%
@echo.
@echo. administrator
@echo. ---------------
cd
@echo.
@rem _________________________________________________
@rem -- Print usage . . .
@if [""] ==["%~1"] goto USAGE
@if /i ["--HELP"]==["%~1"] goto USAGE
@rem _________________________________________________
@rem
@echo. %*
@rem
%*
@rem
set EXIT_STATUS=%ERRORLEVEL%
@rem -- -- -- -- --
@echo.
@echo. [done]
@rem ______________________________________________________
:Exit
@echo.
@pause
exit /b %EXIT_STATUS%
@rem ______________________________________________________
:USAGE
@echo.
@echo ^Usage:
@echo. sudo ^<complete command line^>
@echo.
@echo. Attempts to rune the: ^<complete command line^>
@echo. under Administrator priviliges. Relies on Windows
@echo. prompt for elevated privileges.
@rem ______________________________________________________
@goto Exit
Der pause
Befehl wartet darauf, dass Sie die Ergebnisse überprüfen. Wenn Sie pause
das Administrationsfenster schließen, wissen Sie nicht, ob der Befehl funktioniert hat oder nicht. Der ERRORLEVEL
from-Befehl wird ebenfalls zurückgegeben.