1

.NET2.0のinstallutil /iコマンドによってインストールされているWindowsサービスを構築しています。次のアカウントと同様に、パスワードを使用してサービスをインストールします。

NT AUTHORITY\LocalService

でサービスを実行するとnet start <serviceName>

Error 5: Access Denied

それを削除するには、私は開いてservices.mscプロパティからサービスを提供する必要がありました

Logon As -> Local System Account
         -> Allow Service to interact with desktop.

この「クリックの多い」ビジネス全体を、ネイティブの.NET C#コードまたはWMIまたはその他のバッチスクリプトのいずれかのコードに組み込むことはできますか?とにかくバッチスクリプトを使用するので、どちらでも構いません。

4

1 に答える 1

4

答えを見つけました。私が完全に信用している次のWebページに感謝します。

リンクテキスト

これが私が持っている解決策です。必要に応じてサービス名を変更するだけです。C#コンソールアプリにスローして実行します:)

static void Main(string[] args)
{
    string serviceName = "SERVICE_NAME_HERE"; 
    string objPath = string.Format("Win32_Service.Name='{0}'", serviceName);
    using (ManagementObject service = new ManagementObject(new ManagementPath(objPath)))
    {
        object[] wmiParams = new object[11];
        wmiParams[6] = "LocalSystem";
        wmiParams[7] = "";
        service.InvokeMethod("Change", wmiParams);
    }
}

}

于 2009-02-12T18:24:05.907 に答える