首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >wbadmin命令无法从windows服务运行

wbadmin命令无法从windows服务运行
EN

Stack Overflow用户
提问于 2015-08-13 08:46:34
回答 1查看 506关注 0票数 2
代码语言:javascript
复制
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备份命令行接口已停止工作

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

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-12-30 20:05:28

好吧,我知道我要迟到了,但希望其他人也能从中受益。

Windows服务不能与任何与GUI交互或需要用户交互的东西交互。基本上,当您调用Process.Start(start)时,它尝试打开服务无法打开的CMD窗口。您可以使用以下内容:

代码语言:javascript
复制
            start.UseShellExecute = false;
            // Do not create the black window.
            start.CreateNoWindow = true;//This stops the GUI

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

这里有条关于why services can't access GUIs的帖子

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31983486

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档