Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Active Directory Controller in der Systemumgebung ermitteln (https://www.delphipraxis.net/167213-active-directory-controller-der-systemumgebung-ermitteln.html)

kuba 18. Mär 2012 14:19

Active Directory Controller in der Systemumgebung ermitteln
 
Hallo,

wie kann ich mit einem Delphi Programm ermitteln, ob mein Programm auf einem PC (Server) läuft auf dem der Active Directory Controller installiert ist?

Ich kann momentan den Computernamen und die Domäne ermitteln, weiß aber nicht ob mein Programm auf einem Client PC läuft oder direkt auf dem Server.

KUBA

DeddyH 18. Mär 2012 14:46

AW: Active Directory Controller in der Systemumgebung ermitteln
 
Ich nehme an, Du meinst den DomainController. Mit dem WMI Delphi Code Generator und ein wenig Recherche konnte ich folgendes Beispiel erstellen, HTH:
Delphi-Quellcode:
//-----------------------------------------------------------------------------------------------------
//     This code was generated by the Wmi Delphi Code Creator http://theroadtodelphi.wordpress.com
//     Version: 1.3.8.12 
//
//
//
//     LIABILITY DISCLAIMER
//     THIS GENERATED CODE IS DISTRIBUTED "AS IS". NO WARRANTY OF ANY KIND IS EXPRESSED OR IMPLIED.
//     YOU USE IT AT YOUR OWN RISK. THE AUTHOR NOT WILL BE LIABLE FOR DATA LOSS,
//     DAMAGES AND LOSS OF PROFITS OR ANY OTHER KIND OF LOSS WHILE USING OR MISUSING THIS CODE.
//
//
//----------------------------------------------------------------------------------------------------
program GetWMI_Info;

{$APPTYPE CONSOLE}

uses
  SysUtils,
  ActiveX,
  ComObj,
  Variants;
 

   
// Die Klasse "Win32_ComputerSystem" stellt ein Computersystem in einer Win32-
// Umgebung dar.

procedure GetWin32_ComputerSystemInfo;
const
  WbemUser           ='';
  WbemPassword       ='';
  WbemComputer       ='localhost';
  wbemFlagForwardOnly = $00000020;
var
  FSWbemLocator : OLEVariant;
  FWMIService  : OLEVariant;
  FWbemObjectSet: OLEVariant;
  FWbemObject  : OLEVariant;
  oEnum        : IEnumvariant;
  iValue       : LongWord;
begin;
  FSWbemLocator := CreateOleObject('WbemScripting.SWbemLocator');
  FWMIService  := FSWbemLocator.ConnectServer(WbemComputer, 'root\CIMV2', WbemUser, WbemPassword);
  FWbemObjectSet:= FWMIService.ExecQuery('SELECT * FROM Win32_ComputerSystem','WQL',wbemFlagForwardOnly);
  oEnum        := IUnknown(FWbemObjectSet._NewEnum) as IEnumVariant;
  while oEnum.Next(1, FWbemObject, iValue) = 0 do
  begin
    case Integer(FWbemObject.DomainRole) of
      0: Writeln('Standalone Computer');
      1: Writeln('Member Computer');
      2: Writeln('Standalone Server');
      3: Writeln('Member Server');
      4: Writeln('Backup Domain Controller');
      5: Writeln('Primary Domain Controller');
    end;       
    Writeln('');
    FWbemObject:=Unassigned;
  end;
end;


begin
 try
    CoInitialize(nil);
    try
      GetWin32_ComputerSystemInfo;
    finally
      CoUninitialize;
    end;
 except
    on E:EOleException do
        Writeln(Format('EOleException %s %x', [E.Message,E.ErrorCode]));
    on E:Exception do
        Writeln(E.Classname, ':', E.Message);
 end;
 Writeln('Press Enter to exit');
 Readln;    
end.

kuba 18. Mär 2012 17:28

AW: Active Directory Controller in der Systemumgebung ermitteln
 
Zitat:

Zitat von DeddyH (Beitrag 1157231)
Ich nehme an, Du meinst den DomainController. Mit dem WMI Delphi Code Generator und ein wenig Recherche konnte ich folgendes Beispiel erstellen, HTH:

WMI Delphi Code Generator, is ja der Hammer. Den kannte ich noch nicht. Vielen Dank für den Code, genau das meinte ich :thumb:

KUBA

DeddyH 18. Mär 2012 17:33

AW: Active Directory Controller in der Systemumgebung ermitteln
 
Ich habe das Ding ja nicht umsonst verlinkt (Neheimer müssen ja zusammenhalten) ;), das muss man einfach installiert haben IMO.


Alle Zeitangaben in WEZ +1. Es ist jetzt 18:40 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz