1.3K
Cuando abre la consola de PowerShell en Windows a través de la barra de búsqueda, el acceso directo o el elemento anclado de la barra de tareas, el proceso de powershell.exe se inicia en modo sin privilegios. En este modo, no podrá realizar cambios en el sistema ni realizar tareas administrativas. En este artículo, veremos algunas formas sencillas de ejecutar una consola o secuencia de comandos de PowerShell como administrador.
Ejecute PowerShell como administrador usando la barra de búsqueda de Windows
- Haga clic en el botón Inicio o presione la tecla de Windows en su teclado;
- Escriba powershell en el campo de búsqueda;
- Haga clic derecho en el icono de Windows PowerShell y seleccione Ejecutar como administrador (o seleccione este elemento en el panel derecho);
- Aparecerá una ventana de UAC, en la que debe confirmar el inicio del proceso en el modo elevado.
También hay un elemento separado para iniciar PowerShell con permisos elevados en el menú Win+X de Windows 10 y 11. Simplemente presione ventanas + X en su teclado o haga clic con el botón derecho en el botón Inicio y seleccione Windows PowerShell (Administrador).
Crear un acceso directo en la barra de tareas para ejecutar PowerShell como administrador
Si suele ejecutar la consola de PowerShell como administrador, puede crear un acceso directo para iniciar PowerShell en modo elevado automáticamente.
- Busque el icono de PowerShell en el menú de inicio, haga clic derecho sobre él y seleccione Pin a la barra de tareas;
- Haga clic con el botón derecho en el ícono de PowerShell en la barra de tareas, seleccione Windows PowerShell > haga clic con el botón derecho > Propiedades;
- Haga clic en el Avanzado botón y habilite el Ejecutar como administrador opción;
- Haga clic en Aceptar dos veces.
Ahora, cuando haga clic en el ícono de PowerShell en la barra de tareas, la consola PS siempre se abrirá en modo privilegiado.
¿Cómo ejecutar un script de PowerShell como administrador?
Cuando ejecuta cualquier script de PowerShell (archivo PS1) en una sesión elevada, se ejecuta como administrador. O puede ejecutar un archivo de script de PowerShell como administrador con el siguiente comando:
Start-Process powershell -verb runas -ArgumentList "-file C:\PS\Scripts\myPSScript.ps1"
Pista. Asegúrese de que la Política de ejecución de PowerShell en su computadora no bloquee la ejecución de los scripts de PowerShell.
Puede abrir la consola como administrador con el siguiente comando:
powershell Start-Process powershell -Verb runAs
Puede ejecutar este comando en el símbolo del sistema cmd.exe, PowerShell o usando el Correr característica.
Cuando ejecuta este comando, aparece una ventana de UAC que le pide que confirme la escalada de privilegios:
Control de cuentas del usuario
¿Desea permitir que esta aplicación realice cambios en su dispositivo?
Windows PowerShell
¿Ejecuta PowerShell como administrador sin aviso de UAC?
No se recomienda deshabilitar UAC en Windows. Por lo tanto, puede implementar uno de los siguientes escenarios para ejecutar una consola de PowerShell con derechos de administrador sin un aviso de UAC. Se supone que su cuenta es miembro del grupo de administradores locales. De lo contrario, Windows le pedirá que ingrese la contraseña de administrador en un aviso de UAC.
Puede:
- Ejecute powershell.exe desde el Administrador de tareas.
- Cree una nueva tarea programada con la casilla de verificación «Ejecutar con los privilegios más altos» habilitada.
En el primer caso:
- ) Abra el Administrador de tareas (Ctlr+Alt+Esc o haga clic con el botón derecho en la barra de tareas y seleccione Administrador de tareas);
- Seleccione el elemento de menú Archivo > Ejecutar nueva tarea;
- En la ventana Abrir, escriba potencia Shell y habilite la opción Crear la tarea con privilegios administrativos;
- Haga clic en Aceptar. La consola de PowerShell debería abrirse sin un aviso de UAC.
Nota. Aprenda a usar PowerShell para comprobar el estado de un servicio de Windows.
Ahora vamos a crear una tarea programada para ejecutar PowerShell como administrador:
- Abra la consola del Programador de tareas (taskschd.msc);
- Seleccione Acción > Crear tarea;
- Especificar el nombre de la tarea PowerShellAdminTask;
- Marque la opción Ejecutar con los privilegios más altos;
- Seleccionar ventanas 10 en el formulario Configurar;
- Desmarque la Oculto caja;
- Vaya a la pestaña Acciones y seleccione Nuevo > Iniciar un programa;
- Copie la siguiente línea en el campo Programa C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe;
- Guarda tu tarea.
Ahora, para ejecutar la consola de PowerShell como administrador sin un aviso de UAC, seleccione el PowerShellAdminTask tarea en la consola del Programador de tareas, haga clic derecho sobre ella y seleccione Correr.
O puede ejecutar el trabajo desde un símbolo del sistema no elevado con el comando:
schtasks.exe /run /tn PowerShellAdminTask
Puede usar la solución del Programador de tareas para ejecutar scripts de PowerShell como administrador sin la intervención del usuario. En este caso, en el Agregar argumento campo, debe especificar la ruta a su secuencia de comandos de PowerShell en el siguiente formato:
-executionpolicy bypass -file c:\ps\scripts\myposhscript.ps1
En este caso, el script se ejecutará como administrador, incluso si la política de ejecución de PowerShell está habilitada, lo que bloquea la ejecución de scripts sin firmar.
Comprobar si PowerShell se está ejecutando como administrador
Si su consola powershell.exe se ejecuta con privilegios de administrador, el título de la ventana dirá Administrador: Windows PowerShell.
En algunos scripts de PowerShell, a veces es necesario verificar si el script se ejecuta con privilegios de administrador antes de iniciar cualquier acción.
Ejecute el comando:
[Security.Principal.WindowsIdentity]::GetCurrent().Groups -contains 'S-1-5-32-544'
Si el comando devolvió True, entonces esta sesión de PowerShell se inició con permisos de administrador.
En PowerShell v4.0 y posteriores, puede usar una declaración especial al comienzo de sus secuencias de comandos para evitar que una secuencia de comandos de PowerShell se ejecute como un usuario normal (no administrador):
#Requires -RunAsAdministrator
Si se ejecuta un script con una declaración de este tipo en un proceso de PowerShell no elevado, recibirá un mensaje de error:
El script ‘test_admin_script.ps1’ no se puede ejecutar porque contiene una instrucción «#requires» para ejecutar como administrador. La sesión actual de Windows PowerShell no se ejecuta como administrador. Inicie Windows PowerShell con la opción Ejecutar como administrador y luego intente ejecutar el script nuevamente.