비밀번호 없이 사용자로 서비스 시작하기
-
02-07-2019 - |
문제
사용자로서 서비스를 시작하려고 하는데 암호가 없는 사용자를 시도하기 전까지는 모든 것이 잘 작동합니다.그런 다음 (로그온 오류로 인해) 시작되지 않습니다.
내가 뭔가 잘못하고 있는 걸까요, 아니면 "설계상"인 걸까요?
이 서비스를 등록하는 코드:
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 개의 비밀번호 필드를 지우고 "적용"을 누르고 시작하려고 시도하면 실패합니다.