小编Mik*_*ike的帖子

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

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

System.ComponentModel.Win32Exception: Access is denied
at System.Diagnostics.Process.StartWithCreateProcess(ProcessStartInfo startInfo)
at System.Diagnostics.Process.Start()
Run Code Online (Sandbox Code Playgroud)

引发此异常的代码是:

_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();
Run Code Online (Sandbox Code Playgroud)

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

有任何想法吗?

c# windows-services process sandbox

5
推荐指数
1
解决办法
3889
查看次数

/ etc/passwd中的行的正则表达式验证

我需要验证/ etc/passwd文件是否有效,并且认为正则表达式是一个好主意,以验证不是注释的行.我如何验证一条线:

root:*:0:0:System Administrator:/var/root:/bin/sh 
Run Code Online (Sandbox Code Playgroud)

经过一些研究,第5个字段(系统管理员)可以包含其他数据,如电子邮件和地址,第二个字段可以包含除a之外的任何内容:,最后2个字段是完整路径.

有什么线索我会为此创建一个正则表达式?

regex unix perl

5
推荐指数
2
解决办法
2271
查看次数

标签 统计

c# ×1

perl ×1

process ×1

regex ×1

sandbox ×1

unix ×1

windows-services ×1