관리자 권한이나 UAC없이 프로그램을 강제로 실행 하시겠습니까? : 실행 파일 자체를

일반적으로 UAC를 통해 관리자 권한이 필요한 프로그램을 강제로 실행하지 않고 강제로 실행할 수있는 방법이 있습니까? (예 : UAC 프롬프트 및 시스템 전체 액세스 없음 )

추가 : 실행 파일 자체를 수정하지 않고.


제임스의 대답에도 불구하고, 나는 거의 할 수있는 몇 가지 방법을 발견했다 .

  1. 실행 파일을 수정하여 trustInfo매니페스트 에서 항목을 제거 하거나 외부 매니페스트를 완전히 사용할 수 있으므로 UAC없이 프로그램을 시작할 수 있습니다. 불행히도 이것은 실행 파일을 수정하므로 내부 체크섬 테스트로 인해 곧 종료됩니다.
  2. Process Explorer를 사용하여 제한된 사용자로 시작할 수 있습니다. 그러나 이것은 내가 원하는 것보다 훨씬 더 많이 제한하는 것 같습니다 (보호 모드 IE처럼 실행되므로 표준 일반 사용자보다 훨씬 적게 액세스 할 수 있음).


답변

Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\*\shell\forcerunasinvoker]
@="Run without privilege elevation"

[HKEY_CLASSES_ROOT\*\shell\forcerunasinvoker\command]
@="cmd /min /C \"set __COMPAT_LAYER=RUNASINVOKER && start \"\" \"%1\"\""

이 텍스트를 저장 <name_of_file>.reg하고 Windows 레지스트리에 추가하십시오. (두 번 클릭하면 트릭이 수행됩니다.)

그런 다음 관리자 권한없이 실행하려는 앱을 마우스 오른쪽 단추로 클릭하고 “권한 상승없이 실행”을 선택하십시오.

경우에 따라 소량의 프로그램 중 0.1 %가 UAC 프롬프트에 대해 두 번 요청할 수 있습니다.


답변

저장 nonadmin.bat:

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

이제 관리자없이 프로그램을 끌어다 놓아 실행할 수 있습니다.

레지스트리 키를 변경하면 관리자 권한이 필요하지 않습니다. 또한 상황에 맞는 메뉴를 어지럽히 지 않습니다.

Vom의 답변을 바탕으로


업데이트 : 이제 공백이있는 프로그램에서도 작동합니다.


답변

나는 파티에 너무 늦지 않기를 희망하지만 비슷한 질문을 찾고 있었고 여기에 대답을 보지 못했지만 RunAs관리자로 실행할 때 Windows의 기본 제공 명령이 /trustlevel스위치로 수행 할 수 있음을 알았습니다 .

RUNAS /trustlevel:<TrustLevel> program

/showtrustlevels  displays the trust levels that can be used
                  as arguments to /trustlevel.
/trustlevel       <Level> should be one of levels enumerated
                  in /showtrustlevels.

이것은 내 경우에 효과가있었습니다. 아이러니하게도 권한 상승없이 명시 적으로 프로그램을 시작 하려면 관리자 권한 명령 프롬프트가 필요합니다 . 그림을 이동. 🙂 도움이 되길 바랍니다.


답변

UAC없이 항상 실행하려는 특정 응용 프로그램이있는 경우 레지스트리를 사용하여 대상을 지정할 수 있습니다 (REG 파일에 텍스트를 추가하고 레지스트리로 가져 오기).

Windows Registry Editor Version 5.00

[HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers]
"C:\\example\\application.exe"="RunAsInvoker"

이 답변과 달리이 솔루션은 대체 클릭이나 사용자 상호 작용 변경이 필요하지 않습니다.

Microsoft는 RunAsInvoker “Compatibility Shim”을 추가하여이 프로세스를 호출합니다 .


답변

오늘 MS 응용 프로그램 사용자 지정 툴킷을 사용하여이 문제를 해결했습니다.

나는 기술 공화국 기사 의 지시 따랐다 .

원래:

1) MS 에서 툴킷을 얻습니다 .

2) 수정 클릭

3) RunAsInvoker 옵션을 선택하십시오

4) 수정 사항을 마우스 오른쪽 단추로 클릭하고 설치를 선택하십시오.


답변

exe관리 권한이 필요한 설정 (설치) 파일 인 경우 높은 액세스 권한없이 파일을 실행하는 트릭이 있습니다.

파일 이름에 windows setup또는 installwindows 와 같은 단어가 포함되어 있으면 높은 액세스가 필요하지 않더라도 높은 액세스로 파일을 강제 실행합니다.

.exe 파일에 매니페스트가있는 경우 이러한 고도에 대한 추론이 적용되지 않습니다.

이것은 UAC (User Account Control) 문서에 설명되어 있습니다.

설치 관리자 감지는 설치 파일을 감지하여 사용자 모르게 설치가 실행되는 것을 방지합니다.

설치 프로그램 감지는 다음에 만 적용됩니다.

  • 32 비트 실행 파일

  • 요청 된 실행 수준 속성이없는 응용 프로그램

  • UAC가 활성화 된 표준 사용자로 실행되는 대화식 프로세스.

32 비트 프로세스가 작성되기 전에 다음 속성을 점검하여 설치 프로그램인지 판별하십시오.

  • 파일 이름에는 “install”, “setup”또는 “update”와 같은 키워드가 포함됩니다.

여기에서 읽기 모드 : https://docs.microsoft.com/en-us/windows/security/identity-protection/user-account-control/how-user-account-control-works


답변

Andrew는 자신의 질문에 다음과 같은 내용이 효과가 없다고 말했습니다.

실행 파일을 수정하면 매니페스트 (또는 매니페스트 전체를 사용하여 외부 항목을 사용할 수 있음)에서 trustInfo 항목을 제거하여 UAC없이 프로그램을 시작할 수 있습니다. 불행히도 이것은 실행 파일을 수정하므로 내부 체크섬 테스트로 인해 곧 종료됩니다.

사용중인 소프트웨어의 외부 .manifest 파일을 수정하고 변경할 수있었습니다

<ms_asmv2:requestedExecutionLevel level="requireAdministrator" uiAccess="false" />

<ms_asmv2:requestedExecutionLevel level="asInvoker" uiAccess="false" />

내가 사용하고있는 소프트웨어에는 실제로 관리자 권한이 필요하지 않았으므로 UAC 또는 관리자 암호없이 표준 사용자 계정에서 실행할 수있었습니다. 감사!