2

나는 다음과 같은 코드를 사용하여 원격 컴퓨터에서 서비스를 제어하려고 시도하고있다 : 우리 지역의 도메인 내 컴퓨터에서 실행하고에 기계를 표적으로 할 때 잘 작동원격 OpenSCManager 실패

// Error checking omitted for brevity 
HANDLE hToken = NULL; 
// user = username with no domain specification 
// domain = targetmachine when targetting computer outside of domain 
LogonUser(user, domain, password, 
    LOGON32_LOGON_NEW_CREDENTIALS, LOGON32_PROVIDER_WINNT50, &hToken); 

ImpersonateLoggedOnUser(hToken); 

SC_HANDLE hSc = OpenSCManager(targetmachine, 
        SERVICES_ACTIVE_DATABASE, SC_MANAGER_ALL_ACCESS); 

을 현재 로그온 한 사용자의 자격 증명을 사용할 때뿐만 아니라 다른 자격 증명을 사용할 때도 모두 동일한 도메인입니다.

그러나 도메인에없는 컴퓨터를 대상으로 할 경우 SC_MANAGER_CONNECT을 원하는 액세스로 지정하면 호출이 거부되어 호출이 실패합니다. 도메인 외부에있는 컴퓨터에서 도메인 컴퓨터를 대상으로 작동합니다 (대상 컴퓨터의 로컬 관리자 인 도메인 사용자에 대해 사용자/도메인/암호 조합 사용). 도메인 외부의 컴퓨터에서 도메인 외부의 컴퓨터를 대상으로 지정하면 작동하지 않습니다.

사용자/암호는 대상 컴퓨터의 관리자 그룹 구성원을위한 것이므로 계정 권한에 문제가 없어야합니다.

sc -sdshow scmanager을 사용하여 scmanager 보안 설명자를 검사했으며 도메인 컴퓨터와 비 도메인 컴퓨터에서 동일합니다. 둘 다 Windows 7 64 비트를 실행 중입니다.

동일한 증상이있는 psexec도 테스트했습니다. 즉, 도메인 컴퓨터 간에는 잘 작동하지만 도메인이 아닌 컴퓨터는 타겟팅하지 않을 수 있습니다.

described as a possible cause for access denied errors이기 때문에 대상 컴퓨터에서 RPC over RPC를 사용하지 않도록 설정하고 다시 부팅했지만이 방법은 도움이되지 않습니다. 또한 대상 컴퓨터에서 Windows 방화벽을 사용하지 않도록 테스트했지만 변경은하지 않았습니다.

서비스의 원격 구성을 사용하려면 몇 가지 설정을 활성화해야합니까?

+0

serverfault.com에서 더 나은 응답을 얻으실 수 있습니다. –

+0

@HansPassant : 아마도 맞을 것 같습니다. 나는 내가 코드에서 잘못한 것을하기를 바랬다. 이것은 누군가에 의해 발견 될 가능성이 더 크다. – villintehaspam

답변

6

이것은 Windows Vista 이상의 새로운 보안 기능으로 인해 발생한 것으로 보입니다. 기본적으로 Windows는 도메인 내에서 완료되지 않는 한 원격으로 사용자에게 전체 관리자 권한을 부여하지 않습니다. 따라서이 작업을 수행하려면 User Account Control Remote Restrictions을 해제해야하지만 물론 컴퓨터의 보안도 저하됩니다.

similar issues posted on serverfault.com을 확인하도록 권장 한스 패스언트에게 감사드립니다.

+0

+1 힌트를 보내 주셔서 감사합니다! – fmuecke

+0

키워드 :'SC 관리자 열기 실패 : 5 메시지 : 액세스가 거부되었습니다. ' –