È possibile elevare le autorizzazioni di uno script PowerShell in modo che un utente senza privilegi di amministratore possa eseguire lo script? I nostri amministratori di rete stanno cercando di trovare modi più efficienti in termini di tempo per eseguire determinate attività che adesso devono utilizzare il desktop remoto per ... automatizzarli con gli script PS, ma gli utenti non hanno diritti di amministratore.Elevare gli script Powershell
risposta
Il compito è più come setuid di sudo ... e per fortuna, setuid è possibile: si può semplicemente creare un'attività pianificata (senza un orario fisso), e impostare l'esecuzione elevati. Quindi, dai ai tuoi utenti i diritti per eseguire quella attività. Ho delineato il processo in a blog post un po 'di tempo fa insieme a uno script di PowerShell per aiutare a creare le attività e le scorciatoie per eseguirle.
Il problema (come suggerito da JaredPar) è che è necessario assicurarsi che le app che si è pianificato di eseguire elevati o "come amministratore" siano protette, e questo è particolarmente vero se si eseguirà uno script. Assicurati che nessuno tranne l'amministratore (i) possa modificare o sostituire quel copione, o stai dando via le chiavi proverbiali al regno.
Sembra che potrebbe funzionare, sai se funzionerà anche con XP? –
Collegamento guasto. Internet Archive * Activate! * Https://web.archive.org/web/20110821152558/http://huddledmasses.org/vista-setuid-how-to-elevate-without-prompting/ –
Sembra che si stia cercando un equivalente sudo in Windows. Sudo non è inerente a Windows come lo è per la maggior parte degli ambienti in stile Unix. Ma ci sono diversi strumenti disponibili che sono equivalenti vicini.
essere cauti quando si usano questi tipi di strumenti però. Uno script non criptato + sudo è un rischio per la sicurezza.
se si utilizza V2, è possibile utilizzare il seguente che è fino a the PowerShell Team Blog
Start-Process "$psHome\powershell.exe" -Verb Runas -ArgumentList '-command "Get-Process"'
Questo sarebbe eseguire "Get-Process" come amministratore.
Se non si dispone di V2, è possibile creare un oggetto StartInfo e impostare il verbo su Runas in questo modo.
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)
}
ho have a blog post che parla un po 'di più su come utilizzare un oggetto System.Diagnostics.ProcessStartInfo.
Ciò non aiuta se gli utenti non sono amministratori;) – Jaykul
Abbastanza corretto. Ho guardato la domanda un po 'troppo velocemente –
Le estensioni della comunità PowerShell includono un cmdlet per questo, alias "su". http://www.codeplex.com/Pscx
MIGLIORE ANCORA .... – DeerSpotter
primo choco install pscx
via http://chocolatey.org/ (potrebbe essere necessario riavviare il vostro ambiente di shell)
quindi attivare psxc
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser #allows scripts to run from the interwebs, such as pcsx
Quindi utilizzare Invoke-Elevated
Invoke-Elevated {Add-PathVariable $args[0] -Target Machine} -ArgumentList $MY_NEW_DIR
- 1. Gli script di PowerShell funzionano con Mono?
- 2. Invoca gli script Powershell da Java
- 3. Dove mettere gli script di PowerShell?
- 4. Chiamata Powershell Script PowerShell
- 5. Script PowerShell in PostBuild
- 6. Esegui più script Powershell in sequenza - su una cartella - Combina gli script in uno script principale
- 7. Gli script di PowerShell non sono in esecuzione
- 8. Come fornire gli attributi param per uno script in PowerShell?
- 9. Run R script PowerShell
- 10. Argomenti con script Powershell all'avvio
- 11. powershell: script con argomenti variabili
- 12. Attività IT: script F # vs script PowerShell
- 13. Esiste un framework di test delle unità per testare PowerShell con gli script di PowerShell?
- 14. Eseguire PowerShell-Script dall'applicazione C#
- 15. Comandi TFS nello script PowerShell
- 16. Powershell - Riavvia e continua script
- 17. installare NuGet tramite script PowerShell
- 18. Come eseguire uno script PowerShell da SSIS
- 19. Come rimuovere gli accenti in PowerShell?
- 20. Chiamare uno script PowerShell in una nuova istanza di PowerShell pulita (da un altro script)
- 21. Come chiamare una funzione in un altro script PowerShell quando si esegue lo script PowerShell usando 'Esegui con PowerShell'
- 22. PowerShell verifica gli URL di sharepoint
- 23. Esegui solo script powershell firmati da C#
- 24. Funzione PowerShell con blocco di script parametrizzato
- 25. Script powershell utente da inviare all'URL?
- 26. Esecuzione di uno script Powershell in Fake
- 27. Chiama un URL con Script PowerShell pianificato
- 28. Acquisisci il nome dello script in PowerShell
- 29. Script Powershell per eliminare i vecchi file
- 30. Percorso dello script PowerShell attualmente in esecuzione
pone sul server Fault. – Richard
Vedere SF @ http://serverfault.com/questions/12985/elevated-powerhell-script – Richard
sì, se guardi l'utente che ha postato quella domanda ... vedrai che sono stato io. L'ho postato lì perché stavi cercando di ottenere qui la mia domanda avviata ... –