我用了LogonUser,但权限不足,缺少SE_TCB_NAME 的权限,但如何使用户有这个权限呢?
求教各位高手啊???

解决方案 »

  1.   

    SE_TCB_NAME "SeTcbPrivilege"MSDN: Act as part of operating system 默认情况下 Administrators 都不拥有这个权限,何况一般用户了,不过 Administrator 可以通过写 LsaAddAccountRights 为自己添加 SE_TCB_NAME 权限,但是这个修改要到下次登陆是才生效,基本上 LogonUser 是给 Services 而不是 Application 调用的,因为只有 Services 运行在 SE_TCB_NAME 权限下(像 IIS),CreateProcessWithLogonW // 这个函数似乎不要 SE_TCB_NAME 权限,但是会将新进程创建到另一个 window station 和 desktop 下,改变这个特性需要 SE_SECURITY_NAME 权限。
      

  2.   

    Services 如何调用LogonUser 啊?还有 CreateProcessWithLogonW // 这个函数似乎没有啊!
      

  3.   

    CreateProcessWithLogonW // 新 SDK, Winbase.h, for Win2000其实是利用 Services 可以运行在指定用户下而不是像 Application 只能是当前用户。创建一个拥有 SE_TCB_NAME 权限的用户,然后写一个 Services 并设置 Services 以这个用户启动。创建用户和设置 Services 需要 Administrator 权限,所以这些只能在安装时完成,也不算解决方法。