Entwickler-Ecke
Windows API - User aus Gruppe entfernen => Fehlercode 1387...
ThomasEi - Sa 06.09.08 07:38
Titel: User aus Gruppe entfernen => Fehlercode 1387...
Hallo,
ich spiele etwas mit 'MPuNTUser.pas' herum, um mich mit dem Thema Benutzerveraltung vertraut zu machen.
Die Unit von "Michael Puff" (
http://www.michael-puff.de) ist da ein ganz hilfreicher Einstieg.
Ich habe ein WinXP prof. mit D2005 prof. und bin als Admin angemeldet.
Damit lege ich einen User an, das klappt wunderbar ohne Problem:
Delphi-Quelltext
1: 2: 3: 4:
| ups := AddUser(compname, Edit3.Text, Edit4.Text); Meldungsmemo.Lines.Add(NetErrorStr(ups)); ups := AddToGroup(compname, Edit3.Text, 'Benutzer'); Meldungsmemo.Lines.Add(NetErrorStr(ups)); |
Doch wenn ich versuche diesen User wieder aus einer Gruppe zu entfernen:
Delphi-Quelltext
1: 2:
| ups := RemoveFromGroup(compname, Edit3.Text, 'Benutzer'); Meldungsmemo.Lines.Add(NetErrorStr(ups)); |
Bekomme ich "Fehlercode 1387: Benutzer existiert nicht" zurück.
Was mache ich falsch?
Thomas
Moderiert von
Narses: Delphi-Tags hinzugefügt
Hidden - Sa 06.09.08 08:26
Titel: Re: User aus Gruppe entfernen => Fehlercode 1387...
ThomasEi hat folgendes geschrieben: |
| Was mache ich falsch? |
Du benutzt keine Delphi-Tags. Dadurch wird dein Quelltext unlesbar ;)
Deinen Quelltext packst du am besten in
<span class="inlineSyntax"><span class="codecomment">{PROTECTTAG114227ce9778776bee31ee115abf0eac}</span></span> Einzelne Stellen markierst du mit dem Highlight-Tag: [highlight ] markierte Stelle [/highlight]
mfG,
Delete - Sa 06.09.08 11:44
Titel: Re: User aus Gruppe entfernen => Fehlercode 1387...
ThomasEi hat folgendes geschrieben: |
Delphi-Quelltext 1: 2:
| ups := RemoveFromGroup(compname, Edit3.Text, 'Benutzer'); Meldungsmemo.Lines.Add(NetErrorStr(ups)); | |
Wird der Benutzer dann auch nicht aus der Gruppe entfernt oder was passiert? Generell sollte man den Rückgabewert einer API-Funktion nur dann abrufen, wenn die Funktion fehlgeschlagen ist, da ansonsten der Wert von GetLastError usw. unbestimmt ist.
ThomasEi - Sa 06.09.08 20:24
Titel: Re: User aus Gruppe entfernen => Fehlercode 1387...
Nein, leider wird der Benutzer nicht aus der Gruppe entfernt.
Thomas
Delete - Sa 06.09.08 23:37
Versuch es mal mit WideStrings. Alle Funktionen in denen Zeichenketten als Parameter vorkommen sind in meiner Unit WideStrings.
ThomasEi - So 07.09.08 00:10
Hallo Luckie,
habe den Fehler gefunden, in der "MPuNTUser.pas"
Funktion die bei mir nicht funktioniert:
Delphi-Quelltext
1: 2: 3: 4: 5:
| function RemoveFromGroup(const Server, User, Group: WideString): NET_API_STATUS; ... Member.lgrmi3_domainandname := PWideChar(copy(Server, 3, length(Server)) + '\' + User); ... end; |
Im COPY wird erst an der 3. Stelle der PC-Name übernommen.
Richtiger währe und so funktioniert es bei mir, ab der 0. Stelle.
Funktion die bei mir funktioniert:
Delphi-Quelltext
1: 2: 3: 4: 5:
| function RemoveFromGroup(const Server, User, Group: WideString): NET_API_STATUS; ... Member.lgrmi3_domainandname := PWideChar(copy(Server, 0, length(Server)) + '\' + User); ... end; |
Danke für die Unterstützung und ein schönes Wochenende noch.
Thomas
Delete - So 07.09.08 00:24
Das ist kein Fehler. Du musst nur "\\" vor den Rechnernamen setzen. Das hatte ich so gemacht, weil ich irgendwie alle Rechnernamen so bekommen habe von einer anderen Funktion. Wollte man es wasserdicht machen, müsste man abfragen, zwei Bbackslashes vor dem Rechnernamen stehen oder nicht.
Trotzdem solltest du mit WideStrings arbeiten, da alle Funktionen Unicode sind.
ThomasEi - So 07.09.08 00:35
Hallo Luckie,
Entschultigung, selbstverständliche ist dies kein Fehler der Unit, sondern er liegt eindeutig bei mir.
Da ich nun weis warum die Funktion bei mir nicht gearbeitet hatte und Dank Deines Hinweises mit den
zwei Backslashes "\\" kann ich die Abfragen/Eingabe des Computernames verbessern.
Danke
Thomas
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!