2

ユーザーとしてサービスを開始しようとしていますが、パスワードを持たないユーザーを試すまでは問題なく動作します。その後、起動に失敗します(ログオンエラーのため)。

私は何か間違ったことをしているのですか、それともこれは「設計による」ものですか?

このサービスを登録するためのコード:

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

4 に答える 4

2

はい、確かにセキュリティ ポリシーに関連していました。詳しく説明するには:

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

「パスワードなしでネットワークにログオンすることに対する制限を無効にする場合は、ローカル セキュリティ ポリシーを使用して行うことができます。空のパスワード制限を制御するポリシー設定は、ローカル セキュリティ ポリシーまたはグループ ポリシー MMC スナップインを使用して変更できます。 。いずれかのツールを使用して、セキュリティ設定\ローカル ポリシー\セキュリティ オプションでこのポリシー オプションを見つけることができます。ポリシーの名前は、アカウント:ローカル アカウントでの空のパスワードの使用をコンソール ログオンのみに制限します。既定で有効になっています。

それを無効にすると、すべて正常に動作します。

于 2008-09-25T01:12:34.457 に答える
2

OS のセキュリティ要件またはセキュリティ ポリシーが原因である可能性があります。セキュリティ ポリシーをチェックして、関連するものがあるかどうかを確認します。

于 2008-09-25T00:43:42.513 に答える
0

パスワードがない場合は、NULLではなく空の文字列を指定する必要があります。NULLは有効な空の文字列ではなく、""は有効です。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);
于 2008-09-24T23:42:47.293 に答える
0

ありがとう - 私は実際に最初にそれを試しましたが、役に立ちませんでした.

services.msc を起動し、手動でサービス プロパティに移動して 2 つのパスワード フィールドをクリアし、[適用] を押して起動しようとすると、失敗します。

于 2008-09-24T23:53:31.340 に答える