【问题标题】:Launch executable with parameters when running as Network Service作为网络服务运行时使用参数启动可执行文件
【发布时间】:2013-02-23 10:04:49
【问题描述】:

如果我作为网络服务运行,如何使用提供的参数启动可执行文件?我尝试在我的程序(作为网络服务运行)中使用 ShellExecuteEx:

try
{

    DWORD dwErr;
    TCHAR bufProgName[1000] = _T("");
    TCHAR bufParameters[1000] = _T("");

    ::lstrcat(bufProgName,_T("C:\\NotMyFault\\x86\\NotMyFault.exe"));
    ::lstrcat(bufParameters,_T(" -help"));

    SHELLEXECUTEINFO ShExecInfo;
    ZeroMemory(&ShExecInfo,sizeof(ShExecInfo));
    ShExecInfo.cbSize=sizeof(ShExecInfo);
    ShExecInfo.fMask = SEE_MASK_NOCLOSEPROCESS;
    ShExecInfo.hwnd = NULL;
    ShExecInfo.lpVerb = NULL;
    ShExecInfo.lpFile = bufProgName;        
    ShExecInfo.lpParameters = bufParameters;
    ShExecInfo.lpDirectory = NULL;
    ShExecInfo.nShow = SW_SHOWNORMAL;
    ShExecInfo.hInstApp = NULL; 
    int res = ShellExecuteEx(&ShExecInfo);
    if(!res)
    {
        dwErr = GetLastError();
        return -1;
    }

}
catch(...)
{
    std::cout<<"ShellFail: " << dwError;
    return -1;

}

但这所做的只是启动 NotMyFault.exe 作为用户网络服务运行(我从任务管理器中看到),但它没有提供帮助。其他参数也一样(“-crash”)。

我知道这是匆忙编写的代码,但我需要看看作为网络服务运行的进程(如我的)是否可以成功地做到这一点。当我以另一个用户身份运行它时(通过双击可执行文件),它似乎工作得很好。

【问题讨论】:

  • 您期望发生什么?当然新进程在创建进程的登录下运行。
  • 您是否尝试过使用CreateProcess
  • CreateProcess 不走运。我会试试 CreateProcessWithLogonW。

标签: c++ windows winapi shell process


【解决方案1】:

您的服务在会话 0 中运行。您的交互式桌面在另一个会话中。因此,当您的服务启动进程时,您将看不到任何内容。因为它在与服务相同的会话中启动,在会话 0 中。

如果您希望该服务在交互式桌面上启动一个进程,这可能,但很困难:Launching an interactive process from Windows Service in Windows Vista and later

【讨论】:

  • 感谢您的回答。如果我不需要交互怎么办?例如,“Notmyfault.exe -crash”在从命令行运行时不是交互式的(使用 system() 或 ShellExecuteEx() 调用或直接从 cmd 运行它。我的进程被调用 - 我使用 TaskMgr 看到它 - 它只是不使用参数运行它(-crash 或 -help,-help 固然是交互式的,但 -crash 不应该是)。还是我误解了“交互式桌面”的含义?
  • 如何检测其他进程是否接收到参数?
  • 我使用 procmon 来查看它是如何启动的,并且看起来它被赋予了完整的命令,但我不确定它是挂起还是没有收到参数。我应该尝试 CreateProcessWithLogonW 吗?
  • 您需要按照链接文章中的说明进行操作
猜你喜欢
  • 2018-07-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-09-28
  • 2011-01-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多