Wbadmin命令不能在Windows服务中运行

本文关键字:服务 运行 Windows 命令 不能 Wbadmin | 更新日期: 2023-09-27 18:07:33

string path = "D:";
string wbadminPath = Environment.SystemDirectory + @"'wbadmin";
string wbadminEvent = "start systemstatebackup -backupTarget:" + path + " -quiet";
        try
        {
            int exitCode = 0;
            ProcessStartInfo start = new ProcessStartInfo(wbadminPath, wbadminEvent);
            using (Process proc = Process.Start(start))
            {
                proc.WaitForExit();
                exitCode = proc.ExitCode;                    
            }
        }

如果我在控制台应用程序中执行这段代码,-它工作。如果我在Windows服务中执行此代码,我会出现以下错误:

Microsoft BLB Backup命令行接口已停止工作

问题签名:问题事件名称:APPCRASH应用程序名称:wbadmin.exe应用版本:6.0.6001.18000应用时间戳:47918aed故障模块名称:kernel32.dll故障模块版本号:6.0.6002.18327故障模块时间戳:4cb73436异常码:c0000142异常偏移量:00009f7d操作系统版本:6.0.6002.2.2.2.0.274.10区域ID: 1033附加信息1:9d13附加信息2:1abee00edb3fc1158f9ad6f44f0f6be8附加信息3:9d13附加信息4:1abee00edb3fc1158f9ad6f44f0f6be8

Wbadmin命令不能在Windows服务中运行

好了,我知道我来晚了,帮不上忙了,但希望有人能从中受益。

Windows Services不能与任何GUI或需要用户交互的东西交互。基本上,当你调用Process.Start(start)时,它会尝试打开一个服务不能做的CMD窗口。你可以这样写:

            start.UseShellExecute = false;
            // Do not create the black window.
            start.CreateNoWindow = true;//This stops the GUI

然而值得注意的是,我尝试了几个小时来让这个特定的命令工作,但没有成功。经过几个小时的工作和研究,我最终放弃了整个想法。一般来说,您可以使用. createnowindow从服务中运行CMD命令,但是在这种情况下它似乎不起作用(它无法找到WBADMIN进程)。如果我在这方面有任何新的发现,我会更新的。

这是一个讨论为什么服务不能再访问gui的线程