programmatic way with BAT file determining if elevated command prompt

JohnGray

New member
Local time
1:23 PM
Messages
18
Is there any programmatic way within a BATch file of determining whether it has been started from an elevated command prompt (run as Administrator) or a normal command prompt?

I note the difference between the Current Directory at start of the BATch file, but wonder if there is a better way.

When in elevated mode I don't get a UAC prompt when using DISKPART.
The UAC prompt only happens when running it in a normal command prompt window.

Are you aware of any command which simultaneously would

  • give a different errorlevel when executed in an elevated command prompt than in a normal command prompt, and
  • not produce a UAC prompt in normal mode?
If this is the case, unless I can find something to distinguish between elevated command prompts and normal command prompts, then I will have to try the %cd% variable at the start of BATch files, to see whether it is consistent even across user modifications of the command prompt shortcut's Target Directory...
 
Last edited by a moderator:

My Computer My Computer

At a glance

Windows 7 Pro 64-bit
OS
Windows 7 Pro 64-bit
I can answer my own question, as below
Code:
@echo off

:: +----------+
:: I Elevated I  Test whether this BATch file / Command Prompt
:: +----------+    in running in Elevated mode or Normal mode

setlocal

:: method (applicable to Windows 7, and maybe Vista)
::  try to write a zero-byte file to a system directory
::    if successful, we are in Elevated mode and delete the file
::    if unsuccessful, avoid the "Access is denied" message

:: arbitrary choice of system directory and filename
set tst="%windir%\$del_me$"

:: the first brackets are required to avoid getting the message,
::   even though 2 is redirected to nul.  no, I don't know why.
(type nul>%tst%) 2>nul && (del %tst% & set elev=t) || (set elev=)

if defined elev (echo Elevated mode) else (echo Normal mode)

endlocal
 

My Computer My Computer

At a glance

Windows 7 Pro 64-bit
OS
Windows 7 Pro 64-bit
Back
Top