2013-08-03 4 views
-1

사용자가 응용 프로그램 내에서 작업 관리자를 비활성화 할 수있는 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 , &regHandle ,NULL); 
RegSetValueEx(regHandle,"DisableTaskmgr",0, REG_DWORD,data ,sizeof(DWORD)); 

그것은 관리자 계정에서 잘 작동했다. 그러나 제한된 사용자 계정과 게스트 계정에서는 작동하지 않습니다. UAC 수준을 관리자 권한/최고가 능으로 변경하려고했습니다. 둘 다 작동하지 않았다. 나는 또한 reg 값을 HKEY_LOCAL_MACHINE에 기록함으로써이 작업을 수행 할 수 있는지 확인했습니다. 슬프게도 너무 실패했습니다.

저는 인터넷 검색을 통해 stackoverflow를 검색했지만 해결책을 찾지 못했습니다. 수동으로 그룹 정책/레지스트리를 편집하는 것은 전혀 해결책이 아니며 필요에 따라 내 애플리케이션 내부에서 수행해야합니다. 귀하의 도움에 미리 감사드립니다.

enter image description here

그러나 그룹 정책은 아직 효과가 촬영되지 않았습니다

+0

권한이 없어도 등록을 편집 할 수 있다는 것은 상당한 보안 결함이 될 것이라고 생각하지 않습니까? 다른 말로하면, "Windows에서 보안을 우회하는 방법"을 묻는 것입니다. –

+0

TaskMan 실행 파일의 DACL에 해당 사용자 계정에 대한 "거부 실행"(또는 "모두 거부") 레코드를 추가합니다. –

+0

@MatsPetersson, 나는 그것이 보안 결함이라고 생각하지 않습니다. 일반적으로 taskmanager를 비활성화해야하는 응용 프로그램은 거의 없습니다. 제한된 계정의 관리자 권한으로 응용 프로그램이 실행되고있는 경우에는이 작업을 수행하지 않는 것이 좋습니다. Windows에 UAC가있는 이유는 무엇입니까? – Jasir

답변

2

나는 당신이 레지스트리를 통해 그룹 정책 옵션을 수정하는 때문입니다 가정합니다.

Microsoft says you have to reboot.은 아마 사항을 적용하려면 그룹에 해당하는 그룹 정책 업데이트를

에서 gpupdate/force를

강요.

이것은 설치 프로그램에서 수행하는 일종의 작업으로, 설치가 완료되기 전에 컴퓨터를 다시 시작해야한다는 것을 상기시켜줍니다. 또는 HKCurrentUser이기 때문에 로그 오프 및 로그인이 작동합니다.