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.
- Cree un acceso directo a su script de Powershell en su escritorio
- Haga clic con el botón derecho en el acceso directo y haga clic en Propiedades
- Haga clic en el Atajo pestaña
- Hacer clic Avanzado
- 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"