vbscriptelevated-privilegeselevation

Check if the script has elevated permissions


I would like to check whether the context in which my VBscript runs allows me to perform administrative tasks.

Requirements:

Related question: https://stackoverflow.com/questions/301860 (all of the answers I found there (a) ignore the UAC issue and (b) are faulty because they ignore the possibility of a user having administrative permissions although not being direct member in the Administrators group)


Solution

  • I know this thread is very old and marked answered but this is a simpler method that has always worked for me. User S-1-5-19 is the Local NT Authority so accessing the key takes admin rights. It works if run via elevation.

    Option Explicit 
    
    msgbox isAdmin(), vbOkonly, "Am I an admin?"
    
    Private Function IsAdmin()
        On Error Resume Next
        CreateObject("WScript.Shell").RegRead("HKEY_USERS\S-1-5-19\Environment\TEMP")
        if Err.number = 0 Then 
            IsAdmin = True
        else
            IsAdmin = False
        end if
        Err.Clear
        On Error goto 0
    End Function