我有一个我编写的批处理文件(概念证明)来安装我也创建的示例服务。它包含以下命令行:
sc create serviceTest binPath= C:\Sandbox\ServiceTest\ServiceTest.exe DisplayName= "Service Test"
当我右键单击并选择“以管理员身份运行”时,一切都按预期运行。在不这样做的情况下运行批处理文件会给出“拒绝访问”。这证明该命令有效。
我还尝试通过 Process.Start() 运行 sc 命令:
const string sc = @"sc";
const string arguments = @"create serviceTest binpath= {0} DisplayName= ""Service Test""";
FileInfo fi = new FileInfo(this.txtServiceLocation.Text);
if (fi.Exists)
{
ProcessStartInfo psi = new ProcessStartInfo()
{
FileName = sc,
Arguments = string.Format(arguments, fi.FullName),
UserName = "admin",
Password = "secret".ToSecureString(),
Domain = "MYDOMAIN",
WorkingDirectory = fi.DirectoryName,
CreateNoWindow = true,
UseShellExecute = false
};
Process.Start(psi);
}
else
MessageBox.Show("The service exe could not be found.");
我需要能够以编程方式执行此操作。我需要做什么才能使其正常工作?
澄清:我需要能够在不提示用户的情况下执行此操作。此代码将在自定义 tfs 构建过程下运行。