3

ローカル PC で実行する Windows サービスがあります。私のオペレーティング システムは Windows 7 です。「コンピューターの管理 > サービス」を経由せずに、C# コードを使用してサービスを開始したいと考えています。

以下のコードを実行すると、次のようになりますException

「サービス {ServiceName} がコンピューター '.' に見つかりませんでした。」

ServiceController service = new ServiceController(serviceName);
try
{
    TimeSpan timeout = TimeSpan.FromMilliseconds(timeoutMilliseconds);

    service.Start();
    service.WaitForStatus(ServiceControllerStatus.Running, timeout);
}
catch
{
    // ...
}

私はこのシナリオに関する多くの記事を読んできましたが、すべてこれがsecurity feature of Windows 7. 管理者グループを介さずにこのサービスを実行する方法はありますか?

4

2 に答える 2

0

おそらく、UAC の問題が発生している可能性があります。アプリを管理者として実行する必要があることを示すマニフェスト ファイルをアプリに追加する必要があります。これにより、プログラムの実行時に Windows が昇格を求めるプロンプトが表示されます。問題/解決策を順を追って説明する記事は次のとおりです。

http://www.codeproject.com/Articles/17968/Making-Your-Application-UAC-Aware

関連するスタックオーバーフローの投稿:

.NET アプリケーションを強制的に管理者として実行するにはどうすればよいですか?

于 2012-09-07T12:08:26.300 に答える