Forse c'è un modo per farlo con il cmdlet Start-Process che non riesco a trovare? Gli altri Q/A correlati che ho trovato su StackOverflow come this, this e this offrono una soluzione per farlo con un codice C# personalizzato. La mia domanda è specificamente, c'è un modo semplice per farlo in PowerShell? Ad esempio, ci si trova in una console PS con privilegi elevati e si desidera eseguire un processo come non amministratore.Come eseguire un processo come non amministratore da una console PowerShell elevata?
risposta
È può specificare il TrustLevel
con runas.exe
, in modo efficace l'esecuzione di "ristretta"
runas /trustlevel:0x20000 "powershell.exe -command 'whoami /groups |clip'"
Si dovrebbe vedere nell'output dal whoami
che il gruppo Administrators
nel token viene contrassegnato come "Usato per Nega solo"
'0x20000' lascia l'etichetta" High Mandatory Level "dell'account abilitata. Con '0x1000' solo" Tutti "," Utenti "e" Utenti autenticati "sono abilitati. '/ showtrustlevels' non elenca nemmeno questo livello. È documentato da qualche parte? Non è menzionato nel seguente articolo, che menziona '0x20000': [Nuovi ACL migliorano la sicurezza in Windows Vista] (https://technet.microsoft.com/en-us/magazine/2007.06.acl.aspx). – eryksun
@eryksun il mio errore, trustlevel! = Livello di integrità. Dall'articolo: "Come punto di interesse, il trustle 0x20000 ti fornisce un token con il set normale di SID ma i privilegi eliminati" –
Ho letto l'articolo.Stavo chiedendo di '0x1000', che come ho detto imposta tutti i gruppi da negare (inclusa l'etichetta di integrità) tranne per i gruppi" Everyone "," Users "e" Authenticated Users ". L'ho trovato solo sperimentando. Non sembra essere documentato da nessuna parte. – eryksun
in start-process
esistono interruttore runas
come
start-process powershell -verb runAs
ma ancora UAC si controlla se nel vostro sistema UAC si deve prima di bypass UAC ci sono molti modo esistere per bypass UAC, ma tutti i modi non funziona in tutte le finestre come Windows 8 se si scrive lo script per il processo di esecuzione, allora compile to exe è possibile usare il programma come runasadmin per eseguire come amministratore vostro exe nel sistema, ma ancora non funziona in Windows 8
Questo sembra essere l'esatto opposto della risposta desiderata della domanda. Come guida per 'Start-Process'" Il verbo RunAs avvia il processo con le autorizzazioni di un membro del gruppo Administrators sul computer, come se avvii Windows PowerShell con l'opzione "Esegui come amministratore". " –
Quando si analizza questo problema, come menzionato dalle attività collegate, non è possibile eseguire un processo non elevato "non" da un processo elevato. Poiché questo è esattamente ciò che ho richiesto e la soluzione runas non ha funzionato per me, ho convertito la soluzione alternativa al codice fornita da Microsoft per utilizzare un'attività pianificata per avviare un processo non "elevato".
Esempio di esecuzione powershell.exe come un processo "non" elevata da un prompt PowerShell con privilegi elevati:
$apppath = "powershell.exe"
$taskname = "Launch $apppath"
$action = New-ScheduledTaskAction -Execute $apppath
$trigger = New-ScheduledTaskTrigger -Once -At (Get-Date)
Register-ScheduledTask -Action $action -Trigger $trigger -TaskName $taskname | Out-Null
Start-ScheduledTask -TaskName $taskname
Start-Sleep -s 1
Unregister-ScheduledTask -TaskName $taskname -Confirm:$false
È possibile che questo comandi PowerShell funziona solo su Windows Server 2012/Windows 8 e una maggiore solo.
oppure è possibile utilizzare l'applicazione SCHTASKS.EXE invece di coprire la maggior parte delle versioni di Windows:
$apppath = "powershell.exe"
$taskname = "Launch $apppath"
schtasks /create /SC ONCE /ST 23:59 /TN $taskname /TR $apppath
schtasks /run /tn $taskname
Start-Sleep -s 1
schtasks /delete /tn $taskname /F
Questo approccio è apparentemente più approfondito (non interferisce con le scorciatoie della mia app screenshot, quando è attiva la nuova finestra). – Vimes
Per eseguire un'attività con alimentazione a batteria, ho aggiunto un argomento Register-ScheduledTask: '-settings (New-ScheduledTaskSettingsSet -AllowStartIfOnBatteries)' – Vimes
- 1. come eseguire set di comandi in modalità elevata di PowerShell
- 2. Come eseguire a distanza uno script remoto elevata in PowerShell
- 3. Avviare processo non elevata dal processo di elevata
- 4. Forza uno script PowerShell da eseguire come amministratore
- 5. Esegui PowerShell come amministratore da C#
- 6. Come eseguire vbs come amministratore da vbs?
- 7. Build TFS: eseguire uno script PowerShell come amministratore
- 8. Perché PowerShell funziona sempre come amministratore ora?
- 9. Avviare un processo come utente da un processo in esecuzione come amministratore
- 10. Come eseguire sqlcmd da powershell?
- 11. Avvia il processo non bloccante da PowerShell
- 12. Come eseguire l'applicazione vNext da Windows PowerShell?
- 13. Come avviare da remoto processo in PowerShell
- 14. Come eseguire uno script PowerShell da SSIS
- 15. Come aprire la finestra della console PowerShell da Powershell
- 16. Come aprire PowerShell come amministratore dalla finestra di esecuzione
- 17. Come avviare un processo di console-based e applicare un titolo personalizzato utilizzando Powershell
- 18. Come faccio a far funzionare un'app per console come amministratore?
- 19. Java: eseguire il comando in una nuova cmd.exe come amministratore
- 20. Come avviare PowerShell in una nuova finestra da .Bat ed eseguire un .ps1 senza uscire dalla console?
- 21. Avvio di Windows - come eseguire un programma come amministratore da un file batch
- 22. Come si eseguono script PowerShell senza diritti di amministratore?
- 23. Come eseguire uno script PowerShell da un file batch
- 24. C# Controllare se eseguire come amministratore
- 25. Come eseguire un processo con CAP_SYS_RESOURCE
- 26. Come eseguire IIS Express come processo avviato tramite un servizio Windows
- 27. Come aspettare e uccidere un processo di timeout in PowerShell
- 28. Perché eseguire Visual Studio come "Esegui come amministratore"?
- 29. Come eseguire uno script PowerShell come un lavoro in Jenkins
- 30. Come eseguire un'altra app come amministratore su Windows XP
Questo è insolitamente funzionalità avanzate, PowerShell non può essere una scelta appropriata. –