사용자가 응용 프로그램 내에서 작업 관리자를 비활성화 할 수있는 C++의 응용 프로그램을 개발 중입니다. 다음은 내가 비주얼 C++에서했던 방법은 다음과 같습니다제한된/게스트 계정에서 작업 관리자 사용 안 함
HKEY regHandle;
DWORD dwValue = 1;
BYTE* data = (BYTE*)&dwValue;
RegCreateKeyEx(HKEY_CURRENT_USER,"Software\\Microsoft\\Windows\\CurrentVersion\\Policies\\System", 0, NULL, NULL, KEY_WRITE | KEY_WOW64_32KEY,NULL , ®Handle ,NULL);
RegSetValueEx(regHandle,"DisableTaskmgr",0, REG_DWORD,data ,sizeof(DWORD));
그것은 관리자 계정에서 잘 작동했다. 그러나 제한된 사용자 계정과 게스트 계정에서는 작동하지 않습니다. UAC 수준을 관리자 권한/최고가 능으로 변경하려고했습니다. 둘 다 작동하지 않았다. 나는 또한 reg 값을 HKEY_LOCAL_MACHINE
에 기록함으로써이 작업을 수행 할 수 있는지 확인했습니다. 슬프게도 너무 실패했습니다.
저는 인터넷 검색을 통해 stackoverflow를 검색했지만 해결책을 찾지 못했습니다. 수동으로 그룹 정책/레지스트리를 편집하는 것은 전혀 해결책이 아니며 필요에 따라 내 애플리케이션 내부에서 수행해야합니다. 귀하의 도움에 미리 감사드립니다.
그러나 그룹 정책은 아직 효과가 촬영되지 않았습니다
권한이 없어도 등록을 편집 할 수 있다는 것은 상당한 보안 결함이 될 것이라고 생각하지 않습니까? 다른 말로하면, "Windows에서 보안을 우회하는 방법"을 묻는 것입니다. –
TaskMan 실행 파일의 DACL에 해당 사용자 계정에 대한 "거부 실행"(또는 "모두 거부") 레코드를 추가합니다. –
@MatsPetersson, 나는 그것이 보안 결함이라고 생각하지 않습니다. 일반적으로 taskmanager를 비활성화해야하는 응용 프로그램은 거의 없습니다. 제한된 계정의 관리자 권한으로 응용 프로그램이 실행되고있는 경우에는이 작업을 수행하지 않는 것이 좋습니다. Windows에 UAC가있는 이유는 무엇입니까? – Jasir