gpt4 book ai didi

c# - 以 Windows 服务用户身份运行进程失败并拒绝访问?

转载 作者:行者123 更新时间:2023-11-30 12:37:04 26 4
gpt4 key购买 nike

我正在从事一个需要对应用程序进行沙盒处理的项目。我能够创建一个 Windows 用户,创建一个目录,用一个应用程序填充目录,并以用户身份运行该应用程序。这作为控制台应用程序运行时完全正常,但是当我将它作为服务安装时,我得到了这个异常:

System.ComponentModel.Win32Exception: Access is denied
at System.Diagnostics.Process.StartWithCreateProcess(ProcessStartInfo startInfo)
at System.Diagnostics.Process.Start()

抛出这个异常的代码是:

_process = new Process
{
StartInfo =
{
Arguments = "",
CreateNoWindow = true,
ErrorDialog = false,
FileName = instanceDirectory + "program.exe",
WorkingDirectory = instanceDirectory,
UseShellExecute = false,


UserName = GetUserNameForInstance(_id),
Password = GetPasswordForInstance(_id),
Domain = ""
},
EnableRaisingEvents = true
};

_process.Exited += ProcessExited;
_process.Start();

同样,这仅在作为 Windows 服务运行时抛出。根据 Windows 中的服务面板,该服务在 LOCAL SYSTEM 下运行。

有什么想法吗?

最佳答案

您最好将服务作为具有 IO 操作所需权限(包括 ACL 权限)的域帐户运行。

在下面的示例中,“Alterter”服务设置为作为本地服务帐户运行。对于您的情况,我建议将服务作为 DOMAIN\UserAccount 运行。

alt text
(来源:windows-xp-services.com)

关于c# - 以 Windows 服务用户身份运行进程失败并拒绝访问?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2079901/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com