2009-07-21 18 views
1

はい私はこれをgoogleすることができましたが、私は少し怠け者です。別のマシンでWindowsサービスをリモートコントロールする必要があります。 ServiceControllerクラスはこれを私に任せますか?どのような制限がありますか?期限切れのためにパスワードを変更するなど、リモートで「実行」の詳細を開始/停止/変更することはできますか?リモートクラスのサービスを制御する.Netクラス?

は私が仕事で、ユーザーが自分のアカウント(彼らは自分のマシン上のすべてのローカル管理者をしている)の下に自分のローカルマシン上で実行するいくつかのサービスを制御するためのASP.NetのWebサイトのダッシュボードを提供しようとすることでしょう。これは他の機能と統合されているので、私はそれらのためにローカルで実行できる配布可能ファイルを作成することを検討していません。 Windows認証を使用して、ユーザーを偽装して変更を行います。この問題に遭遇する可能性がある場合、どんな問題がありますか?コードを実行している

乾杯

答えて

8
var sc = new ServiceController("servicename", "othermachinename"); 

アカウントがサービスと対話するために、ターゲットコンピュータの管理者権限が必要になります。なりすましが機能します。私は厳密に制御された状況(ソース/ターゲットマシンで同じ資格情報を持つユーザーアカウントから実行している)でのみこれを使用しましたが、私の経験上、すべての操作は期待通りに機能します。

あなたがサービスの資格情報などを変更したい場合は、WMIを使用する必要があります - ServiceControllerのクラスを使用して同じように簡単ではありません。詳細については、ManagementObjectクラスを参照してください。

私は、サービスの資格情報を変更するにはWMIを使用して説明しthis linkを見つけました。

+0

+1これも同様に使用します。それをコンソールアプリケーションにラップして、 'runas 'を使用して、指定されたユーザーアカウントを持つリモートマシン上のサービスを開始/停止することができます。 –

+0

ありがとうございます - 私はあなたにWMI/ManagementObjectでいくつかのヘッドアップを与えることができますか? – Ray

+0

Arj:私の答えのリンクをチェックしてください - WMIの例があります。 –

0

@MadSeb -

other postに私が言ったように:

あなたがC#またはVB.Netを使用している場合は、それ以外のWMI

を使用するには、 "SCは" おそらく最高のツールです。コマンドラインまたは.batファイルから使用する。

関連する問題