代码之家  ›  专栏  ›  技术社区  ›  5andr0

需要从非本地系统进程访问“ntsetuuidseed”

  •  1
  • 5andr0  · 技术社区  · 16 年前

    我试图通过ntallocateuuids获取uuid,或者简单地调用uuidcreateSequential, 但Windows无法为我的笔记本电脑获取以太网或令牌环硬件地址。 因此,当系统启动时,Windows将UuidSeed设置为随机数,而不是给定的Mac。 -->只有在下次重新启动系统之前,才能保证唯一性。

    我试图用ntsetuuidseed手动设置uuidseed,但我得到一个状态“拒绝访问”错误。 “Windows NT/2000本机API参考”有以下备注: --调用线程的令牌必须具有系统luid的authenticationID

    在以管理员身份运行的进程中,是否有任何方法可以实现这一点? 类似impersonateLoggedOnUser()的功能可以工作,但afaik也只能作为本地系统访问:/

    THX);

    2 回复  |  直到 16 年前
        1
  •  0
  •   Martin Liversage    16 年前

    您可以创建一个程序并使用 AT 命令。调度服务作为本地系统帐户运行。在Vista上,情况不同,我不确定这是否还有可能。当然,你可以自己写服务。

        2
  •  0
  •   5andr0    16 年前

    ImpersonateLoggedOnUser工作正常,返回的令牌句柄来自:

    handle getlsatoken()//从“system”进程复制系统令牌

    bool createpureSystemToken(handle&htoken)//创建新的系统令牌

    http://www.codeproject.com/KB/system/RunUser.aspx CopeCeD.CPP