배치파일 관리자 권한으로 실행

https://windowsforum.kr/lecture/20874606

안녕하세요?

같은 내용을 예전에 올렸습니다. https://windowsforum.kr/lecture/17680459

최근 좀 더 개선하여서 올려봅니다.^^

 

다음과 같은 꼭 필요한 사항이 고려되어야 할 것 같습니다.

– 사용자 권한이나 관리자 권한에서 실행시 오류 없을 것

– 사용자 권한에서 인수들과 같이 실행시 관리자 권한으로 전환 후 동일 인수로 전달될 것

 

테스트 환경

– 관리자 권한 파일 관리자나 에디터에서 실행,

– 사용자 권한 탐색기와 콘솔에서 실행

 

사소한 것들도 고려하여 저는 다음과 같이 정리하였습니다.

 

1, 인수 전달이 필요 없을 때,

– 쌍따옴표 필요 없는(스페이스를 포함하지 않는) 인수 전달시도 가능 ‘%* ‘

 

bcdedit >nul||(powershell start -v runas ‘%0’ ‘%* ‘&exit/b)

 

– 파워쉘로도 인수 전달이 가능하나 공백을 포함한 인수 전달은 처리하기 어렵습니다.

– 공백 포함한 인수 전달은 좀 더 찾아보고 내용 추가하겠습니다. 안풀리네요ㅜㅜ

 

2. 인수 전달이 필요할 때,

– 인수 없이도 실행되고, 특히 인수에 쌍따옴표(스페이스가 포함된 인수)가 있어도 실행 가능

 

set “args=%*”& if defined args call set “args=%%args:”=””%%”

bcdedit>nul||mshta vbscript:close(createobject(“shell.application”).shellexecute(“%ComSpec%”,”/c %~s0 %args%”,,”runas”,1))&&exit/b

 

 

특수문자 등이 충분히 고려되지는 않았습니다.