Windows 8의 명령 줄에서 관리자 권한으로 실행


11

명령 줄에서 호스트 파일을 편집 할 수 있도록 메모장을 관리자로 실행하려고합니다.

시도한 runas /user:(myusername)\administrator "notepad c:\windows\system32\drivers\etc\hosts"다음 비밀번호를 입력하면

RUNAS 오류 : 실행할 수 없습니다-notepad c : \ windows \ system32 \ drivers \ etc \ hosts 1327 : 계정 제한으로 인해이 사용자의 로그인이 차단되고 있습니다. 또는 정책 제한이 시행되었습니다.

추신 : 사용자 계정에 권한을 부여하면 관리자 권한으로 실행하지 않고도 편집 할 수 있습니다. 그러나 hosts 파일에 대한 권한을 변경하지 않고이를 수행하는 방법을 알고 싶습니다.

답변:


7

좋아, 이유 이 수행하지 작업은 Windows Vista 및 최신의 보안 모델입니다. 관리자 그룹의 계정은 여전히 ​​제한된 사용자로 명시 적으로 상승되지 않은 모든 것을 실행합니다. 예외는 모든 것을 상승 시키는 Administrator계정 입니다. 따라서 일반적으로 로그인 계정으로 사용하는 것은 좋지 않으며 일반적으로 사용하지 않도록 설정되어 있습니다.

이를 활성화 한 다음 runas해당 계정으로 호출 할 수 있습니다. 몇 가지 문제가 생겼습니다. 이제는 다른 환경 변수가 설정 될 수있는 다른 사용자의 환경에서 실행 중입니다. 1

이를 수행하는 더 좋은 방법은 실제로 UAC를 통해 현재 사용자로 상승하는 것입니다. 불행히도 표준 명령 프롬프트에는 해당 기능이 포함되어 있지 않지만 타사 프로그램과 기본 제공 PowerShell 및 WSHell (VBScript) 모두 가능합니다.


내 다른 대답에서 빌리면 다음 을 사용 하여 PowerShell 명령을 직접 호출 할 수 있습니다 powershell -c.

powershell -c start -verb runas notepad C:\Windows\System32\drivers\etc\hosts

기본적으로 PowerShell에 다음을 실행하도록 지시합니다 (의 start별칭이 지정됨 Start-Process).

Start-Process -Verb "runas" notepad C:\Windows\System32\drivers\etc\hosts

요령은 동사를 전달하여 runasUAC를 트리거하는 것입니다.

어느 쪽 Start-Process -Verb runas도 표준 cmd를 runas현재 작업 디렉토리를 통과하지 않습니다 때문에, 항상 전체 경로를 사용하는 이 방식으로 상승하는 명령에.

또한 같은 일부 인수 -c는 인수와 충돌 할 수 Start-Process있으므로 가장 안전한 방법은 다음과 같습니다.

powershell "-c start -verb runas commandname -argumentlist 'arg1 arg2'"

1 참고 : 이것은 사용자 의 환경 변수 에만 적용됩니다 . 부모 프로세스에서 설정 한 환경 변수 는 UAC에 의해 전달되지 않습니다 ! 이것은 또한에 적용되며 runas올바른 사용자의 변수를 얻지 못하기 때문에 더 악화됩니다.


큰 따옴표로 나에게 도움이되지 않았습니다.
Vince

@Ghodmode 실행하려고 한 라인의 예를 들어 주시겠습니까? 마지막 예를 참조하는 경우 첫 번째 따옴표를로 이동하십시오 -c. ( -c "start대신에 "-c start)
Bob

관리자 권한으로 프로그램을 실행하기 위해 powershell 프로세스를 높게 실행할 필요 는 없습니다 .
jiggunjer

Windows 10 2019-03 업데이트 전에 작동하는 것이 이상합니다.
Qwerty


-1

시도 할 수있는 한 가지는 관리자로 명령 프롬프트를 열고 메모장을 실행하는 것입니다. 그냥 입력하십시오 Notepad. 그런 다음 파일을 클릭 한 다음 호스트 파일을 열고 탐색하여 열 수 있습니다. 마지막으로 평상시처럼 저장할 수 있습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.