문제

사용자로서 서비스를 시작하려고 하는데 암호가 없는 사용자를 시도하기 전까지는 모든 것이 잘 작동합니다.그런 다음 (로그온 오류로 인해) 시작되지 않습니다.

내가 뭔가 잘못하고 있는 걸까요, 아니면 "설계상"인 걸까요?

이 서비스를 등록하는 코드:

    SC_HANDLE schService = CreateService( 
        schSCManager,           
        strNameNoSpaces,      
        strServiceName,           
        SERVICE_ALL_ACCESS,       
        SERVICE_WIN32_OWN_PROCESS, 
        SERVICE_AUTO_START,    
        SERVICE_ERROR_NORMAL,      
        szPath,                  
        NULL,                     
        NULL,                  
        NULL,                    
        strUser,
        (strPassword.IsEmpty())?NULL:strPassword);
도움이 되었습니까?

해결책

OS 보안 요구 사항 또는 보안 정책 때문일 수 있습니다. 보안 정책을 확인하여 관련이 있는지 확인하십시오.

다른 팁

네, 보안정책과 관련된 내용이었습니다.자세히 설명하자면:

http://technet.microsoft.com/en-us/library/bb457114.aspx

"비밀번호 없이 네트워크에 로그인하는 것에 대한 제한을 비활성화하려면 로컬 보안 정책을 통해 비활성화할 수 있습니다.빈 암호 제한을 제어하는 ​​정책 설정은 로컬 보안 정책 또는 그룹 정책 MMC 스냅인을 사용하여 수정할 수 있습니다.두 도구 중 하나를 사용하여 다음에서 이 정책 옵션을 찾을 수 있습니다. 보안 설정\로컬 정책\보안 옵션.정책 이름은 계정입니다. 로컬 계정에서 빈 암호를 콘솔 로그온에만 사용하도록 제한.기본적으로 활성화되어 있습니다."

그것을 비활성화하면 모든 것이 잘 작동합니다.

비밀번호가없는 경우 NULL이 아닌 빈 문자열을 지정해야합니다. NULL은 유효한 빈 문자열이 아닙니다. ""IS. 아마도 당신은 그냥지나 가야합니다 strPassword 마지막 매개 변수의 경우.

SC_HANDLE schService = CreateService( 
            schSCManager,           
            strNameNoSpaces,      
            strServiceName,           
            SERVICE_ALL_ACCESS,       
            SERVICE_WIN32_OWN_PROCESS, 
            SERVICE_AUTO_START,    
            SERVICE_ERROR_NORMAL,      
            szPath,                  
            NULL,                     
            NULL,                  
            NULL,                    
            strUser,

// change this line to:
            strPassword.IsEmpty() ? L"" : strPassword);
// or maybe
            strPassword);

감사합니다 - 나는 실제로 그것을 먼저 시도했지만 아무 소용이 없습니다.

Services.msc를 시작하면 수동으로 서비스 속성으로 이동하여 2 개의 비밀번호 필드를 지우고 "적용"을 누르고 시작하려고 시도하면 실패합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top