Windows 7 Forums

Welcome to Windows 7 Forums. Our forum is dedicated to helping you find support and solutions for any problems regarding your Windows 7 PC be it Dell, HP, Acer, Asus or a custom build. We also provide an extensive Windows 7 tutorial section that covers a wide range of tips and tricks.

Windows 7: programmatic way with BAT file determining if elevated command prompt

16 Oct 2010   #1

Windows 7 Pro 64-bit
programmatic way with BAT file determining if elevated command prompt

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...

My System SpecsSystem Spec

17 Oct 2010   #2

Windows 7 Pro 64-bit

I can answer my own question, as below
@echo off

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


:: 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)

My System SpecsSystem Spec

 programmatic way with BAT file determining if elevated command prompt

Thread Tools

Similar help and support threads for2: programmatic way with BAT file determining if elevated command prompt
Thread Forum
Elevated Command Prompt Tutorials
Elevated Command Prompt Shortcut Tutorials
Elevated command prompt over SSH Network & Sharing
Tip for Elevated Command Prompt General Discussion
Solved Add elevated command prompt to context menu Customization
How to open Elevated Command Prompt? Performance & Maintenance
elevated command prompt fails General Discussion

Our Sites

Site Links

About Us

Find Us

Windows 7 Forums is an independent web site and has not been authorized, sponsored, or otherwise approved by Microsoft Corporation. "Windows 7" and related materials are trademarks of Microsoft Corp.

Designer Media Ltd

All times are GMT -5. The time now is 04:53 PM.
Twitter Facebook Google+

Windows 7 Forums

Seven Forums Android App Seven Forums IOS App

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33