Saltar al contenido

cómo ejecutar un script de PowerShell como administrador

Solución:

Aquí hay una forma de hacerlo, con la ayuda de un icono adicional en su escritorio. Supongo que podría mover el script a otra persona si quisiera tener un solo icono en su escritorio.

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

Ahora puede ejecutar el script elevado simplemente haciendo doble clic en el nuevo acceso directo en su escritorio.

En sistemas habilitados para UAC, para asegurarse de que una secuencia de comandos se esté ejecutando con privilegios de administrador completos, agregue este código al comienzo de su secuencia de comandos:

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'

Ahora, cuando ejecute su script, se llamará a sí mismo nuevamente e intentará elevar los privilegios antes de ejecutarse. El interruptor elevado evita que se repita si algo falla.

Puede quitar el -noexit cambie si la terminal debe cerrarse automáticamente cuando finalice el script.

si está en el mismo PowerShell, puede hacer esto:

Start-Process powershell -verb runas -ArgumentList "-file fullpathofthescript"
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *