2011-10-26 5 views
1

Hyper-V上で実行されているすべてのVMのステータスを取得できるコンポーネントまたはクラスはありますか?私はすべてのvmsとその状態(停止、実行中、一時停止など)を一覧表示できるようにしたい。DelphiまたはC#を使用してHyper-Vで仮想マシンの状態を取得する方法

私はマイクロソフトがWMIメソッドを持っていることを知っていますが、私が入手したサンプルはすべて.Net用であり、Delphi用ではありません。これらのクラスをDelphiで変換できるはずですが、Delphiで既に使用できるものがあれば簡単です。

EDIT

私はC#でのサンプルを持っている:

/

/ define the information we want to query - in this case, just grab all properties of the object 
ObjectQuery queryObj = new ObjectQuery("SELECT * FROM Msvm_ComputerSystem"); 

// object for storing WMI connection options 
// pass the "user", "password" and "domain" from command-line 
// don't hard-code these into the application! 
ConnectionOptions connOpts = new ConnectionOptions(); 
connOpts.Username = user; 
connOpts.Authority = "ntlmdomain:" + domain; 
connOpts.Password = password; 

// management scope object 
ManagementScope manScope = new ManagementScope(@"\\RemoteSystem\root\virtualization", connOpts); 

// connect and set up our search 
ManagementObjectSearcher vmSearcher = new ManagementObjectSearcher(manScope, queryObj); 
ManagementObjectCollection vmCollection = vmSearcher.Get(); 

// loop through the VMs 
foreach (ManagementObject vm in vmCollection) 
{ 
    // display VM details 
    Console.WriteLine("\nName: {0}\nStatus: {1}\nDescription: {2}\n", 
         vm["ElementName"].ToString(), 
         vm["EnabledState"].ToString(), 
         vm["Description"].ToString()); 
} 

が、私はそれは私がそれを翻訳しようとすることができます動作するかどうかを確認するためのVisual Studioでこれを実行しようとしましたデルファイに私は、ユーザー名、ドメイン、およびパスワードを変更するにもかかわらず、しかし、私はまだ、このエラーを得た:

MagWMIで、 Magenta SystemsでWMIにアクセスするための無料のDelphiのコードがあります
{"The RPC server is not available. (HRESULT: 0x800706BA)"} 
+0

この特定のデータを取得していますが、.NETだけでなく、さまざまな言語でのWMIの例が多数あります。これらの例の情報をVMの対話で見つかった.NET固有の例と組み合わせることはできませんか? – GolezTrol

+0

WMIとDelphiに関する優れたブログがあります:http://theroadtodelphi.wordpress.com/ – Andreas

+1

待ってください。あなたはこれを行う方法について多くの.Netの例を見つけることができると言った。 Delphiの代わりにC#で回答を受け取ることができます。あなたの質問は何ですか? –

答えて

1

。 WMIクエリを実行できるデモアプリケーションなど、完全なソースが付属しています。現在のWebページ(上にリンクされている)は、現在のWindows(およびDelphi)バージョンと互換性があると言います。

特に仮想化で動作するかどうかはわかりませんが、少なくともDelphiコードからWMIを使用するようになります。 (編集:デモはローカルコンピュータ上でのみ動作するように記述されているため、より少数のパラメータを渡してデモを理解しやすくしているようですが、WMIをDelphiで使用する際の基本を示しています。もし、あなたのように)

3

、最新のDelphiへのWMIのためには、Rodrigosコンポーネントです。私はのためのWMIの方法に精通していないよ

wmi-delphi-code-creator

object-pascal-wmi-class-generator

+0

ありがとうございました...私はRRUZがWMIのものを持っていたのか分かりませんでした。私は彼のブログにもっと時間を費やす必要があると思う。 :) –

関連する問題