这两天由于工作须要。在写一些vbs的脚本,才知道。vbs不能像其它可运行文件一样。在 须要提升訪问权限时。弹出UAC窗体。那么,怎样通过UAC提升vbs脚本的訪问权限呢?

查了一些资料,将结果整理一下:

第一种:

If WScript.Arguments.length =0 ThenSet objShell = CreateObject("Shell.Application")'Pass a bogus argument with leading blank space, say [ uac]objShell.ShellExecute "wscript.exe", Chr(34) & _WScript.ScriptFullName & Chr(34) & " uac", "", "runas", 1
Else'Add your code here
End If

另外一种:

Set objShell = CreateObject("Shell.Application")
Set FSO = CreateObject("Scripting.FileSystemObject")
strPath = FSO.GetParentFolderName (WScript.ScriptFullName)
If FSO.FileExists(strPath & "\MAIN.VBS") ThenobjShell.ShellExecute "wscript.exe", _ Chr(34) & strPath & "\MAIN.VBS" & Chr(34), "", "runas", 1
ElseMsgBox "Script file MAIN.VBS not found"
End If 

第三种:

'Checks if the script is running elevated (UAC)
function isElevated  Set shell = CreateObject("WScript.Shell")  Set whoami = shell.Exec("whoami /groups")  Set whoamiOutput = whoami.StdOut  strWhoamiOutput = whoamiOutput.ReadAll   If InStr(1, strWhoamiOutput, "S-1-16-12288", vbTextCompare) ThenisElevated = True  ElseisElevated = False  End If
end function'Re-runs the process prompting for priv elevation on re-run
sub uacPrompt'Check if we need to run in C or W scriptinterpreter = "wscript.exe"If Instr(1, WScript.FullName, "CScript", vbTextCompare) = 0 Theninterpreter = "wscript.exe"elseinterpreter = "cscript.exe"end if'Start a new instance with an elevation prompt firstSet shellApp = CreateObject("Shell.Application")shellApp.ShellExecute interpreter, Chr(34) & WScript.ScriptFullName & Chr(34) & " uac", "", "runas", 1'End the non-elevated instanceWScript.Quit
end sub'Make sure we are running elevated, prompt if not
if not isElevated Then uacPrompt'Add your code here
MsgBox "hello world"

UAC的效果图:

參考地址:

http://www.winhelponline.com/articles/185/1/VBScripts-and-UAC-elevation.html

http://www.kellestine.com/self-elevate-vbscript/

转载于:https://www.cnblogs.com/zsychanpin/p/7363697.html

VBScripts and UAC elevation(visa以后的系统)相关推荐

  1. 关闭Windows系统中的UAC用户帐户控制

    问题描述: 软件工具需要注册到注册表,无论使用普通用户权限或是管理员权限,注册始终失败. 解决思路: 通过控制UAC的通知等级,成功使得软件工具在非管理员权限下注册成功. 操作步骤: 1. Win+R ...

  2. 如何在windows开启UAC(用户账号控制)的情况下优雅的管理程序的权限申请方案(一)

    问题起源: 简单的说就是在windows vista之前的windows系统,只要是管理员(比如Administrator)账户登录系统以后,该账户下的任何程序的启动权限都具有管理员权限:这个权限是很 ...

  3. 可以绕过 Windows UAC 吗

    目录 一.引言 二.使用 COM 提升名称方法绕过 UAC 2.1 什么样的 COM 组件支持自动提权 2.2 如何以提升名称方法创建 COM 组件对象 2.3 有了权限提升的 COM 组件对象后,怎 ...

  4. windows 编写的硬件驱动_哪个是PXI硬件合适的设备驱动程序?VISA还是IVI?

    理想的测试系统可以认为是其组成部分的总和,包括测量和激励硬件,信号切换,电缆以及可能 的大规模互连系统,UUT电源,外部PC或嵌入式控制器,操作系统(OS)和编程环境.每个部件根据诸如UUT测试参数, ...

  5. Delphi与Windows 7下的用户账户控制(UAC)机制

    WIN7/WIN8/WIN10, Vista提供的UAC机制,它的主要目的是防止对于操作系统本身的恶意修改. 对于Delphi程序的影响,UAC主要在于以下几点: 1.由于UAC机制,Delphi对于 ...

  6. Windows UAC提权

    一.UAC简介 1. UAC UAC是微软为提高系统安全性中引入的技术.UAC要求用户在执行可能影响计算机运行的操作或者在进行可能影响其他用户的设置之前,拥有相应的权限或者管理员密码.UAC在操作启动 ...

  7. Delphi与Windows 7下的用户账户控制(UAC)机制(加小盾牌),注册表没反应

    WIN7, Vista提供的UAC机制,它的主要目的是防止对于操作系统本身的恶意修改. 对于Delphi程序的影响,UAC主要在于以下几点: 1.由于UAC机制,Delphi对于系统的操作可能无声的失 ...

  8. [Windows] exe 图标上的 UAC 盾牌

    背景 在编写程序的时候,可以在 vs 里的链接器中设置 UAC: 但其实还有一种方式可以加入 UAC 图标,只需要修改文件的属性即可. 过程参考 转自:https://www.zhihu.com/qu ...

  9. VISA卡,银联卡,MASTER CARD

    银联卡 银联"卡是指符合统一业务规范和技术标准要求,并且在指定位置印有"银联"字样的银行卡.据中国人民银行有关负责人介绍,加印"银联"标识的银行卡,必 ...

最新文章

  1. apache httpclient 工具类_Httpclient实现文件上传、文件下载看这篇文章就够了
  2. vs2017开发php,C#编写的可供PHP调用的com dll(Visual studio 2017)
  3. MATLAB实战系列(十九)-遗传算法解决TSP(旅行商)问题-应用及解析(文末附MATLAB源码)
  4. 【Python基础】Python正则表达式,从入门到实战,精华都在这里!
  5. 【css】文字溢出,显示省略符号(...)
  6. php7 pdo mysql_PHP7添加pdo_mysql扩展
  7. 依赖注入–字段vs构造函数vs方法
  8. java圆形排列_位图排序java版
  9. Python开发者必知的 11 个 Python GUI 库,你用过几个?
  10. Java 面试之数据结构
  11. css hsla和rgba的区别
  12. RabbitMQ发布/订阅模式(Publish/Subscribe)
  13. 苹果 Mac 图标设计背后的故事!
  14. c语言程序有哪几类词汇,c语言是什么 c语言必背词汇有哪些
  15. 电商商品中心类目体系
  16. Written English-书面-现在进行时
  17. Android开发_ARN是什么
  18. 蓝桥杯 图形排版
  19. Fortigate 飞塔防火墙命令行常用操作 CLI
  20. Python采集网易云音乐

热门文章

  1. 初论函数指针、指针函数、指针的指针
  2. django-admin 设计User外键,设计model
  3. inner join
  4. 使用工具类时尽量使用私有的无参构造函数
  5. python下异常处理
  6. Android实战技巧之十一:Android Studio和Gradle
  7. CodeIgniter 的购物车类只能添加10个商品的解决办法
  8. 远程登录linux服务器的方式(telnet,ssh,ftp)
  9. extjs4.0的高级组件grid补充01选择模式selection和表格特性feature
  10. 用正则表达式取出table中的所有行(支持嵌套table)