9

サービスを実行する C# Windows アプリケーションがあります。実行中のサービスを管理するためのコマンド ライン管理インターフェイスを提供するために、PowerShell を活用したいと考えています。

私の見解では、Exchange 2007 と同じ管理インターフェイスを提供しようとしています。

実行中のサービスに「接続」して管理コマンドを照会または送信するために、管理コマンドレットを開始/設計する方法に関する提案またはサンプル コードはありますか?

powershellコマンドラインからサービスの内部ランタイム状態にアクセスするにはどうすればよいですか? たとえば、Get-ConnectionsInfo というコマンドレットを実装して、コマンドレットの実行時に Windows サービスが使用している送信接続の数を調べたいと考えています。

実用的な例または例への Web リンクは大歓迎です。

ありがとう、ロバート

4

4 に答える 4

2

解決策は、WindowsサービスがWCFを介して管理インターフェイスを公開することです。PowerShellコマンドは、このWCFサービスを使用して情報を引き出し、Windowsサービスにアクションを実行させます。

于 2008-10-26T09:25:51.760 に答える
1

ここで重要なのは、.NetからアクセスできるAPIを作成することから始めます。次に、このAPIへの呼び出しを、PowerShellコマンドレットであるクラスを公開するDLLに簡単にラップできます。誰かがサービスをリモートで管理できるようにしたい場合は、これを実行するWebサービスまたはWCFサービスを作成して、PowerShellでラップできるようにするのがおそらく最善の方法だと思います。codeplexを見ると、GoGridやSQL Data ServicesなどのリモートWebベースのサービスを管理する例がいくつかあり、開始するためのサンプルコードが提供されています。

于 2008-11-03T03:45:54.510 に答える
0

Windows サービスの内部状態を公開する別の方法が頭に浮かびました。PowerShell または PowerShell コマンドから使用できる WMI を介して情報を公開できます。

サービスに WMI を介してアクションを実行するように指示できるかどうかはわかりませんが、少なくとも状態を引き出すことはできます。

于 2008-10-26T11:08:17.933 に答える
0

3 つ目の方法は、Windows サービスをPowerShell コンテンツ プロバイダーにすることです。ただし、サービスは常に実行されているわけではないため、Windows サービスでのホスティングに適しているかどうかはわかりません。

于 2008-10-26T11:56:45.887 に答える