web-dev-qa-db-ja.com

コンピューター '。'でウィンドウサービスを開けませんウィンドウアプリケーションで

1つのウィンドウアプリケーションを開発し、1つのサービスも作成しています。ウィンドウアプリケーションでコーディングを使用してサービスを開始しましたが、コンピューターでウィンドウサービスを開けないなどのエラーが発生します'.'

以下のコードを使用しました。

ServiceController controller = new ServiceController("SeoMozScheduleService");

if (controller.Status == ServiceControllerStatus.Stopped)
{
    controller.Start();
}

アプリケーションを右クリックして、管理者として実行をクリックすると、正常に機能します...

15
Kartik Patel

C:// Program Files/ApplicationFolder/.exeに移動します。

10
Kartik Patel

アプリケーションを開くたびにこれを自動化するには、ソリューションに マニフェストファイルを追加 する必要があります。次に、ファイル内のrequestedExecutionLevelノードを次のように更新します。

    <requestedExecutionLevel level="requireAdministrator" uiAccess="false" />
</requestedPrivileges>

ただし、UACが有効になっている場合、この設定を変更すると、システムを毎回管理者としてアプリケーションを実行するように求められます。

17
Ahmed Elbatt

visual Studioを使用している場合は、それを閉じ、管理者として実行してVisual Studioを再度開きます。

3

これらの解決策はどれも役に立ちませんでした。なぜなら、最初に対象のコンピューターで管理者アクセス権があることを実際に確認した場合、それは役に立ったからです!私はドメイン管理者アカウントを使用して、メインアカウントへの管理者アクセス権を奪って戻しました。ドメイン管理者アカウントで、リモートコンピューターでサービスが実行されているかどうかを確認するいくつかのServiceControllerコードを実行したところ、問題はありませんでした。メインアカウントとして実行した場合、Visual Studioを管理者として実行していても機能しませんでした。ローカル管理者グループのメインアカウントなしでテストしていたことがわかりました...

2
vapcguy

私はサーバーでスケジュールされたタスクでこれに遭遇しました-「最高の特権で実行」をチェックしてそれを解決しました。 (もちろん、これを機能させるには、サービスアカウントに管理者権限が必要です。)

1
Jeff

アプリケーションは、require管理者権限を必要としない可能性があります。 Microsoft管理コンソール(MMC)(サービススナップインを含む)にはありません。 MMCのマニフェストには、

<requestedExecutionLevel
    level="highestAvailable"
    uiAccess="false"
/>

level="requireAdministrator"

プロジェクトにマニフェストを追加する方法については、 c#-マニフェストファイルを作成/編集するにはどうすればよいですか?-スタックオーバーフロー を参照してください。

最小特権の原則については、次のような非常に多くの記事があります。

0
user34660

App.confのフレームワークバージョンをシステムにインストールされているバージョンに変更すると、問題が解決しました。

0
Abhishek Dhote