NetUserModalsSet-Funktion (lmaccess.h)
Die NetUserModalsSet-Funktion legt globale Informationen für alle Benutzer und globalen Gruppen in der Sicherheitsdatenbank fest, bei der es sich um die SAM-Datenbank (Security Accounts Manager) oder im Fall von Domänencontrollern um die Active Directory-Datenbank handelt.
Syntax
NET_API_STATUS NET_API_FUNCTION NetUserModalsSet(
[in] LPCWSTR servername,
[in] DWORD level,
[in] LPBYTE buf,
[out] LPDWORD parm_err
);
Parameter
[in] servername
Zeiger auf eine konstante Zeichenfolge, die den DNS- oder NetBIOS-Namen des Remoteservers angibt, auf dem die Funktion ausgeführt werden soll. Wenn dieser Parameter NULL ist, wird der lokale Computer verwendet.
[in] level
Gibt die Informationsebene der Daten an. Dieser Parameter kann einen der folgenden Werte annehmen.
Wert | Bedeutung |
---|---|
|
Gibt globale Kennwortparameter an. Der buf-Parameter verweist auf eine USER_MODALS_INFO_0-Struktur . |
|
Gibt Anmeldeserver- und Domänencontrollerinformationen an. Der buf-Parameter verweist auf eine USER_MODALS_INFO_1-Struktur . |
|
Gibt den Domänennamen und bezeichner an. Der buf-Parameter verweist auf eine USER_MODALS_INFO_2-Struktur . |
|
Gibt Sperrinformationen an. Der buf-Parameter verweist auf eine USER_MODALS_INFO_3-Struktur . |
|
Gibt die minimal zulässige Kennwortlänge an. Der buf-Parameter verweist auf eine USER_MODALS_INFO_1001-Struktur . |
|
Gibt das maximal zulässige Kennwortalter an. Der buf-Parameter verweist auf eine USER_MODALS_INFO_1002-Struktur . |
|
Gibt das zulässige Mindestalter für Kennwörter an. Der buf-Parameter verweist auf eine USER_MODALS_INFO_1003-Struktur . |
|
Gibt Erzwungene Abmeldeinformationen an. Der buf-Parameter verweist auf eine USER_MODALS_INFO_1004-Struktur . |
|
Gibt die Länge des Kennwortverlaufs an. Der buf-Parameter verweist auf eine USER_MODALS_INFO_1005-Struktur . |
|
Gibt die Rolle des Anmeldeservers an. Der buf-Parameter verweist auf eine USER_MODALS_INFO_1006-Struktur . |
|
Gibt Domänencontrollerinformationen an. Der buf-Parameter verweist auf eine USER_MODALS_INFO_1007-Struktur . |
[in] buf
Zeiger auf den Puffer, der die Daten angibt. Das Format dieser Daten hängt vom Wert des level-Parameters ab. Weitere Informationen finden Sie unter Netzwerkverwaltungsfunktionspuffer.
[out] parm_err
Zeiger auf einen Wert, der den Index des ersten Elements der Informationsstruktur empfängt, der ERROR_INVALID_PARAMETER verursacht. Wenn dieser Parameter NULL ist, wird der Index nicht bei einem Fehler zurückgegeben. Weitere Informationen finden Sie im folgenden Abschnitt "Hinweise".
Rückgabewert
Wenn die Funktion erfolgreich ist, wird der Rückgabewert NERR_Success.
Wenn die Funktion fehlschlägt, kann der Rückgabewert einer der folgenden Fehlercodes sein.
Rückgabecode | Beschreibung |
---|---|
|
Der Benutzer besitzt keinen Zugriff auf die angeforderten Informationen. |
|
Der angegebene Parameter ist ungültig. Weitere Informationen finden Sie im folgenden Abschnitt "Hinweise". |
|
Der Computername ist ungültig. |
|
Der Benutzername konnte nicht gefunden werden. |
Hinweise
Wenn Sie für Active Directory programmieren, können Sie möglicherweise bestimmte ADSI-Methoden (Active Directory Service Interface) aufrufen, um die gleiche Funktionalität zu erreichen, die Sie durch Aufrufen der modalen Funktionen des Benutzerbenutzers für die Netzwerkverwaltung erreichen können. Weitere Informationen finden Sie unter IADsDomain.
Wenn Sie diese Funktion auf einem Domänencontroller aufrufen, auf dem Active Directory ausgeführt wird, wird der Zugriff basierend auf der Zugriffssteuerungsliste (Access Control List, ACL) für das sicherungsfähige Objekt zugelassen oder verweigert. Die Standard-ACL erlaubt nur Domänenadministratoren und Kontooperatoren, diese Funktion aufzurufen. Auf einem Mitgliedsserver oder einer Arbeitsstation können nur Administratoren und Power Users diese Funktion aufrufen. Weitere Informationen finden Sie unter Sicherheitsanforderungen für die Netzwerkverwaltungsfunktionen. Weitere Informationen zu ACLs, ACEs und Zugriffstoken finden Sie unter Access Control Modell.
Der Sicherheitsdeskriptor des Domain-Objekts wird verwendet, um die Zugriffsüberprüfung für diese Funktion durchzuführen. In der Regel müssen Aufrufer Schreibzugriff auf das gesamte Objekt haben, damit Aufrufe dieser Funktion erfolgreich sind.
Wenn die NetUserModalsSet-Funktion ERROR_INVALID_PARAMETER zurückgibt, können Sie den parameter parm_err verwenden, um den ersten ungültigen Member der Informationsstruktur anzugeben. (Die Informationsstruktur beginnt mit USER_MODALS_INFO_, und ihr Format wird durch den level-Parameter angegeben.) In der folgenden Tabelle sind die Werte aufgeführt, die im parameter parm_err zurückgegeben werden können, und dem entsprechenden Strukturmember, der fehlerhaft ist. (Das Präfix usrmod*_ gibt an, dass der Member mit mehreren Präfixen beginnen kann, z. B. usrmod2_ oder usrmod1002_.)
Wert | Member |
---|---|
MODALS_MIN_PASSWD_LEN_PARMNUM | usrmod*_min_passwd_len |
MODALS_MAX_PASSWD_AGE_PARMNUM | usrmod*_max_passwd_age |
MODALS_MIN_PASSWD_AGE_PARMNUM | usrmod*_min_passwd_age |
MODALS_FORCE_LOGOFF_PARMNUM | usrmod*_force_logoff |
MODALS_PASSWD_HIST_LEN_PARMNUM | usrmod*_password_hist_len |
MODALS_ROLE_PARMNUM | usrmod*_role |
MODALS_PRIMARY_PARMNUM | usrmod*_primary |
MODALS_DOMAIN_NAME_PARMNUM | usrmod*_domain_name |
MODALS_DOMAIN_ID_PARMNUM | usrmod*_domain_id |
MODALS_LOCKOUT_DURATION_PARMNUM | usrmod*_lockout_duration |
MODALS_LOCKOUT_OBSERVATION_WINDOW_PARMNUM | usrmod*_lockout_observation_window |
MODALS_LOCKOUT_THRESHOLD_PARMNUM | usrmod*_lockout_threshold |
Beispiele
Im folgenden Codebeispiel wird veranschaulicht, wie die globalen Informationen für alle Benutzer und globalen Gruppen mit einem Aufruf der NetUserModalsSet-Funktion festgelegt werden . Das Beispiel füllt die Member der USER_MODALS_INFO_0-Struktur aus und ruft NetUserModalsSet auf, wobei die Informationsebene 0 angegeben wird.
#ifndef UNICODE
#define UNICODE
#endif
#pragma comment(lib, "netapi32.lib")
#include <stdio.h>
#include <windows.h>
#include <lm.h>
int wmain(int argc, wchar_t *argv[])
{
DWORD dwLevel = 0;
USER_MODALS_INFO_0 ui;
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 = (LPTSTR) argv[1];
//
// Fill in the USER_MODALS_INFO_0 structure.
//
ui.usrmod0_min_passwd_len = 0;
ui.usrmod0_max_passwd_age = (86400 * 30);
ui.usrmod0_min_passwd_age = 0;
ui.usrmod0_force_logoff = TIMEQ_FOREVER; // never force logoff
ui.usrmod0_password_hist_len = 0;
//
// Call the NetUserModalsSet function; specify level 0.
//
nStatus = NetUserModalsSet((LPCWSTR) pszServerName,
dwLevel,
(LPBYTE)&ui,
NULL);
//
// If the call succeeds, inform the user.
//
if (nStatus == NERR_Success)
fwprintf(stderr, L"Modals information set successfully on %s\n", argv[1]);
//
// Otherwise, print the system error.
//
else
fprintf(stderr, "A system error has occurred: %d\n", nStatus);
return 0;
}
Anforderungen
Unterstützte Mindestversion (Client) | Windows 2000 Professional [nur Desktop-Apps] |
Unterstützte Mindestversion (Server) | Windows 2000 Server [nur Desktop-Apps] |
Zielplattform | Windows |
Kopfzeile | lmaccess.h (lm.h einschließen) |
Bibliothek | Netapi32.lib |
DLL | Netapi32.dll |