[GELÖST]NetUserAdd auch für lokale Benutzer?
-
Und was ist diese Standart Gruppe, in der der User dann auch im "normalen" Login angezeigt wird.
In deinem usermanager ist das "Benutzer" aber das Programm sagt, diese Gruppe gäbe es nicht.
MFG
AceEDIT:\\
@coolzero:
Bei NetUserAdd darf man nur UER_PRIV_USER benutzen
-
Jeder Benutzer egal von welcher Gruppe wird beim Login angezeigt. (Ausgenommen die Systemgruppen wie diese Hilfedienstgruppe usw.)
AceKiller73 schrieb:
In deinem usermanager ist das "Benutzer" aber das Programm sagt, diese Gruppe gäbe es nicht.
Das habe ich jetzt nicht verstanden.
-
In deinem Usermanager gibt es die Gruppe "Benutzer".
Wenn ich jetzt NetGroupAddUser(..) bei der Gruppe "Benutzer" machen will sagt er mir, dass es die Gruppe nicht gibt.
MFG
Ace
-
In deinem Programm? Funktioniert es denn mit meinem Usermanager? Wenn ja, dann machst du noch irgendwas falsch.
-
Wenn ich deinen Usermanager starte, sehe ich eine Gruppe names "Benutzer".
Wenn ich nun diesen Code ausführe:
status = NetGroupAddUser(NULL,L"Benutzer",L"testuser3");Gibt er mir den Fehlercode 2220 zurück, wasbedeutet, dass er die Gruppe nicht gefunden hat.
Woran kann das liegen?MFG
Ace
-
Benutzt du auch Unicode richtig? Versuch mal NetGroupAddUserW explizit aufzurufen. Oder versuch es mal ohne Unicode.
-
Hmm also hier mal der komplette Quellcode.
void __fastcall TForm1::Button3Click(TObject *Sender) { WideString user = "testuser3"; WideString group = "Benutzer"; NET_API_STATUS status = NetGroupAddUser(NULL,group,user); AnsiString errorcode; switch(status) { case NERR_GroupNotFound: errorcode = "The group name could not be found."; break; default: errorcode = status; break; } Label4->Caption=errorcode; }Wenn ich versuche das ganze mit normalen char* aufgzurufen, sagt er mir er bräuchte wchar_t.
NetGroupAddUserW findet er nicht.
Aber in der MSDN steht was von wegen man könnte unicode ausschalten oder so...MFG
Ace
-
WideString ist ein VCL Datentyp. Damit können Windows-API Funktionen nichts anfangen. Nimm statt dessen mal ein PWideChar oder gleich die Windows Datentypen LPTSTR.
-
Hmm also es funzt. nicht egal wie ichs drehe.
void __fastcall TForm1::Button3Click(TObject *Sender) { PWideChar user = (PWideChar)"testuser3"; PWideChar group =(PWideChar)"Benutzer"; NET_API_STATUS status = NetGroupAddUser(NULL,group,user); AnsiString errorcode; switch(status) { case NERR_GroupNotFound: errorcode = "The group name could not be found."; break; default: errorcode = status; break; } Label4->Caption=errorcode; }Ich bitte euch zwar nur ungern, aber könnte vllt jemand einen Code posten, der 100% bei ihm funktioniert? Also nen kompletten Code.
Irgendwas mach ich total falsch. Die Fehlermeldung ist weiterhin:
Group not found.testuser3 habe ich so hinzugefügt:
void __fastcall TForm1::Button1Click(TObject *Sender) { USER_INFO_1 user_data; user_data.usri1_name = L"testuser3"; user_data.usri1_password = L"pw"; user_data.usri1_priv = USER_PRIV_USER; user_data.usri1_home_dir = NULL; user_data.usri1_comment = NULL; user_data.usri1_flags = UF_SCRIPT; user_data.usri1_script_path = NULL; NET_API_STATUS status = NetUserAdd(NULL,1,(LPBYTE)&user_data,NULL); AnsiString errorcode; switch(status) { case NERR_BadUsername: errorcode = "Bad username"; break; case ERROR_INVALID_PARAMETER: errorcode = "Invalid Parameter"; break; case NERR_Success: errorcode = "User was added"; break; case ERROR_ACCESS_DENIED: errorcode = "The user does not have access to the requested information."; break; case NERR_InvalidComputer: errorcode = "The computer name is invalid."; break; case NERR_NotPrimary: errorcode = "The operation is allowed only on the primary domain controller of the domain."; break; case NERR_GroupExists: errorcode = "The group already exists."; break; case NERR_UserExists: errorcode = "The user account already exists."; break; case NERR_PasswordTooShort: errorcode = "The password is shorter than required."; break; default: errorcode = status; break; } Label1->Caption = errorcode; }Könnte also vllt jemand nen Code posten, wo ein User hinzugefügt und einer Gruppe hinzugefügtwird?
MFG
Ace
-
Grudnregel: Wenn man casten muss, ist i.d.R. oft was falsch....
Und Dein cast beiPWideChar user = (PWideChar)"testuser3";sieht sehr gefährlich aus...
-
ich kann das ganze ja auch mit wchar_t* machen, aber da müsste ich ja auch casten.
Ich muss bei diesem verdamm... unicode sowieso immer casten.
Naja wie gesagt ein beispiel code würde mir helfen.
MFG
Acetrotzdem danke für die vielen antowrten
-
Hmm ich push das ganze hier nochmal.
Ich habs immer noch nicht hinbekommen.
Und ich weiß echt nicht mehr worans liegen könnte.Wäre echt nett wenn jemand nen kurzen funktionierenden Code postet, bei dem ein User geaddet und einer Gruppe hinzugefügt wird.
MFG
Ace
-
So ich habe das Problem nun lösen können.
Da ich ja den Benutzer auf einem lokalen System angelegt hatte und dort auch die Gruppe ändern wollte musste ich eine andere Funktion nutzen:
Dann hats auch mit
wchar username[] = L"testuser";geklappt.
Danke nochmal an alle die geholfen haben.
MFG
Ace