Windows系统下受限帐户提升用户权限的方法技术方案

技术编号:2820234 阅读:1111 留言:1更新日期:2012-04-11 18:40
一种Windows系统下受限帐户提升用户权限的方法,用于应用程序操作权限的提升,包括步骤:建立或寻找一可读写的公用目录,以及在所述公用目录下指定一记录文件;建立或导入一服务程序,以在系统中监测所述记录文件并运行该文件所指定的应用程序;编制所述应用程序时,在该应用程序的入口添加一判断处理模块,该模块将检测当前程序的运行权限,若是管理员权限,则正常运行该应用程序,否则,往所述指定文件中写入该应用程序的全路径后结束该应用程序的运行。采用本发明专利技术,实现了指定程序运行权限的提升,还具有简单有效、易于实施的优点。

【技术实现步骤摘要】

本专利技术涉及电数字数据处理技术,特别涉及处理机的程序控制,以及涉及其 与输入/输出设备之间数据读写的程序控制,
技术介绍
徵软的Windows搡作系统广泛应用于个人和商业计算机上,现流行的 Win2000, WinXP, Vista等版本均具有账户权限的概念。其中管理员帐户具有最高的搡作权 限,可以进行系统级别的操作.普通用户属于受限帐户,具有的是受限制的操作权限,不 能进行系统级别的搡作,例如读写注册表、读写系统文件夹或文件、进行系统的一些安全 设置或控制等,特别是不能读写外部设备。具体以图l为例,图la示意了管理员帐户下的 情况,此时应用程序可以使用Windows API以读写方式来打开外部设备并进行数据读写。 而同样的应用程序在受限帐户下,对外部设备进行数据读写就受到限制,基本上是只能读 (如图lb所示)而不能写(如图lc所示),因此,如图ld所示,也是不能以读写方式来 打开外部设备并搡作的。从而上述现有技术的不足之处在于在WinXP, Win2000搡作系统下,用户若以普通用 户身份进行登录,则用户权限,包括用户对外部设备进行数据读写将受到限制。尤其在微 软公司最新推出的Vista版本下,因为它比之前的WinXP, Win2000新增了 一个UAC (User Account Control,用户帐户控制;目的是将需要特权的任务从普通任务中提取出来,便于 用户以普通用户的权限来执行大部分任务,-頃时以更高的权限来执行特殊任务)功能,基 于该功能,用户的登录与以往搡作系统的重大改变在于,当用户以自创建的管理员帐户身 份登录时,会同时获得管理员访问令牌和普通用户访问令牌。其中普通用户访问令牌用来 启动Explorer, exe (所有用户初始化进程的父进程,这些进程会继承Explorer, exe的访问 令牌权限),这样若非UAC对某个程序进行权限提升,所有的应用程序将以普通用户权限进 行工作。所以在该版本操作系统中,即使用户以所述管理员身份登录,当运行应用程序时, 会经常面对系统所弹出的提示用户提升运行权限的对话框,使程序的运行受到影响
技术实现思路
本专利技术要解决的技术问题是针对上述现有技术的不足之处,而提出一种方 法,允许在受限帐户下提升用户的权P良,尤其简单实现对外部设备的数据读写,尤其在Vista操作系统的受限帐户下,使用户程序避免对话框权限提升提示的干扰。为解决上述技术问题,本专利技术的基本构思为根据Windows的运行机制,若以Windows 服务程序为基础,设计一个服务程序,用以根据用户当前权限来区别控制应用程序的运行, 使针对外部设备进行数据读写的程序自动获取较高权限,从而消除对话框或帐户权限的限 制。作为实现本专利技术构思的技术方案是,提供一种Windows系统下受限帐户提升用户权限 的方法,用于应用程序操作权限的提升,尤其是,包括步骤.-A. 建立或寻找一可读写的公用目录,以及在所述公用目录下指定一记录文件;B. 建立或导入一服务程序并运行,以在系统中监测所述记录文件并运行该文件所指定 的应用程序;C. 编制所述应用程序时,在该应用程序的入口添加一判断处理模块;该模块将检测当 前程序的运行权限,若是管理员权限,则正常运行该应用程序,否则,往所述指定 文件中写入该应用程序的全路径后结東该应用程序的运行。上述方案中,所述服务程序基于Kernel层而建立,设定为自动运行模式。上述方案中,所述服务程序提供一个能够以前台方式运行所述应用程序的函数。上述方案中,所述服务程序的运行还在系统中创建一循环监测并读取所述指定文件的 内容的监视线程;若所述内容每增加一应用程序的全路径,则该应用程序通过所述函数得 到运行。上述方案中,所述指定文件由需要以管理员权限运行的应用程序临时建立,该文件将 在由该文件指定的应用程序通过所述函数得到运行后被所述服务程序删除。上述方案中,所述应用程序执行读写外部设备的操作或任务。采用上述技术方案,简单且有效地实现了指定程序运行权限的提升,也解决了 Windows 系统受限帐户下应用程序需要和外部设备进行数据读写搡作由于权限不够而无法支持的问 题,同时也能够避开Vista系统下UAC设置带来的提示框;同时还具有易于实施的优点。附图i兑明 图l是现有技术不同帐户权限对外部设备读写操作的限制情况示意图图2是本专利技术方法的在windows系统中的实现框架示意图 图3是本专利技术方法中服务程序和应用程序的操作流程图 图4是本专利技术服务程序中自定义函数的操作流程示意图 图5是本专利技术方法实现流程示意图具体实施方式下面,结合附图所示之最佳实施例进一步阐述本专利技术。本专利技术实现框架如图2所示,应用程序基于windows系统,用来执行特定的操作, 包括读写注册表、访问以各种接口形式连接计算机的外部设备等;服务程序基于windows 系统,用来提供辅助操作,例如提升所述应用程序的权限、使之以前台方式运行。所述服 务程序和应用程序之间通过一个可写的公共目录下的记录文件来建立联系。因此,本专利技术 方法包括步骤A. 建立或寻找一可读写的公用目录,以及在所述公用目录下指定一记录文件;B. 建立或导入一服务程序并运行,以在系统中监测所述记录文件并运行该文件所指定 的应用程序;C. 编制应用程序时,在应用程序的入口添加一判断处理模块;如图3b所示,该模块 将检测当前程序在系统中的运行权限,若是管理员权限,则正常运行该应用程序, 否则,往所述指定文件中写入该应用程序的全路径后结東该应用程序的运行。在本专利技术实施例中,步骤A所述公用目录可以是通过如下代码得到的路径之一 TCHAR szPubPath = {0};SHGetSpecialFolderPath(NULL, szPubPath, CSIDL—C0固0N—APPDATA, 0); SHGetSpecialFolderPath(NULL, szPubPath, CSIDL-C0函0N—D0CUMENTS, 0); 其中,szPubPath为用户定义的TCHAR类型变量,SHGetSpecialFolderPath为Windows系 统提供的函数,该函数将根据输入参数的不同而返回不同的路径值。本实施例中,执行SHGetSpecialFolderPath (NULL, szPubPath, CSIDL—C0MM0N—APPDATA, 0); 在windows XP系统中可以获得路径szPubPath = C:\Documents and Settings\All Users\Application Data在windows Vista系统中可以获得路径szPubPath = C: \ProgramData 而执行SHGetSpecialFolderPath(NULL, szPubPath, CSIDL—COMMON—DOCUMENTS, 0); 在windows XP系统中获得的路径是szPubPath = C:\Documents and Settings\ All Users\Documents 在windows Vista中获得的路径是szPubPath = C: \PrograraData\Documents 这些公用路径在任何帐户权限下都是可读可本文档来自技高网
...

【技术保护点】
一种Windows系统下受限帐户提升用户权限的方法,用于应用程序操作权限的提升,其特征在于,包括步骤: A.建立或寻找一可读写的公用目录,以及在所述公用目录下指定一记录文件; B.建立或导入一服务程序并运行,以在系统中监测所述记录文件并运行该文件所指定的应用程序; C.编制所述应用程序时,在该应用程序的入口添加一判断处理模块;该模块将检测当前程序的运行权限,若是管理员权限,则正常运行该应用程序,否则,往所述指定文件中写入该应用程序的全路径后结束该应用程序的运行。

【技术特征摘要】

【专利技术属性】
技术研发人员:邓鑫
申请(专利权)人:芯微技术深圳有限公司
类型:发明
国别省市:94[中国|深圳]

网友询问留言 已有1条评论
  • 来自[山东省烟台市电信] 2014年12月05日 15:28
    权限是指为了保证职责的有效履行任职者必须具备的对某事项进行决策的范围和程度它常常用具有批准……事项的权限来进行表达例如具有批准预算外5000元以内的礼品费支出的权限
    0
1