Glücklicherweise stand ich vor einiger Zeit vor dem selben Problem
Wenn du den PDC (ich glaub bei Windows Server 2003 wird der erste
DC genommen, da es
imho in dem Sinne keinen primären
DC gibt) vom PC, auf dem das Programm läuft, und von der Domäne, in der sich dieser PC befindet, ermitteln willst, reicht ein einfacher aufruf von GetPDC ohne Parameter. Alles weitere sollte man aber im
MSDN unter
NetGetDCName finden
Delphi-Quellcode:
function GetPDC(Host: WideString = '
'; Domain: WideString = '
'):
String;
var
pPDC : Pointer;
Err : Integer;
begin
// Standard zuweisen
pPDC:=
nil;
try
// PDC durch API-Aufruf zuweisen
Err:= NetGetDCName(PWideChar(Host), PWideChar(Domain), pPDC);
// PDC auslesen und als Result festlegen
if (Err = 0)
and (pPDC <>
nil)
then
Result := PWideChar(pPDC);
finally
// Speicher des Pointer freigeben
NetApiBufferFree(pPDC);
end;
end;
PS: Ich bin mir nich mehr ganz sicher, aber es kann sein dass diese Funktion ursprünglich aus der
DP stammt. Ich hoffe der (eventuell^^) Autor kann mir verzeihen, aber leider weiß ich es nicht mehr genau
PS2: Hätt ich fast vergessen:
Es ist wichtig dass der Computername im Parameter Host mit '\\' beginnt!