Einzelnen Beitrag anzeigen

Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#1

NetLocalGroupAddMembers -> Netzwerkpfad nicht gefunden

  Alt 22. Okt 2004, 08:31
So langsam zweifele ich an mir selbst. Seit ich den UserManager überarbeite klappen die API Funktionsaufrufe hinten und vorne nicht mehr, obwohl ich eigentlich nichts anders mache als im alten Usermanager.

Delphi-Quellcode:
////////////////////////////////////////////////////////////////////////////////
// Procedure : AddToGroup
// Comment : Adds a user to a group

function AddToGroup(Server, User, Group: string): NET_API_STATUS;
var
  s: String;
  iSize: Integer;
  lpwServer: PWideChar;
  lpwGroup: PWideChar;
  Member: PLocalGroupMembersInfo3;
begin
  result := NERR_BASE;
  if (User <> '') and (Group <> '') and (Server <> '') then
  begin
    s := Server + '\' + User;
    iSize := MultiByteToWideChar(0, 0, Pointer(s), -1, nil, 0);
    lpwServer := GetMemory(iSize * SizeOf(WideChar));
    MultiByteToWideChar(0, 0, Pointer(s), -1, lpwServer, iSize);

    iSize := MultiByteToWideChar(0, 0, Pointer(Group), -1, nil, 0);
    lpwGroup := GetMemory(iSize * SizeOf(WideChar));
    MultiByteToWideChar(0, 0, Pointer(Group), -1, lpwGroup, iSize);

    GetMem(Member, sizeof(TLocalGroupMembersInfo3));
    try
      Member.lgrmi3_domainandname := lpwServer;
      result := NetLocalGroupAddMembers(lpwServer, lpwGroup, 3, Member, 1);
    finally
      FreeMem(Member, sizeof(TLocalGroupMembersInfo3));
    end;
  end;
end;
Diese Funktion liefert mir immer den Fehler 1722 zurück, obwohl der Netzwerkpfad stimmt: "\\HAL900\Test". "HAL9000" ist mein lokaler Computer auf dem ich arbeite. Hat jemand eine Idee, woran es liegen könnte?

Nachtrag: Im PSDK steht das lgrmi3_domainandname so
Zitat:
Pointer to a null-terminated Unicode string specifying the account name of the local group member prefixed by the domain name and the "\" separator character. For example:
<DomainName>\<AccountName>
angegeben werden müsste. Aber auch wenn ich die ersten beiden "\\" davor wegnehme, kommt der Fehler, dass der Netzwerkpfad nicht gefunden würde.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat