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
특수문자 등이 충분히 고려되지는 않았습니다.