Obige Funktion liefert bei mir auch 0 zurück, aber der Aufruf von#
Delphi-Quellcode:
function GetRemoteOS(const Computer: WideString; var Version: string): DWORD;
var
res : DWORD;
s : string;
si : Pointer;
Major : DWORD;
Minor : DWORD;
begin
si := nil;
s := '';
res := NetServerGetInfo(PWideChar(Computer), 101, @si);
if res = NERR_Success then
begin
Major := PSERVER_INFO_101(si)^.sv101_version_major;
Minor := PSERVER_INFO_101(si)^.sv101_version_minor;
if (Major = 4) and (Minor = 0) then
begin
s := 'Windows NT 4.0';
IsXP := False;
end
else if (Major = 5) and (Minor = 0) then
begin
s := 'Windows 2000';
IsXP := False;
end
else if (Major = 5) and (Minor = 1) then
begin
s := 'Windows XP';
IsXP := True;
end
else if (Major = 5) and (Minor = 2) then
begin
s := 'Windows 2003 Server Family';
IsXP := False;
end
else
s := rsUnknown;
Version := s;
end;
NetApiBufferFree(si);
result := res;
ISXP := True;
end;
Schlägt dann mit "Zugriff verweigert" fehl. Aber auch, wen ich den auskommentiere bleibt die Liste leer. NetEnumUsers und Konsorten schlägt einfach fehl.
Benutze ich deine Funktion mit einem loaken Adminkonto und Passwort auf dem XP Rechner geht es, ich bekomme auch das
OS angezeigt, nur eben die Benutzerliste bleibt wieder leer.