我试图通过NtAllocateUuids获取Uuid或只是调用UuidCreateSequential, 但Windows无法为我的笔记本电脑获取以太网或令牌环硬件地址。 因此,当系统启动时,Windows会将UuidSeed设置为随机数而不是给定的MAC。 - >只有在下次重新启动系统之前,才能保证唯一性。
我试图用NtSetUuidSeed手动设置UuidSeed,但我收到了STATUS_ACCESS_DENIED错误。 “Windows NT / 2000 Native API Reference”有以下注释: - 调用线程的标记必须具有SYSTEM_LUID的AuthenticationId
有没有办法通过以管理员身份运行的进程实现此目的? 像ImpersonateLoggedOnUser()这样的东西可以工作,但afaik这也只能作为LocalSystem访问:/
Thx;)
答案 0 :(得分:0)
您可以使用AT
命令创建程序并安排运行它。调度服务作为本地系统帐户运行。在Vista上,情况有所不同,我不确定这是否可能。你当然可以编写自己的服务。
答案 1 :(得分:0)
ImpersonateLoggedOnUser使用从以下位置返回的令牌句柄正常工作:
HANDLE GetLSAToken()//从“系统”进程复制系统令牌
或
BOOL CreatePureSystemToken(HANDLE& hToken)//创建一个新的系统令牌
http://www.codeproject.com/KB/system/RunUser.aspx CoreCode.cpp