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
0
Gibt globale Kennwortparameter an. Der buf-Parameter verweist auf eine USER_MODALS_INFO_0-Struktur .
1
Gibt Anmeldeserver- und Domänencontrollerinformationen an. Der buf-Parameter verweist auf eine USER_MODALS_INFO_1-Struktur .
2
Gibt den Domänennamen und bezeichner an. Der buf-Parameter verweist auf eine USER_MODALS_INFO_2-Struktur .
3
Gibt Sperrinformationen an. Der buf-Parameter verweist auf eine USER_MODALS_INFO_3-Struktur .
1001
Gibt die minimal zulässige Kennwortlänge an. Der buf-Parameter verweist auf eine USER_MODALS_INFO_1001-Struktur .
1002
Gibt das maximal zulässige Kennwortalter an. Der buf-Parameter verweist auf eine USER_MODALS_INFO_1002-Struktur .
1003
Gibt das zulässige Mindestalter für Kennwörter an. Der buf-Parameter verweist auf eine USER_MODALS_INFO_1003-Struktur .
1004
Gibt Erzwungene Abmeldeinformationen an. Der buf-Parameter verweist auf eine USER_MODALS_INFO_1004-Struktur .
1005
Gibt die Länge des Kennwortverlaufs an. Der buf-Parameter verweist auf eine USER_MODALS_INFO_1005-Struktur .
1006
Gibt die Rolle des Anmeldeservers an. Der buf-Parameter verweist auf eine USER_MODALS_INFO_1006-Struktur .
1007
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
ERROR_ACCESS_DENIED
Der Benutzer besitzt keinen Zugriff auf die angeforderten Informationen.
ERROR_INVALID_PARAMETER
Der angegebene Parameter ist ungültig. Weitere Informationen finden Sie im folgenden Abschnitt "Hinweise".
NERR_InvalidComputer
Der Computername ist ungültig.
NERR_UserNotFound
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

Weitere Informationen

NetUserModalsGet

Netzwerkverwaltungsfunktionen

Übersicht über die Netzwerkverwaltung

USER_MODALS_INFO_0

USER_MODALS_INFO_1

USER_MODALS_INFO_1001

USER_MODALS_INFO_1002

USER_MODALS_INFO_1003

USER_MODALS_INFO_1004

USER_MODALS_INFO_1005

USER_MODALS_INFO_1006

USER_MODALS_INFO_1007

USER_MODALS_INFO_2

USER_MODALS_INFO_3

Benutzermodalsfunktionen