2010-02-12 21:46:32 +0000 2010-02-12 21:46:32 +0000
63
63

cómo ejecutar un script de powershell como administrador

En mi escritorio de Windows 7, tengo script.ps1, que necesita privilegios de administrador (inicia un servicio). Quiero hacer clic en este script y ejecutarlo con privilegios de administrador.

¿Cuál es la forma más fácil de lograrlo?

Respuestas (7)

53
53
53
2010-02-13 12:58:54 +0000

Aquí hay una forma de hacerlo, con la ayuda de un icono adicional en su escritorio. Supongo que podrías mover el guión a otra persona si quisieras tener un solo icono en tu escritorio.

  1. Crear un acceso directo a su script Powershell en su escritorio
  2. Haga clic con el botón derecho del ratón en el acceso directo y haga clic en Propiedades
  3. Haga clic en la pestaña Atajo
  4. Haga clic en Avanzado
  5. Seleccione Ejecutar como administrador

Ahora puede ejecutar el guión elevado con un simple doble clic en el nuevo atajo del escritorio.

20
20
20
2013-01-10 17:29:06 +0000

En los sistemas habilitados para UAC, para asegurarse de que un script se está ejecutando con todos los privilegios de administrador, añada este código al principio de su script:

param([switch]$Elevated)

function Test-Admin {
  $currentUser = New-Object Security.Principal.WindowsPrincipal $([Security.Principal.WindowsIdentity]::GetCurrent())
  $currentUser.IsInRole([Security.Principal.WindowsBuiltinRole]::Administrator)
}

if ((Test-Admin) -eq $false) {
    if ($elevated) 
    {
        # tried to elevate, did not work, aborting
    } 
    else {
        Start-Process powershell.exe -Verb RunAs -ArgumentList ('-noprofile -noexit -file "{0}" -elevated' -f ($myinvocation.MyCommand.Definition))
}

exit
}

'running with full privileges'

cuando ejecute su script con el conmutador -elevado, intentará elevar los privilegios antes de ejecutarse.

13
13
13
2010-11-27 11:48:43 +0000

si estás en la misma concha de poder podrías hacer esto:

Start-Process powershell -verb runas -ArgumentList "-file fullpathofthescript"
4
4
4
2010-02-12 22:02:27 +0000

Ya que está en tu escritorio, diría que la manera más fácil de hacer esto es arrastrarlo al gadget de elevación .

De otra manera podrías hacer un script separado usando el comando elevate en tu script ps1.

O, podrías aplicar elevate sólo al bit de inicio del servicio.

1
1
1
2015-07-16 17:57:01 +0000

PowerShell ISE vive en el sistema Windows PowerShell V1.0. PowerShell ISE. Puede hacer clic con el botón secundario en eso y seleccionar “Ejecutar como administrador” y ejecutar el script desde allí.

También puede encontrarlo bajo el logotipo de Windows \N \N - Todos los programas \N - Accesorios \N - Windows PowerShell y hacer lo mismo con esos accesos directos.

0
0
0
2019-07-15 04:56:44 +0000

Si quieres una opción para lanzar un script de Powershell como administrador, directamente desde el menú contextual del Explorador, mira la sección 2 de mi respuesta aquí: https://stackoverflow.com/a/57033941/2441655

-1
-1
-1
2017-10-23 20:34:16 +0000

Añade esto al principio del guión:

$currentUser = New-Object Security.Principal.WindowsPrincipal $([Security.Principal.WindowsIdentity]::GetCurrent())
$testadmin = $currentUser.IsInRole([Security.Principal.WindowsBuiltinRole]::Administrator)
if ($testadmin -eq $false) {
Start-Process powershell.exe -Verb RunAs -ArgumentList ('-noprofile -noexit -file "{0}" -elevated' -f ($myinvocation.MyCommand.Definition))
exit $LASTEXITCODE
}