Ho il seguente codice C#Esegui PowerShell come amministratore da C#
using (RunspaceInvoke invoker = new RunspaceInvoke())
{
invoker.Invoke("Set-ExecutionPolicy Unrestricted");
// ...
}
che mi dà l'eccezione
L'accesso alla chiave di registro 'HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ PowerShell \ 1 \ ShellIds \ Microsoft.PowerShell ' negato.
Secondo this, la soluzione è avviare PowerShell come amministratore.
In genere, ciò può essere ottenuto facendo clic con il pulsante destro del mouse su PowerShell e selezionando "Esegui come amministratore". C'è un modo per farlo a livello di programmazione?
Questo non funziona per Windows Server 2012 e PowerShell 3.0. :( – Anonymous
Sono sorpreso che l'OP abbia contrassegnato questa come risposta. Nella domanda afferma "facendo clic con il pulsante destro del mouse su PowerShell e selezionando" Esegui come amministratore "" che implica che le credenziali in esecuzione sono già membri del gruppo degli amministratori ma vengono fermati dalla meravigliosa sicurezza (tosse, tosse) che MS ha aggiunto chiamato UAC. La soluzione postata (e spuntata come) non affronta questo. Una parte di me dice di segnare questo post perché la risposta non risolve il problema * postato * domanda ... – Jason
Questo è un codice molto vecchio dal progetto di codice 2005. Non funzionerà in Windows 2012. Dovrei trovare un modo per convertirlo a 64 bit. –