Есть ли замена или обновление для WmiSet для Post-Delphi 2007? - PullRequest
4 голосов
/ 02 марта 2011

В настоящее время мы используем WmiSet из Online Admin для запуска запросов Wmi и запроса параметров реестра на удаленных компьютерах.

Проблема заключается в том, что он поддерживает только Delphiвплоть до RAD Studio 2007.

В настоящее время мы находимся в процессе обновления до Delphi XE, и нам необходимо знать, знает ли кто-нибудь о более поздней версии компонентов WmiSet или о чем-либо подобном или имеет ее.

Мы пытались связаться с продавцом, но до сих пор не было ответов ни по одному из наших запросов.

Ответы [ 2 ]

7 голосов
/ 02 марта 2011

Питер, некоторое время назад я запускаю проект под названием Delphi Wmi Class Generator, этот проект создает полные документированные классы Object Pascal (совместимые с delphi 7 to 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.
2 голосов
/ 03 марта 2011

преобразование библиотеки WMISet в Unicode Delphi не так уж сложно.Я сделал преобразование в Delphi 2009 и 2010, и компилятор указывает на те строки кода, которые нужно изменить.Если я найду время, я подготовлю «diff» между исходным кодом и измененным для UniCode Delphi и загрузю его.

...