프로그램을 관리자로 실행하는 배치 파일 - 오류 740

프로그램을 관리자로 실행하는 배치 파일 - 오류 740

저는 기본 Windows 프로그램을 관리자 권한으로 실행하는 소규모 배치 스크립트를 작성 중입니다.

모든 기능이 제대로 작동하지만 "regedit.exe"를 실행하려고 할 때 문제가 발생했습니다.

스크립트에서 옵션 3을 선택하고 관리자 권한으로 regedit를 실행해야 하면 오류가 발생합니다.

740: 요청한 작업에는 권한 상승이 필요합니다.

스크립트는 다음과 같습니다.

echo off
cls
echo.
echo Start as admin:
echo /----------------\
echo # 1. CMD         #
echo # 2. Task Manager#
echo # 3. Regedit     #
echo # 0. Exit        #
echo \----------------/
echo.

set /p run=

if %run%==1 (
set run="cmd"
)

if %run%==2 (
set run="taskmgr"
)

if %run%==3 (
set run="regedit"
)

if %run%==0 (
exit
)

runas /savecred /user:admin %run%

이에 대한 해결 방법이 있나요?

타사 프로그램을 설치하거나 레지스트리를 수정하거나 UAC를 비활성화하지 않고도 이 작업을 수행하고 싶습니다.

답변1

명령을 실행하도록 지시하는 RunAs를 사용하여 새 CMD 프롬프트를 실행하여 이를 실행할 수 있습니다.

배치에서 이 작업을 수행하려면 마지막 줄을 다음과 같이 변경하세요.

runas /savecred /user:admin "cmd /c %run%"

답변2

Add this to the top of your Batch file and at the end just put %run% instead of (runas /savecred /user:admin %run%)


@echo off

:: BatchGotAdmin
:-------------------------------------
REM  --> Check for permissions
>nul 2>&1 "%SYSTEMROOT%\system32\cacls.exe" "%SYSTEMROOT%\system32\config\system"

REM --> If error flag set, we do not have admin.
if '%errorlevel%' NEQ '0' (
    echo Requesting administrative privileges...
    goto UACPrompt
) else ( goto gotAdmin )

:UACPrompt
    echo Set UAC = CreateObject^("Shell.Application"^) > "%temp%\getadmin.vbs"
    set params = %*:"=""
    echo UAC.ShellExecute "cmd.exe", "/c %~s0 %params%", "", "runas", 1 >> "%temp%\getadmin.vbs"

    "%temp%\getadmin.vbs"
    del "%temp%\getadmin.vbs"
    exit /B

:gotAdmin
    pushd "%CD%"
    CD /D "%~dp0"
:--------------------------------------

답변3

아마도이것다음을 포함하는 다른 배치 스크립트를 생성하여 관리자가 도움을 줄 수 있도록 도움을 줄 수도 있고 전체 배치를 시작할 수도 있습니다.

runas /user:admin C:\Path_to_your_batch_file\name.bat

답변4

  1. C:\Windows\regedit.exe를 마우스 오른쪽 버튼으로 클릭하고 속성을 선택합니다.
  2. 호환성 탭에서 "관리자 권한으로 이 프로그램 실행"을 선택하세요.

관련 정보