20

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

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

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

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

string status = svc.Status.ToString();

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

コンピューター'COMPUTER_NAME'でServicexxxサービスを開くことができません

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

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

4

3 に答える 3

11

問題が解決しました。

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

于 2010-06-08T13:10:27.693 に答える
8

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

于 2010-06-08T13:12:06.877 に答える
0

この問題を解決するには、ドメイン/ユーザー名などのリモートコンピューター/サーバーの管理者権限を自分の名前に指定します。同じ問題が発生し、セルフサービスに権限を付与すると、リモートでアクセスできるため、パッケージを正常に実行できます。サーバ

于 2013-10-22T11:21:59.497 に答える