ServiceControllerを使用してWindowsサービスをリモート制御する方法は?
-
24-10-2019 - |
質問
リモートコンピューターにインストールされている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でもっと質問してください
問題を解決するために、ドメイン/ユーザー名のようなリモートコンピューター/サーバーの管理者権限を名前に渡すと、同じ問題が発生してからパッケージを正常に実行できます。サーバ