J'essaie d'exécuter un script PowerShell à partir d'une application C# et j'ai besoin que le script s'exécute lorsque mon application C# s'exécute en tant qu'utilisateur non administrateur (par ex. Service réseau ou un autre compte de domaine).Comment exécuter un script PowerShell à partir de C# en tant qu'utilisateur non-élevé
Auparavant, j'utilisais le code suivant: (! S'il vous plaît me apprendre s'il y a une meilleure façon)
using (RunspaceInvoke invoker = new RunspaceInvoke())
{
// load the powershell module
invoker.Invoke("Import-Module MyModule");
// run the cmdlet defined in the module
invoker.Invoke("MyCmdlet");
}
Je ne sais pas si cela est la meilleure approche pour cmdlets en cours d'exécution définies dans un module. En tout cas, cela fonctionne parfaitement si je cours en tant qu'utilisateur administratif. J'ai essayé d'exécuter ceci comme service de réseau, cependant, et j'ai obtenu une erreur hostile dans le constructeur de RunspaceInvoke:
L'accès de Registre demandé n'est pas autorisé.
Existe-t-il un moyen pour exécuter mes applets de commande PowerShell en tant qu'utilisateur non élevé, tel que le service réseau? Je n'ai pas besoin ou envie d'accéder au registre. La cmdlet elle-même ne nécessite pas non plus de privilèges élevés.
Merci, mais je n'essaie pas d'élever ou d'usurper l'identité. J'essaie d'exécuter des scripts PowerShell en tant qu'utilisateur * low-privileged * et non en tant qu'utilisateur à privilèges élevés. –