¿Es posible elevar los permisos de un script de PowerShell para que un usuario sin privilegios de administrador pueda ejecutar el script? Nuestros administradores de redes están tratando de encontrar formas más eficientes en el tiempo para realizar ciertas tareas que ahora tienen que usar el escritorio remoto para ... automatizarlos con scripts de PS ayudaría, pero los usuarios no tienen derechos de administrador.Scripts Elevate Powershell
Respuesta
La tarea es más como setuid que sudo ... y por suerte, setuid es posible: sólo tiene que crear una tarea programada (sin un horario establecido), y establecer que se ejecute elevado. Luego, otorgue a sus usuarios los derechos para ejecutar esa tarea. Hace un tiempo describí el proceso in a blog post junto con un script de PowerShell para ayudar a crear las tareas y los accesos directos para ejecutarlos.
El problema (como sugirió JaredPar) es que debe asegurarse de que las aplicaciones que ha programado ejecutar como elevadas o "como administrador" estén protegidas, y esto es especialmente cierto si va a ejecutar un script. Asegúrese de que nadie más que el administrador (s) pueda editar o reemplazar ese script, o está regalando las claves proverbiales del reino.
Parece que podría funcionar, ¿sabes si funcionará también con XP? –
Enlace muerto. Internet Archive * ¡Activar! * Https://web.archive.org/web/20110821152558/http://huddledmasses.org/vista-setuid-how-to-elevate-without-prompting/ –
Parece que está buscando un sudo equivalente en windows. Sudo no es inherente a Windows como lo es a la mayoría de los entornos de estilo Unix. Pero hay varias herramientas disponibles que son equivalentes cercanas.
Sé cuidadoso al utilizar este tipo de herramientas sin embargo. Un script + sudo no dañado es un riesgo de seguridad.
si está utilizando V2, puede utilizar lo siguiente, que está arriba en the PowerShell Team Blog
Start-Process "$psHome\powershell.exe" -Verb Runas -ArgumentList '-command "Get-Process"'
Esto iría en "Get-Process" como administrador.
Si no tiene V2, puede crear un objeto StartInfo y establecer el Verbo en Runas así.
function Start-Proc {
param ([string]$exe = $(Throw "An executable must be specified"),[string]$arguments)
# Build Startinfo and set options according to parameters
$startinfo = new-object System.Diagnostics.ProcessStartInfo
$startinfo.FileName = $exe
$startinfo.Arguments = $arguments
$startinfo.verb = "RunAs"
$process = [System.Diagnostics.Process]::Start($startinfo)
}
I have a blog post que habla un poco más sobre el uso de un objeto System.Diagnostics.ProcessStartInfo.
Eso no ayuda si los usuarios no son administradores;) – Jaykul
Lo suficiente. Eché un vistazo demasiado rápido a la pregunta –
Las extensiones de comunidad de Powershell incluyen un cmdlet para esto, alias 'su'. http://www.codeplex.com/Pscx
EL MEJOR TODAVÍA ... – DeerSpotter
primera choco install pscx
través http://chocolatey.org/ (es posible que tenga que reiniciar el entorno de shell)
a continuación, active psxc
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser #allows scripts to run from the interwebs, such as pcsx
A continuación, utilice Invoke-Elevated
Invoke-Elevated {Add-PathVariable $args[0] -Target Machine} -ArgumentList $MY_NEW_DIR
- 1. ¿Ejecutar scripts de PowerShell sin instalar PowerShell?
- 2. Ejecutar scripts de PowerShell en PC remota
- 3. Invocar scripts de Powershell de Java
- 4. ¿Dónde colocar los scripts de PowerShell?
- 5. Prueba de scripts de Powershell para la corrección
- 6. PowerShell: Ejecute el comando desde el directorio de scripts
- 7. Scripts de PowerShell que todo desarrollador debería saber
- 8. ¿Los scripts de PowerShell se ejecutan en Mono?
- 9. Creación de scripts en Powershell con where-object
- 10. ¿Dónde almacena su biblioteca de scripts de PowerShell?
- 11. Ejecución de scripts de PowerShell como git hooks
- 12. ¿Existe un marco de prueba de unidades para probar PowerShell con scripts de PowerShell?
- 13. PowerShell App.Config
- 14. Script de Powershell para habilitar "Scripts y herramientas de administración de IIS"
- 15. Interfaz web para mis scripts de Powershell para el servicio de asistencia
- 16. ¿Cómo iniciar/detener IIS 6.0/7.0 de forma remota utilizando los scripts de PowerShell?
- 17. ¿Se deben llamar los scripts de PowerShell utilizando solo una línea?
- 18. ¿Cómo se elimina el requisito de PowerShell de que los scripts y ejecutables vayan precedidos de ". \"?
- 19. ¿Cómo administrar las dependencias entre scripts en el módulo Powershell de varios archivos?
- 20. Cómo rastrear el flujo de scripts
- 21. Powershell para desarrolladores
- 22. ¿Cómo edito XML usando Powershell?
- 23. Implementar PowerShell PSProvider * en * PowerShell
- 24. Útil PowerShell one liners
- 25. Python, PowerShell u otro?
- 26. virtualenv en PowerShell?
- 27. argumentos Powershell y logparser
- 28. ¿Hay algún soporte para scripts en Windows Phone?
- 29. Pruebas unitarias para scripts de shell
- 30. Suplantación de PowerShell de ASP.NET
pertenece el servidor falla. – Richard
Ver SF @ http://serverfault.com/questions/12985/elevated-powershell-script – Richard
Sí, si miras al usuario que publicó esa pregunta ... verás que fui yo. Lo publiqué allí porque estabas tratando de obtener mi pregunta aquí arrancada ... –