有工作任务,执行一个vbs脚本,纯vbs脚本,不涉及批处理,让vbs在执行的过程中有管理员权限,能够执行管理员才能执行的操作。
我实现的思路是调用cmd向一个无管理员权限的位置写入一个文件,等待这个操作的结束,然后再去判断这个文件是否存在,如果不存在,则申请管理员权限来运行当前的这个vbs脚本(这里会新创建vbs进程),申请完成后当前运行的vbs脚本退出,新申请管理员权限的vbs随即开始运行,运行后又会往这个位置写文件,再去判断文件是否存在,因已有管理员权限,因此写文件是成功的,然后删除该临时文件,继续往下执行。
Set WShell = WScript.CreateObject("WScript.Shell") set fso =CreateObject("Scripting.FileSystemObject") tFile = "C:\Windows\System32\drivers\etc\test.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 "下面添加你需要执行的代码,此时已有管理员权限了。"