관리자 권한이 필요한 첫 번째 박쥐 파일이 있으므로 사용자가 "관리자 권한으로"실행하면 내 두 번째 박쥐 파일에 관리자 권한이 없어야합니다 (&에서 끌어 야합니다. 탐침).박쥐 파일에서 높은 권한을 삭제할 수 없습니다.
다음 명령으로 첫 번째 파일에서 두 번째 bat 파일을 열려고 시도했지만 처음으로 관리자로 시작한 경우 &을 두 번째 파일로 끌어 놓을 수 없습니다.
runas /trustlevel:0x20000 "cmd /C %~dp0upload.bat"
내가 그렇게 할 수있는 방법
%~dp0upload.bat
?
UPDATE : 전체 코드는
@echo off &setlocal
if not exist "MyFolder" GOTO :prog
runas /trustlevel:0x20000 "cmd /C %~dp0upload.bat"
exit /B
:prog
more code.....
exit
업데이트 2 :
runas /trustlevel:0x20000 "call %~dp0upload.bat"
을 사용하여 다른 시도
언급 here
같은 오류가 발생합니다UPDATE 3 :
setlocal DisableDelayedExpansion
set "batchPath=%~0"
setlocal EnableDelayedExpansion
ECHO Set UAC = CreateObject^("Shell.Application"^) > "%temp%\OEgetPrivileges.vbs"
ECHO UAC.ShellExecute "temp.bat", "ELEV & !given_name!", "", "runas", 1 >> "%temp%\OEgetPrivileges.vbs"
"%temp%\OEgetPrivileges.vbs"
가 지금은에 !given_name!
전달해야합니다
확인하여 VBS, 나는 일반 사용자로 거기에서 내가 사용 높은 권한을 가진 다른 박쥐를 호출 첫번째 배치를 열 관리 두 번째 박쥐 파일하지만 그것을 전달하는 방법과 그 두 번째 박쥐에서 검색하는 방법을 잘 모르겠습니다.
문제는 사용자가 관리자 암호가 없을 수 있습니다 사용자가 모든 시간 차이가 있다는 것입니다. 그래서 그들은 패스워드가 필요없는 첫 번째 배치를 "관리자 권한으로 실행"해야합니다. 마지막으로 두 파일의 연결을 해제하여 내 사용자가 첫 번째 박쥐를 한 번만 시작하고 (관리자로 실행) 다른 모든 시간은 두 번째 박쥐 만 시작합니다 (관리자로 실행하지 않음). – remyremy
@remyremy 권한 상승 스크립트에 관리자 비밀번호가 필요하지 않습니다. ("일반"사용자의 경우) uac 메시지 상자를 클릭하기 만하면됩니다. – jeb
감사합니다. 이제'! given_name!'을 두 번째 bat 파일에 전달해야하지만 전달 방법과 두 번째 배트에서 검색하는 방법을 모르겠습니다.내 질문을 업데이트했습니다. – remyremy