Vista之后的Windows系统,有了Session0隔离这个东东。挺烦。所以有了这个问题。我有2个进程,一个系统服务,另一个是登录用户程序。
当UAC打开的时候,如果没有给进程提升 mandatory level 的话(是这个东西吧),很多的Privilege 项都没有。而且有了 Session 0隔离,在 Session X(非0)的用户程序建立的局部命名内核对象(如event),
则另一个Session Y(非0) 的进程是看不见的。而要创建 Global 范围的对象是需要 SeCreateGlobalPrivilege 特权的可是一般的普通进程,不提升到high level的话,这个token是没有的,根本无从开启。
进程都是提升的就好说了, 不过总弹uac框框也不是办法,
所以如果这样的进程创建了命名内核对象,系统服务看不到是根本不行呢?还是有方法?
到底怎么做呢?非常感谢!

解决方案 »

  1.   

    咦?谁回复的帖子啊?怎么没了?
    社区 bug ?
      

  2.   

    Vista等就是增加了UAC等来限制权限,如果绕过,很多设计就没用了,所以程序还是要UAC来提升
      

  3.   

    谢谢回复,不过我已经找到打开另一session X 创建的对象的方法了。
    不过很郁闷,看介绍,那种方法可用的前提是 Terminal Service 是运行的听说很多机器这个东西不会开,开了也会被禁用……崩溃!。