VBS以管理员身份运行自身

有工作任务,执行一个vbs脚本,纯vbs脚本,不涉及批处理,让vbs在执行的过程中有管理员权限,能够执行管理员才能执行的操作。

我实现的思路是调用cmd向一个无管理员权限的位置写入一个文件,等待这个操作的结束,然后再去判断这个文件是否存在,如果不存在,则申请管理员权限来运行当前的这个vbs脚本(这里会新创建vbs进程),申请完成后当前运行的vbs脚本退出,新申请管理员权限的vbs随即开始运行,运行后又会往这个位置写文件,再去判断文件是否存在,因已有管理员权限,因此写文件是成功的,然后删除该临时文件,继续往下执行。

Set WShell = WScript.CreateObject("WScript.Shell") 
set fso =CreateObject("Scripting.FileSystemObject")
tFile = "C:WindowsSystem32driversetc	est.txt"
WShell.run("%comspec% /c echo 123> " & tFile), 0, True
if not fso.FileExists(tFile) then
    CreateObject("Shell.Application").ShellExecute WScript.FullName, Chr(34) & WScript.ScriptFullName & Chr(34), "", "runas", 1 
    WScript.Quit 
else
    fso.DeleteFile(tFile)
End if

Wscript.echo "下面添加你需要执行的代码,此时已有管理员权限了。"
原文地址:https://www.cnblogs.com/boltkiller/p/14746673.html