jjzjj

CreateProcessWithLogonW

全部标签

CreateProcessWithLogonW 和 AssignProcessToJobObject

我有一个Windows服务(在WinXPSP2下),在LocalSystem帐户下运行,它使用CreateProcessWithLogonW启动进程。为了清理子进程,我尝试使用作业对象和TerminateJobObject。MSDN声明作业句柄必须具有JOB_OBJECT_ASSIGN_PROCESS访问权限,因为它是通过CreateJobObject创建的。进程句柄必须具有PROCESS_SET_QUOTA和PROCESS_TERMINATE权限。我认为它有它们,因为TerminateProcess和SetProcessWorkingSetSize都没有错误地返回。但是,Assign

windows - CreateEnvironmentBlock 返回的 block 对于 Windows Vista 上的 CreateProcessWithLogon 来说太大了

我正在使用微软的CreateProcessWithLogonWfunction以特定用户身份运行程序。在我们几乎所有的测试场景中,一切都很好。我们的代码类似于微软页面上的示例。问题出现在windowsvista上。我们使用以下方法创建环境block:CreateEnvironmentBlock(&lpvEnv,hToken,TRUE)然后我们将其传递给CreateProcessWithLogonW:CreateProcessWithLogonW(argv[1],NULL,argv[2],LOGON_WITH_PROFILE,NULL,argv[3],CREATE_UNICODE_ENV

windows - 使用 CreateProcessWithLogonW 从服务启动的进程立即终止

在测试框架中,进程A必须使用CreateProcessWithLogonWAPI在不同的用户凭据(例如,_limited_user)下启动进程B。lpStartupInfo->lpDesktop为NULL,因此进程B应该与进程A在相同的桌面和窗口站中运行。当进程A手动启动时一切正常(作为_glagolig)。但是当进程A由测试框架服务(在指定测试框架的用户帐户_test_framework下运行)启动时,它不起作用。CreateProcessWithLogonW返回成功,但进程B无法执行任何工作。它立即终止显然是因为它的conhost.exe无法初始化user32.dll并返回0xC0