リモートマシン上の特定のユーザーとして実行されているサービスの一覧を照会して、それぞれの正常性を確認する必要があります。私はカスタムコンソールを構築しています。C#では、Windowsサーバー上で実行中のサービスの一覧をどのようにクエリしますか?
22
A
答えて
21
:
using System.Management;
static void EnumServices(string host, string username, string password)
{
string ns = @"root\cimv2";
string query = "select * from Win32_Service";
ConnectionOptions options = new ConnectionOptions();
if (!string.IsNullOrEmpty(username))
{
options.Username = username;
options.Password = password;
}
ManagementScope scope =
new ManagementScope(string.Format(@"\\{0}\{1}", host, ns), options);
scope.Connect();
ManagementObjectSearcher searcher =
new ManagementObjectSearcher(scope, new ObjectQuery(query));
ManagementObjectCollection retObjectCollection = searcher.Get();
foreach (ManagementObject mo in retObjectCollection)
{
Console.WriteLine(mo.GetText(TextFormat.Mof));
}
}
:
.Net 2.0 ServiceController.GetServices()
FWIWは、ここに明示的なホスト、ユーザ名、パスワードを使用して、C#/ WMIの方法です
5
これにはwmi(System.Management)を使用できます。 ServiceController.GetServices()を使用することもできます。
34
ServiceController.GetServices( "machineName")は、特定のマシンのServiceControllerオブジェクトの配列を返します。
この
:namespace AtYourService
{
using System;
using System.ServiceProcess;
class Program
{
static void Main(string[] args)
{
ServiceController[] services = ServiceController.GetServices();
foreach (ServiceController service in services)
{
Console.WriteLine(
"The {0} service is currently {1}.",
service.DisplayName,
service.Status);
}
Console.Read();
}
}
}
は生成します。
アプリケーション体験サービスは 現在実行されています。
Andrea STフィルターサービスサービス は現在実行中です。
アプリケーションレイヤゲートウェイサービス サービスは現在停止しています。
アプリケーション情報サービスは現在実行中の です。
など...もちろん
は、私は私のマシン上のサービスを取得するために、パラメータなしのバージョンを使用していました。私はこの前の質問で実装偽装してソリューションをチェックアウトしたいServiceControllerのメソッドを使用するには
3
これは、あなたがパラメータ
namespace ServiceName
{
using System;
using System.ServiceProcess;
class Service
{
public static bool IsServiceInstalled(string serviceName)
{
ServiceController[] services = ServiceController.GetServices();
foreach (ServiceController service in services)
{
if (service.ServiceName == serviceName)
return true;
}
return false;
}
}
}
関連する問題
- 1. Windowsで実行中のC#とprotobufでLinux上で実行中のC
- 2. サービスの一覧が表示されているサーバーを表示しようとしていて、実行中であるかどうかわからない
- 3. どのようにしてWindows上でPython dbusを実行できますか?
- 4. Windows Server 2003上でサービスとして実行中のトラブルウェイトレス
- 5. 実行中の日付の一覧をSQLクエリに追加します
- 6. Windows上のnode.jsで外部プログラムをどのように実行しますか?
- 7. Windows Phone 7で実行中のプロセスを一覧表示する方法は?
- 8. Django - クエリはどのようにクエリを実行しますか?
- 9. アクティブな(実行中の)アプリケーションの一覧を一覧表示で表示する
- 10. WindowsでVimをどのように実行しますか?
- 11. cループ実行中はどのような順序ですか?
- 12. Windows FTPサーバーのサブディレクトリを一覧表示するにはどうすればよいですか?
- 13. Sequel Proでどのようにクエリを実行しますか?
- 14. 実行中のPythonスクリプトWindows上でWindowsで書かれた
- 15. Windowsサービスとして実行中のコンソールアプリケーション
- 16. C#で一度に2つのクエリを実行するにはどうすればよいですか?
- 17. サーバー上で実行中のjupyterノートを保存するにはどうしたらいいですか?
- 18. Googleシート上のクエリのようにExcel上でSQLを実行
- 19. IIS上でWindowsサービスを実行
- 20. コードプロファイラ内の実行中のC#アプリケーションは、コードプロファイラ外での実行とどのように違いますか?
- 21. Windowsサーバー2003のWindowsサービスからバッチファイルを実行できませんOS
- 22. Amazon Redshiftで現在実行中のDDLクエリをどのようにクエリしますか?
- 23. 現在、VB.NET 2.0でWindows上で実行されているすべてのプロセスを一覧表示します。
- 24. Mac:実行中のネットワークサービスの一覧を見るには?
- 25. Visual StudioはどのようにWebサービスをローカルで実行しますか?
- 26. サーバー上でコマンドを実行し、結果をWindowsのクライアントに送信します
- 27. Windowsサービスの実行中にエラーが発生しました
- 28. Windows 8ではどのようにMeteorを実行しますか?
- 29. C++で一定の時間間隔でメソッドを実行するWindowsサービス
- 30. Windows上でruby gemを実行中
に言及することができ、ご希望のサービス名をごシステムのサービス名をチェックしますありがとうございました。すべての回答がWMIとSystem.Managementを指摘してくれました。私はクエリが好きで、このスニペットを使いました。 thxもう一度。 -k2 – kkelly18
@AK_なぜ私の編集をロールバックしましたか? – Dan
@ダン申し訳ありませんが、間違ったタブでロールバックしました...固定しました... –