使用管理员权限和权限从C#执行Powershell脚本

问题描述 投票:0回答:1

我正在尝试使用管理员权限通过C#执行Powershell脚本。

我在很多方面尝试过但没有结果。

我能做的最好的事情是用runas Verb启动一个进程(System.Diagnostics.Process.Start(p))。这样,如果执行服务的用户是管理员,我可以运行我的powershell脚本。

但是,我需要的是使用低权限用户执行服务,并在需要时与管理员“登录”并执行powershell脚本。

我试图模仿管理员,但它没有用...

答案Execute PowerShell as an administrator from C#没有解决问题,我仍然无法运行我的脚本。答案来自2009年,我希望有人在此期间解决了这类问题。

        // powershell script execution
        var processInfo = new System.Diagnostics.ProcessStartInfo
        {
            Verb = "runas",
            LoadUserProfile = true,
            FileName = "powershell.exe",
            Arguments = scriptPath,
            RedirectStandardOutput = true,
            UseShellExecute = false
        };

        var p = System.Diagnostics.Process.Start(processInfo);
c# powershell
1个回答
1
投票

假冒应该有效。但是,我通常会避免它,因为我不喜欢存储用户凭据,如果我不需要。

在我正在开发的应用程序中,我遇到了与此类似的需求。该应用程序在IIS中运行,大多数时间不需要(也不应该)完全管理员访问权限。为了处理这种情况,我有一个单独的应用程序运行(Windows服务),具有完全的管理员权限。它接受来自IIS应用程序的请求并执行适当的管理功能。

我的IIS应用程序和Windows服务通过AMQP(使用RabbitMQ)进行通信。但是,您可以轻松使用您喜欢的任何通信通道 - HTTP,TCP,甚至只需创建一个文件并让管理应用程序查找该文件。

© www.soinside.com 2019 - 2024. All rights reserved.