首页 / 知识
如何检测是否已启用Vista UAC?
2023-04-17 07:50:00

How to detect whether Vista UAC is enabled?我需要我的应用程序根据是否启用Vista UAC而表现不同。 我的应用程序如何检测用户计算机上UAC的状态? 此注册表项应告诉您:
值
启用 但这假设您有权阅读它。 您可以通过编程方式尝试读取用户的令牌,并猜测它是否是启用了UAC的管理员(请参见此处)。并非万无一失,但它可能会起作用。 这里的问题更多是"您为什么需要知道"-它与答案有关。实际上,没有API,因为从操作系统行为的角度来看,重要的是用户是否为管理员-他们如何选择以管理员身份保护自己是他们的问题。 您不想检查是否启用了UAC。那什么都没告诉你。 我可以成为禁用UAC的标准用户。
您想使用
这篇文章在C#中包含示例代码,以测试UAC是否启用以及当前应用是否已获得提升的权限。您可以下载代码并根据需要进行解释。还链接了一个示例,在C ++中显示了相同的示例 http://www.itwriting.com/blog/198-c-code-to-detect-uac-elevation-on-vista.html 该文章中的代码不只是从注册表中读取。如果启用了UAC,则您可能无权从注册表中读取该内容。 您可以通过检查以下注册表项中的DWORD值EnableLUA来完成此操作: HKLM /软件/ Microsoft / Windows / CurrentVersion /策略/系统 如果该值为0(或不存在),则UAC为OFF。如果存在且非零,则UAC处于打开状态:
请注意,如果用户更改了UAC的状态但尚未重新启动计算机,则此功能将返回不一致的结果。 这篇文章相当古老,但是我想评论一下"为什么需要知道"和"检查令牌成员身份"部分。 事实是,Microsoft自己的文档说:"如果用户帐户控制已关闭,并且标准用户尝试执行需要提升的任务",我们应该提供一个错误,而不是显示带有UAC防护板的按钮和/或链接,尝试提升。有关详细信息,请参阅底部的http://msdn.microsoft.com/zh-cn/library/windows/desktop/aa511445.aspx。 我们如何做到这一点而又无法检查是否启用了UAC? 在这种情况下,也许检查用户是否以管理员权限运行是正确的事情,但是谁知道呢?微软给出的指导充其量甚至是完全不确定的,即使不是完全令人困惑的。 在HKLM \ SOFTWARE \ Microsoft \ Windows \ CurrentVersion \ Policies \ System中检查注册表值 EnableLUA值确定UAC是否处于活动状态。 对于发现此问题并正在寻找VBScript解决方案的其他任何人。这是我想出的方法,用于检测是否启用了UAC,以及是否启用了提升的特权来重新启动脚本。只需将您的代码放在Body()函数中即可。我发现如果编写代码以始终启动提升版本,则XP和Windows 7之间的可移植性存在问题。如果没有UAC,我会使用这种方法绕过海拔。还应考虑启用了UAC的2008年及更高版本的服务器。
AFAIK,UAC是本地用户或组上的策略设置。因此,您可以从.Net中读取此属性。抱歉,没有更多详细信息,但我希望这会有所帮助 |
最新内容
相关内容
linux命令删除用户组?
linux命令删除用户组?,管理,密码,系统,用户组,用户,概念,命令,文件,管理员,工作组,Linux命令之用户组管理1、查看/etc/group文件,只存在名称为mlinux中用户创建命令?
linux中用户创建命令?,密码,系统,用户,软件,命令,联系方式,管理,信息,用户名,新用户,linux怎么添加用户1、打开xshell软件,远程访问您的服务器linux注销命令用户?
linux注销命令用户?,系统,服务,密码,地址,工作,命令,状态,工具,信息,基础,linux注销用户命令1、shutdown是一个用来安全关闭或重启Linux系统的linux命令行创建用户?
linux命令行创建用户?,系统,密码,软件,新增,用户,联系方式,管理,用户名,命令,账号,Linux中如何创建用户和用户组Linux如何创建用户?打开xshelllinux系统用户命令?
linux系统用户命令?,系统,工作,地址,信息,管理,命令,目录,时间,电脑,名称,请问linux操作系统的命令是什么linux命令是对Linux系统进行管理的命linux命令所有用户?
linux命令所有用户?,系统,密码,信息,情况,名称,命令,用户,时间,地址,位置,如何查询linux系统中所有用户的用户名和密码首先进入到linux桌面,在linux命令进入用户?
linux命令进入用户?,系统,密码,用户,地址,信息,软件,命令,用户名,联系方式,电脑,linux进入第一次启动+怎么样创建用户?1、进入Linux系统,登陆管linux命令用户管理?
linux命令用户管理?,系统,密码,管理,工作,信息,地址,工具,命令,用户,基础,LInux用户管理查看/etc/group文件,只存在名称为modifiedgroup的用户linux用户与组的命令?
linux用户与组的命令?,管理,系统,名称,用户组,密码,用户,命令,情况,信息,单位,Linux里面groups+用户命令作用是什么?1、在Linux中,用户组是一种linux添加用户的命令?
linux添加用户的命令?,密码,系统,软件,联系方式,用户,新增,信息,管理人员,命令,用户名,linux添加用户名1、打开xshell软件,远程访问您的服务器linux查看用户权限命令?
linux查看用户权限命令?,系统,信息,时间,命令,密码,数字,状态,名称,设备,文件,linux查看文件权限?1、打开linux系统,在linux的桌面的空白处右击linux磁盘检测命令?
linux磁盘检测命令?,情况,系统,数据,检测,管理,信息,命令,磁盘,设备,单位,linux查看磁盘空间命令1、查看磁盘空间-du du命令也是检查硬盘使用