Esto funciona para mí en todas las plataformas, incluida Windows 10. Mis necesidades son simples, quizás pueda adaptar el enfoque si necesita energía .
Se me ocurrió un pequeño script llamado, sudo.cmd
llamado así por el comando sudo de Linux. Funciona bastante bien, creo. He esbozado los requisitos, los pasos a seguir y el script está cerca de la parte inferior con un ejemplo. Primero una palabra de advertencia.
ADVERTENCIA : el comando se ejecuta en el directorio del sistema de Windows de forma predeterminada. Querrás ircd
a un lugar seguro primero.
requisitos :
- Ejecute el comando con el Administrador con privilegios desde Windows .CMD
o cmd-shell.
- requieren las verificaciones normales de privilegios de Windows en el comando
- En otras palabras, el comando NO funcionará a menos que ya haya iniciado sesión con una cuenta privilegiada.
- Ejecute el comando con permiso de administrador y continúe cuando se le llame dentro de un script. Así que espera a que se complete el comando.
- Sé simple para que siempre funcione
- No es necesario ingresar una contraseña cada vez, si ya estoy conectado.
- Un método mejor sería si puedo ingresar la contraseña una vez como lo hace el
sudo
comando real en Linux.
solución :
- Cree un script de comando para ejecutar todos los argumentos pasados,
sudo.cmd
- Crear un atajo de Windows para el comando nombre del script que:
sudo.lnk
.
- Coloque el
sudo
atajo en la RUTA de su ventana para que se pueda ver.
- Edite las propiedades de
Start in:
acceso directo , deje la ruta vacía.
- Haga clic en el
Advanced
botón [ ] - VerificarRun as Administrator
- Habilite los atajos en su ruta de Windows, use la variable de entorno PATHEXT, a saber.
d:> echo %PATHEXT%
.lnk;.EXE;.CMD;.BAT;.COM
Cuando escriba sudo dir
en la línea de comandos, Windows mostrará el
User Account Control
Do you want to allow this app to make changes to this device?
[YES] [NO]
Control emergente de acceso. Si hace clic en "[ NO
]" no pasará nada. Windows mostrará un " Access is denied.
" mensaje.
Cuando hace clic en "[ YES
]", el comando de directorio se ejecuta con un privilegio elevado. Por supuesto, probablemente desee algo más interesante como detenerse o consultar un servicio:
sudo sc query SDRSVC
SDRSVC es el nombre del servicio para el "Servicio de copia de seguridad de Windows", esto muestra lo siguiente en una ventana separada de Cmd:
[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 . . .
El sudo.cmd
guión en sí es muy básico. Como dije, mis necesidades son simples. Solo quiero detener e iniciar los servicios mientras implemento el código para las pruebas.
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
El pause
comando espera a que revise los resultados. Si pause
saca la ventana de administración, se cierra y no sabe si el comando funcionó o no. El ERRORLEVEL
del comando también se devuelve.