Computer >> 컴퓨터 >  >> 체계 >> Windows Server

관리자 권한 없이 프로그램을 실행하고 UAC 프롬프트를 우회하는 방법은 무엇입니까?

많은 프로그램이 시작되면 권한 상승(앱 아이콘의 방패)이 필요하지만 실제로는 정상적인 작동을 위해 관리자 권한이 필요하지 않습니다. 예를 들어 ProgramFiles의 앱 폴더에 대한 권한을 사용자에게 수동으로 부여할 수 있습니다. 및/또는 프로그램에서 사용하는 레지스트리 키. 따라서 관리자가 아닌 사용자 계정으로 이러한 프로그램을 시작하면 UAC 프롬프트가 나타나고 사용자는 관리자 암호를 입력해야 합니다(컴퓨터에서 사용자 계정 컨트롤이 활성화된 경우). 이 메커니즘을 우회하기 위해 많은 사용자는 단순히 UAC를 비활성화하거나 로컬 그룹 "Administrators"에 사용자 계정을 추가하여 사용자에게 관리자 권한을 부여합니다. 물론 두 가지 방법 모두 안전한 것은 아닙니다.

일부 Windows 앱이 표준 사용자로 실행되지 않고 관리자 권한이 필요한 이유는 무엇입니까?

앱은 C:\Program Files (x86)\SomeApp의 자체 폴더에 있는 일부 파일(로그, 구성 등)을 수정하기 위해 관리자 권한이 필요할 수 있습니다. 기본적으로 사용자는 이 디렉터리에 대한 편집(쓰기 및 수정) 권한이 없습니다. 이 프로그램이 정상적으로 작동하기 위해서는 관리자 권한이 필요합니다. 이 문제를 해결하려면 수동으로 수정 권한을 부여해야 합니다. 및/또는 쓰기 NTFS 파일 시스템 수준에서 앱 폴더에 대한 사용자(또는 기본 제공 사용자 그룹)에 대한 권한입니다.

<강한> 관리자 권한 없이 프로그램을 실행하고 UAC 프롬프트를 우회하는 방법은 무엇입니까?

참고 . 실제로 변경되는 응용 프로그램 데이터를 C:\Program Files 아래의 자체 폴더에 저장하는 것은 권장되지 않습니다. 사용자 프로필에 앱 데이터를 저장하는 것이 좋습니다. 그러나 그것은 앱 개발자의 게으름과 무능의 문제입니다.

일반 사용자로 관리자 권한이 필요한 프로그램을 실행하는 방법은 무엇입니까?

앞에서 RunAsInvoker를 사용하여 특정 앱에 대한 UAC 프롬프트를 비활성화하는 방법을 설명했습니다. 매개변수. 그러나 이 방법은 유연하지 않습니다.

/SAVECRED를 사용하여 저장된 관리자 암호(Windows 자격 증명 관리자에서)로 RunAs를 사용할 수도 있습니다. 옵션. 또한 사용자가 저장된 관리자 자격 증명 암호를 사용하여 이 컴퓨터에서 모든 프로그램을 실행할 수 있기 때문에 안전하지 않습니다.

관리자 권한 없이(관리자 암호를 입력하지 않고) UAC가 활성화된 상태에서(UAC 슬라이더의 레벨 4, 3 또는 2) 프로그램을 강제로 실행하는 더 쉬운 방법을 고려해 보겠습니다.

레지스트리 편집기를 예로 들어 보겠습니다. regedit.exe (C:\Windows\ 폴더에 있습니다). 앱 아이콘 옆에 있는 UAC 실드를 확인하십시오. 이 아이콘은 이 프로그램을 실행하기 위해 UAC를 통한 권한 상승이 요청됨을 의미합니다.

관리자 권한 없이 프로그램을 실행하고 UAC 프롬프트를 우회하는 방법은 무엇입니까?

regedit.exe를 실행하면 , 관리자 자격 증명을 묻는 사용자 계정 컨트롤 창이 표시됩니다(Do you want to allow this app to make changes to your device? ). 비밀번호를 입력하지 않고 권한 상승을 확인하지 않으면 앱이 실행되지 않습니다.

관리자 권한 없이 프로그램을 실행하고 UAC 프롬프트를 우회하는 방법은 무엇입니까?

이 프로그램에 대한 UAC 요청을 우회해 보겠습니다. 텍스트 파일 run-as-non-admin.bat 만들기 바탕 화면에 다음 코드 포함:

cmd /min /C "set __COMPAT_LAYER=RUNASINVOKER && start "" %1"

관리자 권한 없이 regedit.exe를 강제 실행하고 UAC 프롬프트를 표시하지 않으려면 시작하려는 EXE 파일을 바탕 화면의 이 BAT 파일로 끌어다 놓기만 하면 됩니다.

관리자 권한 없이 프로그램을 실행하고 UAC 프롬프트를 우회하는 방법은 무엇입니까?

그런 다음 UAC 프롬프트와 관리자 암호를 입력하지 않고 레지스트리 편집기를 시작해야 합니다. 작업 관리자를 열고 높음 열에 상승된 상태가 없는 regedit.exe 프로세스가 있음을 알 수 있습니다(관리자가 아닌 사용자 권한으로 실행).

관리자 권한 없이 프로그램을 실행하고 UAC 프롬프트를 우회하는 방법은 무엇입니까?

HKEY_LOCAL_MACHINE 레지스트리 하이브에서 매개변수를 편집해 보십시오. 보시다시피 사용자는 이 레지스트리 키의 항목을 편집할 수 없습니다(사용자는 시스템 레지스트리 키에 대한 쓰기 권한이 없습니다). 그러나 사용자 하이브(HKEY_CURRENT_USER)에서 레지스트리 키와 매개변수를 추가하거나 편집할 수 있습니다.

관리자 권한 없이 프로그램을 실행하고 UAC 프롬프트를 우회하는 방법은 무엇입니까?

같은 방식으로 BAT 파일을 사용하여 모든 앱을 실행할 수 있습니다. 실행 파일의 경로를 지정하기만 하면 됩니다.

app-as-non-admin.bat 실행
Set ApplicationPath="C:\Program Files\SomeApp\testapp.exe"
cmd /min /C "set __COMPAT_LAYER=RUNASINVOKER && start "" %ApplicationPath%"

권한 상승 없이 모든 앱을 실행할 수 있는 컨텍스트 메뉴를 추가할 수도 있습니다. 이를 수행하려면 RunAsUser.REG 파일을 만들고 여기에 다음 코드를 복사한 다음 저장하고 reg 파일을 두 번 클릭하여 Windows 레지스트리로 가져옵니다(이 변경 사항을 적용하려면 관리자 권한이 필요합니다).

Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT\*\shell\forcerunasinvoker]
@="Run as user without UAC privilege elevation"
[HKEY_CLASSES_ROOT\*\shell\forcerunasinvoker\command]
@="cmd /min /C \"set __COMPAT_LAYER=RUNASINVOKER && start \"\" \"%1\"\""

관리자 권한 없이 프로그램을 실행하고 UAC 프롬프트를 우회하는 방법은 무엇입니까?

그런 다음 관리자 권한 없이 애플리케이션을 실행하려면 "UAC 권한 상승 없이 사용자로 실행을 선택합니다. " 파일 탐색기의 컨텍스트 메뉴에서.

GPO를 사용하여 레지스트리 매개변수를 가져와 도메인의 모든 컴퓨터에 이 옵션을 배포할 수 있습니다.

관리자 권한 없이 프로그램을 실행하고 UAC 프롬프트를 우회하는 방법은 무엇입니까?

RUNASINVOKER 모드에서 프로그램을 사용하면 프로그램을 올릴 수 없음을 다시 한 번 상기시켜 드립니다. RunAsInvoker는 UAC 프롬프트를 표시하지 않고 프로그램이 현재 사용자의 권한으로 실행되어야 하며 권한 상승을 요청하지 않아야 한다고 알려줍니다. 프로그램이 시스템 설정이나 파일을 편집하기 위해 실제로 높은 권한이 필요한 경우 작동하지 않거나 관리자 권한을 다시 요청합니다.

__COMPAT_LAYER에서 RunAsInvoker로 UAC를 우회하는 방법

환경 변수 __COMPAT_LAYER를 사용하면 애플리케이션에 대해 서로 다른 호환성 수준을 설정할 수 있습니다(호환성 EXE 파일 속성의 탭). 이 변수를 사용하여 프로그램을 시작할 때 사용할 호환성 설정을 지정할 수 있습니다. 예를 들어 Windows 8 호환 모드 및 640×480 해상도에서 앱을 시작하려면 다음을 설정하십시오.

set __COMPAT_LAYER=Win8RTM 640x480

관리자 권한 없이 프로그램을 실행하고 UAC 프롬프트를 우회하는 방법은 무엇입니까?

__COMPAT_LAYER 변수에는 관심 있는 몇 가지 옵션이 있습니다. 다음 매개변수가 있습니다.

  • RunAsInvoker – UAC 프롬프트 없이 상위 프로세스 권한으로 앱 실행
  • RunAsHighest – 사용자가 사용할 수 있는 최고 수준의 권한으로 프로그램을 실행합니다(사용자에게 관리자 권한이 있는 경우 UAC 프롬프트가 나타남).
  • RunAsAdmin – 앱을 관리자로 실행합니다(UAC 프롬프트가 매번 나타남).
이는 RunAsInvoker 매개변수가 관리자 권한을 제공하지 않고 UAC 프롬프트만 표시한다는 것을 의미합니다.

다음 CMD 코드는 현재 프로세스에 대해 RunAsInvoker 모드를 활성화하고 권한 상승 없이 지정된 프로그램을 실행합니다.

set __COMPAT_LAYER=RUNASINVOKER
start "" "C:\Program Files\MyApp\testapp.exe"

EXE 파일 매니페스트에서 RunAsInvoker 모드 활성화

위에서 말했듯이 Windows 10은 실행 권한 상승이 필요한 프로그램에 대해 UAC 실드 아이콘을 표시합니다. 개발자는 프로그램 매니페스트 에서 애플리케이션을 컴파일할 때 이 요구사항을 설정합니다. .

모든 exe ​​파일의 매니페스트를 편집하고 프로그램을 관리자 모드로 실행하기 위한 요구 사항을 비활성화할 수 있습니다.

프로그램 매니페스트를 편집하려면 무료 리소스 해커를 사용할 수 있습니다. 도구. Resource Hacker에서 앱의 실행 파일을 엽니다.

이 예에서는 Autologon.exe의 매니페스트를 편집합니다. 암호 없이 Windows에 자동으로 로그인하는 데 사용할 수 있는 Sysinternals의 도구입니다.

왼쪽 트리에서 매니페스트 섹션으로 이동하여 프로그램 매니페스트를 엽니다. 다음 xml 섹션에 주의하십시오.

<requestedPrivileges>
<requestedExecutionLevel level="requireAdministrator" uiAccess="false"/>
</requestedPrivileges>

requireAdministrator 덕분입니다. Windows가 항상 이 프로그램을 관리자로 실행하려고 하는 옵션입니다.

requireAdministrator를 asInvoker로 변경 exe 파일에 변경 사항을 저장합니다.

관리자 권한 없이 프로그램을 실행하고 UAC 프롬프트를 우회하는 방법은 무엇입니까?

이제 UAC 실드가 프로그램 아이콘에서 사라졌으며 현재 사용자 권한으로 관리자 비밀번호를 묻지 않고 실행할 수 있습니다.

관리자 권한 없이 프로그램을 실행하고 UAC 프롬프트를 우회하는 방법은 무엇입니까?

실행 가능한 앱 파일이 MS Authenticode(코드 서명 인증서)로 서명된 경우 exe 파일을 수정한 후 작동이 중지되거나 경고가 표시될 수 있습니다.

이 경우 프로그램이 외부 매니페스트 파일을 사용하도록 강제할 수 있습니다. 일반 텍스트 파일 appname.exe.manifest 만들기 (예:Autologon.exe.manifest ) exe 파일이 있는 디렉터리에 리소스 해커의 매니페스트 코드를 복사합니다. requireAdministrator를 asInvoker로 변경 . 매니페스트 파일을 저장합니다.

Windows가 exe 파일을 시작할 때 항상 외부 매니페스트 파일을 사용하도록 하려면 특수 레지스트리 매개변수를 활성화하십시오.

REG ADD "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\SideBySide" /v PreferExternalManifest /t REG_DWORD /d 1 /f

Windows를 다시 시작하고 프로그램이 관리자 권한 없이 실행하라는 외부 매니페스트 파일을 사용하고 있는지 확인합니다.