2012-02-21 3 views
2

내 시나리오는 다음과 같습니다. 내 응용 프로그램은 관리자 만 Windows에 로그인 할 수 있어야하는 유지 관리 작업을 수행합니다.관리자가 아닌 사용자가 특정 기간 동안 Windows에 로그인하지 못하도록합니다.

유지 관리가 완료되면 모든 사용자가 로그인 할 수 있습니다.

이 문제를 해결하는 좋은 방법은 무엇입니까? 모든 포인터는 감사하겠습니다.

편집 : OS가 윈도우 7

덕분에, 프라 딥

+1

lookup GINA DLL, 출발점이 될 수 있습니다. – Dampsquid

+0

이것은 Active Directory에서 수행 할 수있는 일처럼 들립니다. –

+0

아직 계획이없는 것 같습니다. 그 질문은 SF에 더 좋을 것입니다. 관리자가 아닌 사용자를 잠그는 계획을 세우면 코딩 문제가 발생하면 여기에서 질문 할 수 있습니다. –

답변

1

열거 NetUserEnum 모든 사용자는하고있는 그 사람들을 위해 관리자가 아닌하여 USER_INFO_1 구조체와 UF_ACCOUNTDISABLE와 NetUserSetInfo을 사용하여 자신의 계정을 비활성화 깃발. 사용 중지 한 사용자의 목록을 보관하여 작업이 완료되면 계정을 다시 사용하도록 설정할 수 있습니다. http://msdn.microsoft.com/en-us/library/windows/desktop/aa370960%28v=vs.85%29.aspx

+0

"프로세스 반전"이란 "관리자가 아닌 모든 사용자를 열거하고 활성화 하시겠습니까?"라는 뜻입니까? 그것은 끔찍한 생각처럼 들립니다. –

+0

물론 아닙니다. 사용 중지 한 사용자 목록을 유지하고 사용하십시오. 그러나 명확히하기 위해 답을 편집 할 것입니다. –

+0

도메인에서 작동하지 않습니다. –

1

한 가지 해결책은 관리자가 정상적으로 로그인 할 수 있어야하는 사용자 목록을 포함하는 로컬 그룹을 만들고이 그룹과 Administrators 그룹에만 "로컬로 로그인"권한을 할당하도록하는 것입니다 .

그런 다음 LsaRemoveAccountRightsLsaAddAccountRights을 사용하여 "로컬로 로그인"권한을 로컬 그룹으로 토글 할 수 있습니다.

관리자의 지식과 동의없이 사용자 권한을 망쳐 사람들을 화나게하고 예상치 못한 부작용이 발생할 수 있으므로 관리자에게 초기 변경을 요청하십시오.

관련 문제