如何让SYSTEM权限的进程创建一个当前登录用户的权限的进程?

解决方案 »

  1.   

    好像不行吧,在system层里连消息都发送不出来的。
      

  2.   

    SYSTEM用户跟普通用户之间有什么办法通信啊?SYSTEM可以产生有窗口的进程,但是用SPY++看不到任务这个窗口的消息
      

  3.   

    CreateProcessAsUser
      

  4.   

    CreateProcessAsUser 产生的进程可以跟其它进程通信吗?是跟普通管理员直接生成进程一样的吗?
      

  5.   

    hProcess:= OpenProcess(PROCESS_QUERY_INFORMATION,FALSE,lppe.th32ProcessID);
        OpenProcessToken(hProcess,TOKEN_ALL_ACCESS,hToken);
        Result :=hToken;  //取得的EXPLORER.EXE的hToken每次都不一样是怎么回事?
       si: TStartupInfo;
      pi: TProcessInformation;
    si.cb:= sizeof(STARTUPINFO);
        si.lpDesktop:=pchar('winsta0\\default');
     if not  CreateProcessAsUser(phToken, PChar('cmd.exe'),nil ,
          nil, nil, False, NORMAL_PRIORITY_CLASS,
          nil, nil, si, pi)  then   application.MessageBox('2', '失败', MB_OK)一直是失败,进程都产生不了,怎么办啊?
      

  6.   

    hProcess:= OpenProcess(PROCESS_QUERY_INFORMATION,FALSE,lppe.th32ProcessID); 
        OpenProcessToken(hProcess,TOKEN_ALL_ACCESS,hToken); 
        Result :=hToken;  //取得的EXPLORER.EXE的hToken每次都不一样是怎么回事? 
      si: TStartupInfo; 
      pi: TProcessInformation; 
    si.cb:= sizeof(STARTUPINFO); 
        si.lpDesktop:=pchar('winsta0\\default'); 
    if not  CreateProcessAsUser(phToken, PChar('cmd.exe'),nil , 
          nil, nil, False, NORMAL_PRIORITY_CLASS, 
          nil, nil, si, pi)  then    //在管理员权限和SYSTEM权限下打开的进程都是应用程序正常初始化失败  application.MessageBox('2', '失败', MB_OK) 
      

  7.   

    OpenProcessToken
    SetKernelObjectSecurity