AGB  ·  Datenschutz  ·  Impressum  







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

NetGroupAddUser

Ein Thema von steppo · begonnen am 7. Okt 2003 · letzter Beitrag vom 9. Okt 2003
Antwort Antwort
Seite 1 von 2  1 2      
steppo

Registriert seit: 31. Dez 2002
235 Beiträge
 
Delphi 10 Seattle Enterprise
 
#1

NetGroupAddUser

  Alt 7. Okt 2003, 23:27
hi leute,
ich bekomme beim aufruf der function

"NetGroupAddUser(servername, groupname, userName: PWChar): Integer;stdcall;
external 'netapi32.dll';"

immer "The Groupname could not be found" als Rückgabewert.
Was tun?
Wir sind heute die, vor denen uns unsere Eltern immer gewarnt haben!
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.105 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: NetGroupAddUser

  Alt 7. Okt 2003, 23:54
Moin Steppo,

ich vermute mal, dass Du versucht hast einen User einer lokalen Gruppe hinzuzufügen.
NetGroupAddUser ist aber für globale Gruppen zuständig.

Probiers mal mit NetLocalGroupAddMembers.
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
steppo

Registriert seit: 31. Dez 2002
235 Beiträge
 
Delphi 10 Seattle Enterprise
 
#3

Re: NetGroupAddUser

  Alt 8. Okt 2003, 07:28
Morgen Christian,

Du hast recht!
Ich habe versucht einen lokalen User hinzuzufügen.

Habe auch schon in diesem Forum nach "NetLocalGroupAddMembers" gesucht und auch gefunden.
Komme aber mit den Parametern nicht zurecht.

Vor allem wie und wo definiere ich dieses NERR_SUCCESS und die übrigen Rückgabe bzw Übergabeparameter. Dieses NERR_SUCCESS ist doch eine Konstante, oder?
Von welchem Typ?

Ich lerne es glaub´ ich nie!
Wir sind heute die, vor denen uns unsere Eltern immer gewarnt haben!
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.105 Beiträge
 
Delphi 11 Alexandria
 
#4

Re: NetGroupAddUser

  Alt 8. Okt 2003, 13:27
Moin Steppo,

ein Aufruf wie dieser sollte gehen:

Delphi-Quellcode:
type
  NET_API_STATUS = DWORD;

function NetLocalGroupAddMembers(const servername : PWChar;const groupname : PWChar;const buf : pointer;const totalentries : DWORD) : NET_API_STATUS; stdcall; external 'netapi32.dll';

const
  NERR_SUCCESS = 0;

var
  lgmiWork : LOCALGROUP_MEMBERS_INFO_3;
  dwResult : DWORD;

begin
  lgmiWork.lgrmi3_domainandname := 'Rechnername\username';
  dwResult := NetLocalGroupAddMembers(nil,'Name der lokalen Gruppe',3,@lgmiWork,1);
  //...
für Nähere Informationen zu den Funktionen usw. kannst Du ja im PSDK bzw. auf MSDN nachsehen.
Im PSDK könntest Du dann in den Header Dateien auch die Konstanten nachschlagen.

Zitat von Steppo:
Ich lerne es glaub´ ich nie!
Wieso? Ist doch alles nur Übungssache.
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
steppo

Registriert seit: 31. Dez 2002
235 Beiträge
 
Delphi 10 Seattle Enterprise
 
#5

Re: NetGroupAddUser

  Alt 8. Okt 2003, 15:54
Ich muß dich nocheinmal behelligen.
Ich bekomme beim compilieren die Fehlermeldung
"LOCALGROUP_MEMBERS_INFO_3" / Undefinierter Bezeichner.

Ist das auch Dword?

Wenn du lust und zeit hast, würde ich mich sehr freuen, wenn du mir die gesamte Funktion erklärst.
Vielleicht ist es mir dann möglich andere API-Funktionen richtig zu übersetzen!

Danke für deine bisherige Hilfe!
steppo
Wir sind heute die, vor denen uns unsere Eltern immer gewarnt haben!
  Mit Zitat antworten Zitat
Benutzerbild von Dani
Dani

Registriert seit: 19. Jan 2003
732 Beiträge
 
Turbo Delphi für Win32
 
#6

Re: NetGroupAddUser

  Alt 8. Okt 2003, 15:58
LOCALGROUP_MEMBERS_INFO_3 ist eine Konstante/Variable (edit) oder ein Typ, welche(r) aber in keiner Unit definiert wurde. Wenn du eine Windows API Funktion übersetzten willst, musst du auch alle Structures, Constants usw die von der Funktion verwendet werden mit übersetzen.

Vielleicht haben das die JEDIs aber auch schon erledigt... schau mal auf http://www.jedi.delphi-source.de
Dani H.
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.105 Beiträge
 
Delphi 11 Alexandria
 
#7

Re: NetGroupAddUser

  Alt 8. Okt 2003, 16:20
Moin Steppo

Delphi-Quellcode:
type
  LOCALGROUP_MEMBERS_INFO_3 = record
    lgrmi3_domainandname : PWChar;
  end;
Du solltest Dir wirklich mal das PSDK zulegen

@Dani:
Wie kommst Du denn auf Konstante?
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
Benutzerbild von Dani
Dani

Registriert seit: 19. Jan 2003
732 Beiträge
 
Turbo Delphi für Win32
 
#8

Re: NetGroupAddUser

  Alt 8. Okt 2003, 19:08
Upsa, stimmt natürlich, dass das auch Typen sein können

War ein spontaner Gedanke
Dani H.
  Mit Zitat antworten Zitat
steppo

Registriert seit: 31. Dez 2002
235 Beiträge
 
Delphi 10 Seattle Enterprise
 
#9

Re: NetGroupAddUser

  Alt 8. Okt 2003, 20:06
Danke Christian, habe nachher gesehen, dass es sich um ein Record handeln muß.
(lgmiWork.lgrmi3_domainandname).
Was mich etwas verwirrt hat ist, dass in dem Record nur eine Variable deklariert ist. Das ist doch untypisch, da ein Record dann benutzt wird, wenn mann mehrere Werte verschiedener Datentypen zusammenfassen will.


Habe aber auch das verstanden.

Die anderen Werte, wie
LOCALGROUP_MEMBERS_INFO_0
LOCALGROUP_MEMBERS_INFO_1
LOCALGROUP_MEMBERS_INFO_2
brauchen wir garnicht und definieren sie daher auch nicht.

Stimmt das alles so?

steppo
Wir sind heute die, vor denen uns unsere Eltern immer gewarnt haben!
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.105 Beiträge
 
Delphi 11 Alexandria
 
#10

Re: NetGroupAddUser

  Alt 8. Okt 2003, 21:28
Moin Steppo,

stimmt.
Für Level 0 bräuchtest Du die SID (Security ID) des Users, und Level 1 und 2 werden von anderen Funktionen benötigt.

Zitat von Steppo:
Was mich etwas verwirrt hat ist, dass in dem Record nur eine Variable deklariert ist. Das ist doch untypisch, da ein Record dann benutzt wird, wenn mann mehrere Werte verschiedener Datentypen zusammenfassen will.
Hier haben die Entwickler halt ihr System durchgehalten. Ansonsten hätte es auch einfach ein PWChar getan.

Alle diese Netxxx Funktionen, Typen, Konstanten... sind in den LanManager Headern deklariert.
Wie Dani schon richtig vermutete gibt es dort fertige Übersetzungen bei den JEDIs.
Allerdings verwende ich lieber meine eigenen Übersetzungen (die sich nicht immer mit den anderen vertragen), da bei den JEDIs die borlandtypischen Funktionsdeklarationen mit Var Parametern verwendet werden.
Ich halte mich da lieber mehr an die c-typische Deklaration. Zum einen kann man dann auch leichter Samples umsetzen, zum anderen ist es manchmal einfacher die Funktionen der Dokumentation entsprechend zu verwenden. Bei var Parametern kann man nun einmal nicht nil angeben, selbst wenn dies gemäss Dokumentation zulässig wäre. Man muss sich also, bei borlandtypischer Deklaration, manchmal Dummyvariablen anlegen, die man eigentlich nicht braucht.
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 07:45 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