[TRUCO DELPHI] WMI - Determinar si la computadora es un Servidor o una Estacion de Trabajo
delphi
const wbemFlagForwardOnly = $00000020; var FSWbemLocator : OLEVariant; FWMIService : OLEVariant; FWbemObjectSet: OLEVariant; FWbemObject : OLEVariant; oEnum : IEnumvariant; iValue : LongWord; begin; FSWbemLocator := CreateOleObject('WbemScripting.SWbemLocator'); FWMIService := FSWbemLocator.ConnectServer('localhost', 'root\CIMV2', '', ''); FWbemObjectSet:= FWMIService.ExecQuery('SELECT DomainRole FROM Win32_ComputerSystem','WQL',wbemFlagForwardOnly); oEnum := IUnknown(FWbemObjectSet._NewEnum) as IEnumVariant; if oEnum.Next(1, FWbemObject, iValue) = 0 then begin case FWbemObject.DomainRole of 0: Writeln('Standalone Workstation'); 1: Writeln('Member Workstation'); 2: Writeln('Standalone Server'); 3: Writeln('Member Server'); 4: Writeln('Backup Domain Controller'); 5: Writeln('Primary Domain Controller'); end; FWbemObject:=Unassigned; end; end;
Saludos!