Vista开始的UAC代入的特性对吧?
提升权限微软只提供了两个方法:
1.
exe的文件名为setup.exe, *** 作系统能够自动提升权限,会提示用户;
2.
第二个办法是在程序的manifest文件中指定权限。指定了管理员权限的程序会在资源管理器程序图标上加上盾牌图标,若用户没有禁用UAC,启动程序的时候 *** 作系统会向用户发出请求权限的提示。
你要清楚的是你不要打绕开UAC提升权限的想法,这是不可能的。
另外,微软没有提供提升权限的API。
微软提供了专门的教程:http://msdn.microsoft.com/en-us/library/bb756973.aspx
一共是9步,但是前面5步和后面3步都是废话,最重要的是第六步:
http://msdn.microsoft.com/en-us/library/bb756929.aspx
获取进程的访问令牌BOOL OpenProcessToken(
__in HANDLE ProcessHandle, //要修改访问权限的进程句柄
__in DWORD DesiredAccess, //指定你要进行的 *** 作类型
__out PHANDLE TokenHandle //返回的访问令牌指针
);
修改一个访问令牌
BOOL AdjustTokenPrivileges(
HANDLE TokenHandle, // handle to token
BOOL DisableAllPrivileges, // disabling option
PTOKEN_PRIVILEGES NewState, // privilege information
DWORD BufferLength, // size of buffer
PTOKEN_PRIVILEGES PreviousState, // original state buffer
PDWORD ReturnLength // required buffer size
)
但是具体使用起来还是比较复杂的, 可以百度OpenProcessToken函数, 百科里有详细的用法介绍
CMD控制台提示“请求的 *** 作需要提升”怎么解决呢?通常导致此类情况产生的重要原因是 *** 作权限不足所造成的,对此可以通过以下方法来解决。方法一:
1、在CMD控制台界面中进行 *** 作时,当出现“请求的 *** 作需要提升”的提示时,我们需要按以下方法来 *** 作来解决问题:在桌面左下角的“Cortana”语音搜索助手框中输入“cmd”,待搜索结果出现后,右击“命令提示符”从其右键菜单中选择“以管理员身份运行”项。
2、待打开“命令提示符”界面后,在窗口左上角出显示“管理员:命令提示符”的提示,此时表明命令提示符 *** 作权限被提升,在此就可以使用相关命令进行 *** 作啦。
方法二:
就是直接右击桌面左下角的“Windows”按钮,从其右键菜单中选择“命令提示符(管理员)”项实现以“管理员”身份运行“命令提示符”窗口。
方法三:
依次进入“Windows”按钮-“所有程序”-“Windows系统”,在其列表中找到”命令提示符“并右击,从d出的右键菜单中选择“以管理员身份运行”项即可。
方法四:
1、直接在CMD窗口中提升权限。打开“运行”对话框(按Windows+R快捷打开),输入“CMD”进入MSDOS界面。
2、从打开的“命令提示符”窗口中,输入命令“net
localgroup
administrators
用户名
/add”并按回车,即可给当前“用户名”提升为“管理员权限”。
3、接下来再输入“net
user”并按回车,即可获得当前系统中所有用户及权限信息,如图所示,表明当前用户已是管理员权限。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)