In the past two days, we only need to write some vbs scripts to know that vbs cannot pop up the UAC window when we need to increase access permissions, just like other executable files, how can I use UAC to enhance the access permission of vbs scripts?
I checked some information and sorted out the results:
First:
If WScript.Arguments.length =0 Then Set 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", 1Else 'Add your code hereEnd If
Second:
Set objShell = CreateObject("Shell.Application")Set FSO = CreateObject("Scripting.FileSystemObject")strPath = FSO.GetParentFolderName (WScript.ScriptFullName)If FSO.FileExists(strPath & "\MAIN.VBS") Then objShell.ShellExecute "wscript.exe", _ Chr(34) & strPath & "\MAIN.VBS" & Chr(34), "", "runas", 1Else MsgBox "Script file MAIN.VBS not found"End If
Third:
'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) Then isElevated = True Else isElevated = False End Ifend function'Re-runs the process prompting for priv elevation on re-runsub uacPrompt 'Check if we need to run in C or W script interpreter = "wscript.exe" If Instr(1, WScript.FullName, "CScript", vbTextCompare) = 0 Then interpreter = "wscript.exe" else interpreter = "cscript.exe" end if 'Start a new instance with an elevation prompt first Set shellApp = CreateObject("Shell.Application") shellApp.ShellExecute interpreter, Chr(34) & WScript.ScriptFullName & Chr(34) & " uac", "", "runas", 1 'End the non-elevated instance WScript.Quitend sub'Make sure we are running elevated, prompt if notif not isElevated Then uacPrompt'Add your code hereMsgBox "hello world"
Reference address:
Http://www.winhelponline.com/articles/185/1/VBScripts-and-UAC-elevation.html
Http://www.kellestine.com/self-elevate-vbscript/