AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Benutzer einer Gruppe zu ordnen

Ein Thema von Luckie · begonnen am 28. Jan 2003 · letzter Beitrag vom 29. Jan 2003
 
Benutzerbild von Luckie
Luckie

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

Benutzer einer Gruppe zu ordnen

  Alt 28. Jan 2003, 02:41
So es geht in die letzte Runde des User-Managers. Wenn das Problem gelöst ist. Kann ich ihn veröffentlichen bzw. als Alpha-Release zum Testen freigeben und dann das große Geld damit machen.

Es geht jetzt darum einem Benutzer einer Gruppe zu zuordnen. Folgender Code läßt sich prima kompilieren (beide Versionen):
Delphi-Quellcode:
{ 1. Version }
      {dwEntries := 0;
      if IsDlgButtonChecked(hApp, IDC_CHKISADMIN) = BST_CHECKED then
      begin
        Inc(dwEntries);
        setlength(sGroupArray, dwEntries);
        sGroupArray[dwEntries-1] := 'Administratoren';
      end;
      if IsDlgButtonChecked(hApp, IDC_CHKISPOWERUSER) = BST_CHECKED then
      begin
        Inc(dwEntries);
        setlength(sGroupArray, dwEntries);
        sGroupArray[dwEntries-1] := 'Hauptbenutzer';
      end

      GetMem(gui0, dwEntries*sizeof(Pointer));
      for i := 0 to dwEntries-1 do
      begin
        Inc(Integer(gui0), sizeof(Pointer));
        PGroupInfo0(gui0)^.grpi0_name := PWideChar(WideString(sGroupArray[i]));
      end;

      dwError := NetUserSetGroups(nil, PWideChar(WideString(sUser)), 0, gui0, dwEntries); }

      //NetAPIBufferFree(gui0); // <- mag er nicht
      //FreeMem(gui0, dwEntries*sizeof(Pointer)); // <- mag er auch nicht :o(

      { 2. Version }
      if IsDlgButtonChecked(hApp, IDC_CHKISPOWERUSER) = BST_CHECKED then
        dwError := NetGroupAddUser(nil, PWideChar(WideString('Hauptbenutzer')), PWideChar(WideString(sUser)))
      else
        dwError := NetGroupDelUser(nil, PWideChar(WideString('Hauptbenutzer')), PWideChar(WideString(sUser)));

      case dwError of
        ERROR_ACCESS_DENIED : s := 'Zugriff verweigert.';
        ERROR_INVALID_PARAMETER : s := 'Ungültiger Parameter.';
        NERR_InvalidComputer : s := 'Ungültiger Computer';
        NERR_NotPrimary : s := 'Operation darf nur auf dem Domain-Controller ausgeführt werden.';
        NERR_SpeGroupOp : s := 'Operation darf nicht auf diese Gruppe angewandt werden.';
        NERR_LastAdmin : s := 'Der letzte macht das Licht aus, aber nicht bei Windows. :o)'
                                    +#13#10+'Der letzte Administrator Account kann nicht gelöscht werden';
        NERR_BadPassword,
        NERR_PasswordTooShort : s := 'Ungültiges Passwort';
        NERR_UserNotFound : s := 'Ungültiger Benutzer.';
        NERR_GroupNotFound : s := 'Gruppe nicht gefunden.';
        NERR_Success : s := 'Konto erfolgreich geändert.';
      end;
Das Problem ist nur, ich bekomme jedes mal "Gruppe nicht gefunden". Obwohl das auslesen so geht:
Delphi-Quellcode:
if sUser <> 'then
  begin
    if NetUserGetLocalGroups(nil, PWideChar(WideString(sUser)), 0, 0, gui0, MAX_PREFERRED_LENGTH,
      dwEntriesRead, dwEntriesTotal) = NERR_SUCCESS then
    tmp := gui0;
    begin
      for i := 0 to dwEntriesRead-1 do
      begin
        s := String(PGroupInfo0(gui0)^.grpi0_name);
        if s = 'Administratorenthen
          CheckDlgButton(hApp, IDC_CHKISADMIN, Integer(TRUE));
        if s = 'Hauptbenutzerthen
          CheckDlgButton(hApp, IDC_CHKISPOWERUSER, Integer(TRUE));
        if s = 'Benutzerthen
          CheckDlgButton(hApp, IDC_CHKISUSER, Integer(TRUE));
        if s = 'Sicherungs-Operatorenthen
          CheckDlgButton(hApp, IDC_CHKISBACKUPOP, Integer(TRUE));
        if s = 'Replikations-Operatorthen
          CheckDlgButton(hApp, IDC_CHKISREPOP, Integer(TRUE));
        if s = 'Gästethen
          CheckDlgButton(hApp, IDC_CHKISGUEST, Integer(TRUE));
        Inc(Integer(gui0), sizeof(pointer));
      end;
        //Messagebox(0, pointer(s), '', 0);
    end;
    NetAPIBufferFree(tmp);
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:24 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