배치 파일에서 실행하려는 관리자 권한이 필요한 프로그램이 있습니다. 명령 줄에서 실행할 수있는 명령은 관리자 권한으로 프로그램을 실행합니다. 허가 요청을하는 팝업창은 괜찮습니다. 또한 파일은 ./src에서 추가 파일이 실행되도록 컴퓨터의 아무 곳에서나 실행할 수 있어야합니다. 문제는 내가 마우스 오른쪽 버튼을 클릭하고 "관리자 권한으로 실행"을 선택하면 현재 디렉토리가 변경되므로 ./src가 더 이상 작동하지 않는다는 것입니다. 내 컴퓨터에서 UAC를 사용하지 않으면 모든 것이 정상적으로 작동합니다. 고맙습니다!win7의 명령 줄에서 승격 된 UAC를 사용하여 프로세스를 관리자로 시작하는 방법
2
A
답변
0
여기 봐 : https://superuser.com/a/269750/139371
C:\Utils\bin.x86-64\elevate.exe -k dir
이 elevate
가 호출 "현재 디렉토리"에 dir
을 실행 호출 작동하는 것 같군.
0
이것은 어렵습니다. Microsoft는 RunAs를 제외하고이 기능을 수행하는 데 유틸리티를 제공하지 않으며 (주로 배치 능력이 보안을 손상시킬 수 있기 때문에) 관리자 계정을 활성화해야합니다.
SendKeys를 사용하여 시작 메뉴를 열고 명령 줄 셸을 시작하는 cmd [CTL] + [SHIFT] + [ENTER]를 입력하여 Jscript 프로그램이 유사 할 수 있습니다.
저장 StartAdmin.js처럼의 .js 파일과 같이 다음
wscript StartAdmin.js
사람 :
var WshShell = WScript.CreateObject("WScript.Shell");
WshShell.SendKeys("^{esc}cmd^+{ENTER}"); The equivilent of [CTRL]+[ESC] cmd [CTRL]+[SHIFT]+[ENTER]
이 배치 파일에서 StartAdmin.js를 실행하려면 다음 줄을해야합니다 특정 디렉토리에서 실행하고 배치 파일을 실행하려면 StartAdmin.js의 2 행을 다음과 같이 변경하십시오.
WshShell.SendKeys("^{esc}cmd /C "cd %userprofile% & batchfile.bat"^+{ENTER}");
/C 스위치는 명령을 실행하라는 메시지를 표시 한 다음 명령 줄 창을 닫습니다.
/K는 배치 파일을 종료 한 후에 명령 창을 열어 둡니다.
+=[Shift Key]
^=[Control Key]
{esc}=[Escape Key]
{enter}=[Enter Key]
이 CMD를 입력 CMD.EXE를 사용하는 방법에 대한 자세한 내용은/:
당신이 SendKeys 매크로 명령을 이해하는 데 도움이? 명령 프롬프트에서.
이것은 매우 어수선하고보기 흉한 방법이지만, Windows와 함께 제공되는 도구 만 사용하는 방법을 알고있는 유일한 방법입니다.
'runas'가 청구서에 부합합니까? – wmz
경로를 배치 파일 위치로 다시 변경하지 않는 이유는 무엇입니까? 예를 들어, 'pushd "% ~ dp0" – jeb
복제본을 만들 수 있습니다. 어떻게 배치 파일을 자동으로 올리면 필요한 경우 UAC 관리자 권한으로 요청할 수 있습니까?] (http://stackoverflow.com/questions/7044985/how -a-auto-elevate-my-batch-file-so-it-that-uac-admin-rights의 요청) – parvus