Estoy intentando ejecutar un script de PowerShell desde una aplicación C# y necesito que el script se ejecute cuando mi aplicación C# se ejecuta como un usuario no administrador (por ejemplo Servicio de red o alguna otra cuenta de dominio).Cómo ejecutar un script de PowerShell desde C# como usuario no elevado
Anteriormente, yo estaba usando el siguiente código: (por favor, enséñame si hay una mejor manera)
using (RunspaceInvoke invoker = new RunspaceInvoke())
{
// load the powershell module
invoker.Invoke("Import-Module MyModule");
// run the cmdlet defined in the module
invoker.Invoke("MyCmdlet");
}
No sé si este es el mejor enfoque para ejecutar cmdlets definidos en un módulo. En cualquier caso, esto funciona perfectamente si me estoy ejecutando como un usuario administrativo. Intenté ejecutar esto como servicio de red, sin embargo, y obtuve un error hostil en el constructor de RunspaceInvoke:
No se permite el acceso al registro solicitado.
¿Hay alguna manera de ejecutar mis cmdlets de PowerShell como un usuario que no sea elevada, como los servicios de red? No necesito o deseo acceder al registro. El cmdlet en sí mismo tampoco requiere privilegios elevados.
Gracias, pero no estoy tratando de elevar o suplantar. Estoy intentando ejecutar scripts de PowerShell como un usuario con * privilegios bajos *, no como un usuario de alto nivel de privilegios. –