windwos核心编程进程

启动以管理员身份运行有2中方式。
1.筛选令牌。意思就是,默认情况下,一个进程启动时,会与筛选令牌进行关联,所以权限受限,但是最终用户可以通过右击图标菜单,以run as admin来运行程序。然后就会有UAC的安全提示框提示是否继续。
2.提升进程的权限,VS开发过程。
判断一个进程是以提升的权限来启动的,还是正在使用筛选的令牌运行的?

GetCurrentProcess---------得到当前进程句柄
OpenProcessToken--------打开当前进程关联的令牌。(会得到一个令牌句柄)
GetTokenInformation-----------获得与进程关联的令牌的信息(记得使用TokenElevationType参数来获得提升类型)

如果令牌没有被筛选过,用IsUserAnAdmin函数来判断进程是否正在以管理员的身份运行是最理想的。

如果令牌已经被筛选,然后需要通过给GetTokenInformation传递TokenLinkedToken参数来获取一个未筛选的令牌,然后判断其中是否包含一个管理员SID。

CreateWellKnowSid---------传递WinbuiltinAministratorsSid参数来创建一个与管理员组一致的SID。

CheckTokenMembership----------检查一个令牌的权限组。

猜你喜欢

转载自www.cnblogs.com/hshy/p/12302124.html