Frage

Ich versuche, einen Dienst als Benutzer zu starten und die Dinge funktionieren, bis ich einen Benutzer versuchen, die kein Passwort haben. Dann schlägt fehl, es zu starten (wegen Fehler-on log).

Mache ich etwas falsch oder ist das "by design"?

Der Code, diesen Dienst zu registrieren:

    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);
War es hilfreich?

Lösung

Es kann zu einer OS-Sicherheitsanforderung oder Sicherheitspolitik zurückzuführen sein. Überprüfen Sie die Sicherheitsrichtlinien, um zu sehen, ob etwas relevant ist.

Andere Tipps

Ja, es war in der Tat auf die Sicherheitspolitik. Um dies näher auszuführen:

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

"Wenn Sie die Einschränkung gegen die Anmeldung an das Netzwerk ohne Passwort deaktivieren möchten, können Sie dies durch lokale Sicherheitspolitik tun. Die Richtlinieneinstellung, die leeren Kennwort Einschränkung steuert geändert werden kann, die Lokale Sicherheitsrichtlinie oder Gruppenrichtlinien-MMC .. Snap-in Sie können entweder Werkzeug, um diese politische Option auf Sicherheitseinstellungen \ lokale Richtlinien finden \ Sicherheitsoptionen der Name der Politik sind Konten: Beschränken Nutzung lokaler Kontos von leeren Passwörtern Konsolenanmeldung . Es ist standardmäßig aktiviert. "

Danach deaktivieren, es funktioniert gut.

Sie müssen eine leere Zeichenfolge angeben, nicht NULL, wenn kein Passwort. NULL ist kein gültiger leerer String „“ ist. Wahrscheinlich sollten Sie nur strPassword für die letzten Parameter übergeben.

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);

Danke - ich eigentlich, dass zuerst versucht haben, aber ohne Erfolg

.

Wenn ich services.msc starten, gehen Hand in Service-Eigenschaften und deaktivieren Sie die 2 Passwortfelder, und drücken Sie auf „Übernehmen“ und versuchen, es zu starten, es scheitert auch.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top