![]() |
Mindest Passwort länge unter NT
Unter Windows NT ff. kann man über die Gruppenrichtlinen einstellen, wie lang ein Passwort mindestens sein muss. Wie kann man diese mindest Passwortlänge ermitteln? Gibt es dazu eine API oder einen Eintrag in der Registry?
|
Re: Mindest Paswwport länge unter NT
Hast du denn Google benutzt?
Da findet man z.B. folgendes: Zitat:
![]() Ein bisschen Eigeninitiative bitte ;) mfg. Tubos |
Re: Mindest Paswwport länge unter NT
Hmpf, wenn man natürlich die falschen Suchbegriffe benutzt kann es ja nichts werden. :roll:
Hm, ich habe das jetzt eingestellt und es funktioniert auch, nur findet sich unter HKLM dieser Eintrag in der Registry nicht. :gruebel: |
Re: Mindest Paswwport länge unter NT
Ich habe jetzt etwas rumprobiert und habe das gefunden:
![]()
Delphi-Quellcode:
Implementation:
TUSER_MODALS_INFO_0 = record
usrmod0_min_passwd_len: DWORD; usrmod0_max_passwd_age: DWORD; usrmod0_min_passwd_age: DWORD; usrmod0_force_logoff: DWORD; usrmod0_password_hist_len: DWORD; end; PUser_Modals_Info_0 = ^TUser_Modals_Info_0;
Delphi-Quellcode:
Aber irgendwie stimmt da was nicht. Er gibt mir 1277160 aus. Die mindest Passwortlänge ist aber vier bei mir. Oder verstehe ich da was falsch:
function NetUserModalsGet(Servername: LPCWSTR; Level: DWORD; bufptr: Pointer): NET_API_STATUS; stdcall;
//... procedure TForm1.Button1Click(Sender: TObject); var UserModalsInfo : TUSER_MODALS_INFO_0; dwRet: DWORD; begin ZeroMemory(@UserModalsInfo, sizeof(TUser_Modals_Info_0)); dwRet := NetUserModalsGet('hal9000', 0, @UserModalsInfo); if dwRet = NERR_Success then ShowMessage(IntToStr(UserModalsInfo.usrmod0_min_passwd_len)) else ShowMessage(SysErrorMessage(dwRet)); end; Zitat:
|
Re: Mindest Paswwport länge unter NT
*push*
|
Re: Mindest Paswwport länge unter NT
Bist du sicher, dass es eine solche Funktion für einen Single-Anwender-Platz gibt? Ich habe mir bei Google grad die Finger wundgesucht, bin aber auch nur auf obiges Ergebnis gestoßen, das sich anscheinend auf ein Netzwerk bezieht. Ansonsten hab ich nur jede Menge Tutorials über Net.exe gefunden. Wird sicher auch nicht weiterhelfen. Werde mich gleich nochmal in der MSDN rumschlagen..
Edit: Tja, leider nicht weiter fündig geworden. Nur etliche Artikel, wie man die Group Policies ändern kann. Jetzt will ich's aber auch wissen :mrgreen: Gruß |
Re: Mindest Paswwport länge unter NT
Nun ja, warum soll man es das nicht auch bei einem Arbeitsplatzrechner geben? Nicht jeder Rechner einer Firma, wo es auf Sicherheit ankommt, muss ja an einem Netzwerk hängen.
Aber danke für deine Mühe. |
Re: Mindest Passwort länge unter NT
Also soweit mir bekannt ist sind die Passwort Richtlinien für Benutzerkonten auch bei Einzelplatzrechnern gültig!
Zumindest trifft dies auf die Gültigkeitsdauer des Passworts zu. Das ist ja von der Konfiguration im gleichen Bereich möglich, deshalb wäre es eigentlich unlogisch beide Dinge getrennt zu behandeln, aber bei MS weiß man das nie... |
Re: Mindest Paswwport länge unter NT
Zitat:
Der "moderne" Weg ist über ![]() Den alten Weg habt ihr ja weiter oben schon gefunden. Andere kenne ich nicht. |
Re: Mindest Passwort länge unter NT
Welche alte Methode meinst du? Die mit der API scheint nicht zu funktionieren und in der Registry habe ich es an der angegebenen Stelle auch nicht gefunden.
|
Re: Mindest Passwort länge unter NT
Zitat:
|
Re: Mindest Passwort länge unter NT
Zitat:
|
Re: Mindest Passwort länge unter NT
Zitat:
|
Re: Mindest Passwort länge unter NT
Auweia, Micha, gleich mehrere Anfängerfehler.
1. Doku nicht gelesen 2. Prototyp falsch übersetzt (ich habe der Einfachheit halber DWORD genommen, das ist aber irrelevant) Also Read The Friendly Manual ... :zwinker:
Delphi-Quellcode:
Statt Pointer kannste natürlich auch wie immer PByte nehmen - so steht's ja im Header eigentlich. Ist aber schnuppe.
function NetUserModalsGet(Servername: LPCWSTR; Level: DWORD; var bufptr: Pointer): DWORD; stdcall; external 'Netapi32.dll';
function NetApiBufferFree(buf: Pointer): DWORD; stdcall; external 'Netapi32.dll'; var UserModalsInfo: PUSER_MODALS_INFO_0; dwRet: DWORD; const NERR_Success = 0; begin UserModalsInfo := nil; dwRet := NetUserModalsGet(nil, 0, Pointer(UserModalsInfo)); if ((dwRet = NERR_Success) and Assigned(UserModalsInfo)) then ... else ...; if Assigned(UserModalsInfo) then NetApiBufferFree(UserModalsInfo); end. Nachtrag Kleiner Tip noch: der "DWORD"-Wert den du zurückbekamst war ein Pointer auf dem Heap (hat man am Hex(!)-Zahlenwert schon gesehen). |
Re: Mindest Passwort länge unter NT
Die Doku habe ich gelesen. Was habe ich denn falsch gesmcht?
|
Re: Mindest Passwort länge unter NT
Zitat:
![]() Zitat:
Code:
#ifndef UNICODE
#define UNICODE #endif #include <stdio.h> #include <windows.h> #include <lm.h> int wmain(int argc, wchar_t *argv[]) { DWORD dwLevel = 0; [color=red]USER_MODALS_INFO_0 *pBuf = NULL;[/color] NET_API_STATUS nStatus; LPTSTR pszServerName = NULL; if (argc > 2) { fwprintf(stderr, L"Usage: %s [\\\\ServerName]\n", argv[0]); exit(1); } // The server is not the default local computer. // if (argc == 2) pszServerName = argv[1]; // // Call the NetUserModalsGet function; specify level 0. // nStatus = NetUserModalsGet(pszServerName, dwLevel, [color=red](LPBYTE *)&pBuf);[/color] // // If the call succeeds, print the global information. // [color=red]if (nStatus == NERR_Success) { if (pBuf != NULL)[/color] { printf("\tMinimum password length: %d\n", pBuf->usrmod0_min_passwd_len); printf("\tMaximum password age (d): %d\n", pBuf->usrmod0_max_passwd_age/86400); printf("\tMinimum password age (d): %d\n", pBuf->usrmod0_min_passwd_age/86400); printf("\tForced log off time (s): %d\n", pBuf->usrmod0_force_logoff); printf("\tPassword history length: %d\n", pBuf->usrmod0_password_hist_len); } } // Otherwise, print the system error. // else fprintf(stderr, "A system error has occurred: %d\n", nStatus); // // Free the allocated memory. // [color=red]if (pBuf != NULL) NetApiBufferFree(pBuf);[/color] return 0; } Zitat:
Code:
[b]function[/b] NetUserModalsGet(Servername: LPCWSTR; Level: DWORD; [color=red][u]var[/u][/color] bufptr: Pointer): DWORD; [b]stdcall[/b]; [b]external[/b] 'Netapi32.dll';
|
Re: Mindest Passwort länge unter NT
Danke. Ich dachte, ich hätte den Pointer deklariert, so wie ich es gemacht habe. Gut, das mit dem var stimmt, das habe ich übersehen.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:34 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz