4

現在、オンライン管理WmiSetから使用して、リモート マシンで Wmi クエリを実行し、レジストリ設定をクエリしています。

問題は、RAD Studio 2007 までの Delphi しかサポートしていないことです。

WmiSet私たちは現在、Delphi XE へのアップグレードの過程にあり、誰かがコンポーネントのより新しいバージョンまたは類似のものを知っているか、または持っているかどうかを知る必要があります。

ベンダーに連絡を試みましたが、これまでのところ、問い合わせに対する返信はありません。

4

2 に答える 2

7

Pieter さん、しばらく前にDelphi Wmi Class Generatorこのプロジェクトというプロジェクトを開始し、完全に文書化された Object Pascal クラス (Delphi 7 から XE までと互換性がある) を作成して、WMI にアクセスします。

TWin32_BIOSクラス (アプリケーションによって作成された) を使用 Win32_BIOSしてリモート マシンの wmi クラスにアクセスするこのコードを確認してください。

uses
  SysUtils,
  uWmiDelphiClass in '..\..\uWmiDelphiClass.pas',
  uWin32_BIOS in '..\..\root_CIMV2\uWin32_BIOS.pas';

var
  RemoteBiosInfo : TWin32_BIOS;
  i              : integer;
begin
   try
     RemoteBiosInfo:=TWin32_BIOS.Create(False);
     try

       RemoteBiosInfo.WmiServer:='192.168.217.128';
       RemoteBiosInfo.WmiUser  :='Administrator';
       RemoteBiosInfo.WmiPass  :='password'; 
       RemoteBiosInfo.LoadWmiData;

       if RemoteBiosInfo.WmiConnected then  
       begin
         Writeln('Serial Number       '+RemoteBiosInfo.SerialNumber);
         Writeln('BuildNumber         '+RemoteBiosInfo.BuildNumber);
         if RemoteBiosInfo.BIOSVersion.Count>0 then
         Writeln('Version             '+RemoteBiosInfo.BIOSVersion[0]);
         Writeln('Identification Code '+RemoteBiosInfo.IdentificationCode);
         Writeln('Manufacturer        '+RemoteBiosInfo.Manufacturer);
         Writeln('SoftwareElementID   '+RemoteBiosInfo.SoftwareElementID);
         Writeln('Release Date        '+DateToStr(RemoteBiosInfo.ReleaseDate));
         Writeln('Install Date        '+DateToStr(RemoteBiosInfo.InstallDate));
         Writeln('Target S.O          '+GetTargetOperatingSystemAsString(RemoteBiosInfo.TargetOperatingSystem));
         Writeln('Soft. element state '+GetSoftwareElementStateAsString(RemoteBiosInfo.SoftwareElementState));

         Writeln('');
         Writeln('Bios Characteristics');
         Writeln('--------------------'); 
         for i:=Low(RemoteBiosInfo.BiosCharacteristics)  to High(RemoteBiosInfo.BiosCharacteristics) do
          Writeln(GetBiosCharacteristicsAsString(RemoteBiosInfo.BiosCharacteristics[i]));
       end
       else
       Writeln('No connected');
     finally
      RemoteBiosInfo.Free;
     end;
   except
    on E:Exception do
     Writeln(E.Classname, ': ', E.Message);
   end;

 Readln;
end.
于 2011-03-02T17:39:58.337 に答える
2

WMISet ライブラリを Unicode Delphi に変換することはそれほど難しくありません。Delphi 2009 および 2010 への変換が完了しました。コンパイラは、変更が必要なコード行を示します。時間があれば、UniCode Delphi 用に元のコードと変更したコードの「差分」を作成してアップロードします。

よろしく、 オラフ

于 2011-03-03T11:02:56.087 に答える