Solved

How to elevate permission to batch install app

Posted on 2011-02-17
4
1,764 Views
Last Modified: 2012-05-11
I need to streamline the installation of an application for computers running various OS (XP, Vista, Win 7) with extremely] novice users. I've been working with the following code (found elsewhere on this site where it was unfortunately not credited to the author) that seems to work well in identifying the right OS. Everything works until the Call %ELEVATED_CMD line.

@echo off
:: ****************** Prompt for elevated permissions *************************
:: This makes the batch file prompt for elevated permissions on Windows Vista
:: or Windows 7, then re-run itself
VER | FINDSTR /IL "5.1." > NUL
IF %ERRORLEVEL% EQU 0 SET Version=XP

VER | FINDSTR /IL "5.2." > NUL
IF %ERRORLEVEL% EQU 0 SET Version=2003

VER | FINDSTR /IL "6.0." > NUL
IF %ERRORLEVEL% EQU 0 SET Version=Vista

VER | FINDSTR /IL "6.1." > NUL
IF %ERRORLEVEL% EQU 0 SET Version=7

If "%Version%"=="XP" GoTo SkipElevation
If "%Version%"=="2003" GoTo SkipElevation

PushD "%~dp0"

If Exist "%~0.ELEVATED" GoTo SkipElevation

:: Have to escape double quotes because they are passed to Cmd.exe via ShellExecute
Set CMD_Args=%0 %*
Set CMD_Args=%CMD_Args:"=\"%

Set ELEVATED_CMD=PowerShell -Command (New-Object -com 'Shell.Application').ShellExecute('Cmd.exe', '/C %CMD_Args%', '', 'runas')

echo.
echo Calling this file to re-run with elevated privileges
echo.

Call %ELEVATED_CMD%

echo.
echo Paused to read error message before exit
echo.
pause

Exit
:SkipElevation
If Exist "%~0.ELEVATED" Del "%~0.ELEVATED"
:: ****************************************************************************
:: program install command here.

It fails on line 1, character 75 but, I don't understand exactly what to expect in the way for a prompt or whether it should just running with advanced permissions. I'm a far cry from being an accomplished script guy but this looks to be almost perfect so I really need help.

It occurs to me that many novice users operate with admin permissions so the script would run so I should also probably only test for users who don't have admin privileges.
0
Comment
Question by:ProTek2
  • 3
4 Comments
 
LVL 42

Expert Comment

by:Jackie Man
ID: 34922722
The information below maybe helpful for you.

Source: http://www.wilderssecurity.com/showthread.php?t=267862
Set CMD_Args=%0 %*
Set CMD_Args=%CMD_Args:"=\"%
Set ELEVATED_CMD=PowerShell -Command (New-Object -com 'Shell.Application').ShellExecute('Cmd.exe', '/C %CMD_Args%', '', 'runas')
Echo %ELEVATED_CMD% >> "%~0.ELEVATED"
:: If there are single quotes in the arguments, this will fail
Call %ELEVATED_CMD%
Exit
:SkipElevation
If Exist "%~0.ELEVATED" Del "%~0.ELEVATED"

Open in new window

0
 

Author Comment

by:ProTek2
ID: 34923050
That post is using the exact same code segment that I found and if you lift it out of that post and run it, (Win 7 32 bit) you will find that it returns the exact same error.

What I want to know is why it fails and how to make it work.
0
 

Accepted Solution

by:
ProTek2 earned 0 total points
ID: 34926228
I discovered the problem. One of the folder names in the path contained an apostrophe. Eliminating that eliminated the error.
0
 

Author Closing Comment

by:ProTek2
ID: 34959110
I solved the problem myself.
0

Featured Post

Netscaler Common Configuration How To guides

If you use NetScaler you will want to see these guides. The NetScaler How To Guides show administrators how to get NetScaler up and configured by providing instructions for common scenarios and some not so common ones.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

Title # Comments Views Activity
transfer from exchange mails to gmail 10 95
Authenticated Users 5 26
HP Pavilion will not boot 15 76
Windows Remote Desktop Connection - changing default port. 6 21
I'm a big fan of Windows' offline folder caching and have used it on my laptops for over a decade.  One thing I don't like about it, however, is how difficult Microsoft has made it for the cache to be moved out of the Windows folder.  Here's how to …
For both online and offline retail, the cross-channel business is the most recent pattern in the B2C trade space.
This Micro Tutorial will go in depth within Systems and Security in Windows 7 and will go into detail regarding Action Center, Windows Firewall, System, etc. This will be demonstrated using Windows 7 operating system.
This Micro Tutorial will give you a introduction in two parts how to utilize Windows Live Movie Maker to its maximum editing capability. This will be demonstrated using Windows Live Movie Maker on Windows 7 operating system.

930 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

12 Experts available now in Live!

Get 1:1 Help Now