質問

リモートコンピューターにインストールされているWindowsサービスを制御しようとしています。私は使用しています ServiceController クラス。

私はこれを持っています:

ServiceController svc =  new ServiceController("MyWindowsService", "COMPUTER_NAME");

これにより、このようなWindowsサービスのステータスを取得できます。

string status = svc.Status.ToString();

しかし、私はWindowsサービスを制御することはできません(することによって svc.Start(); また svc.Stop();)。次の例外が得られます。

コンピューターでservicexxxサービスを開くことはできません 'computer_name'

それは正常です、私はアクセス許可と関係があると思います。しかし、どうですか? Googleを調べましたが、探しているものが見つかりませんでした。しかし、私はしばしばなりすましに関連するものを読みましたが、それが何を意味するのかわかりません。

NB:ローカルコンピューターとリモートコンピューターはどちらもWin XP Proを実行しています。

役に立ちましたか?

解決

問題が解決しました。

なりすましは、特定のログオン/パスワードを使用してコードを実行することで構成されています。この非常に便利なプロジェクトを見つけました: http://www.codeproject.com/kb/cs/svcmgr.aspx?display=print それは私をとても助けてくれました!

他のヒント

サービスの開始と停止は非常に特権的な操作であり、通常は管理者のみが利用できます。使用するユーザーアカウントに、ターゲットマシンに十分な特権があることを確認してください。 serverfault.comでもっと質問してください

問題を解決するために、ドメイン/ユーザー名のようなリモートコンピューター/サーバーの管理者権限を名前に渡すと、同じ問題が発生してからパッケージを正常に実行できます。サーバ

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top