NetWkstaSetInfo-Funktion (lmwksta.h)
Die NetWkstaSetInfo-Funktion konfiguriert eine Arbeitsstation mit Informationen, die nach der erneuten Initialisierung des Systems wirksam bleiben.
Syntax
NET_API_STATUS NET_API_FUNCTION NetWkstaSetInfo(
[in] LMSTR servername,
[in] DWORD level,
[in] LPBYTE buffer,
[out] LPDWORD parm_err
);
Parameter
[in] servername
Ein Zeiger auf eine 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
Die Informationsebene der Daten. Dieser Parameter kann einen der folgenden Werte annehmen.
Wert | Bedeutung |
---|---|
|
Windows NT: Gibt Informationen zu einer Arbeitsstationsumgebung an, einschließlich plattformspezifischer Informationen, der Namen der Domäne und des lokalen Computers sowie Informationen zum Betriebssystem. Der Pufferparameter zeigt auf eine WKSTA_INFO_100 Struktur. Die felder wk100_computername und wk100_langroup dieser Struktur können nicht durch Aufrufen dieser Funktion festgelegt werden. Um diese Werte festzulegen, rufen Sie SetComputerName/SetComputerNameEx bzw . NetJoinDomain auf. |
|
Windows NT: Gibt zusätzlich zu den Informationen der Ebene 100 den Pfad zum VERZEICHNIS LANMAN an. Der Pufferparameter verweist auf eine WKSTA_INFO_101-Struktur . Die felder wk101_computername und wk101_langroup dieser Struktur können nicht durch Aufrufen dieser Funktion festgelegt werden. Um diese Werte festzulegen, rufen Sie SetComputerName/SetComputerNameEx bzw . NetJoinDomain auf. |
|
Windows NT: Gibt zusätzlich zu den Informationen der Ebene 101 die Anzahl der Benutzer an, die am lokalen Computer angemeldet sind. Der Pufferparameter verweist auf eine WKSTA_INFO_102-Struktur . Die felder wk102_computername und wk102_langroup dieser Struktur können nicht durch Aufrufen dieser Funktion festgelegt werden. Um diese Werte festzulegen, rufen Sie SetComputerName/SetComputerNameEx bzw . NetJoinDomain auf. |
|
Windows NT: Der Pufferparameter verweist auf eine WKSTA_INFO_502 Struktur, die Informationen zur Arbeitsstationsumgebung enthält. |
Legen Sie die Ebenen 1010-1013, 1018, 1023, 1027, 1028, 1032, 1033, 1035 oder 1041-1062 nicht fest.
[in] buffer
Ein Zeiger auf den Puffer, der die Daten angibt. Das Format dieser Daten hängt vom Wert des Ebenenparameters ab. Weitere Informationen finden Sie unter Netzwerkverwaltungsfunktionspuffer.
[out] parm_err
Ein Zeiger auf einen Wert, der den Index des ersten Members der Arbeitsstationsinformationsstruktur empfängt, der den ERROR_INVALID_PARAMETER Fehler verursacht. Wenn dieser Parameter NULL ist, wird der Index nicht bei einem Fehler zurückgegeben. Weitere Informationen finden Sie im Abschnitt mit Hinweisen.
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. |
|
Einer der Funktionsparameter ist ungültig. Weitere Informationen finden Sie im folgenden Abschnitt "Hinweise". |
Hinweise
Nur Mitglieder der Gruppe Administratoren können die NetWkstaSetInfo-Funktion erfolgreich auf einem Remoteserver ausführen.
Die NetWkstaSetInfo-Funktion ruft den Arbeitsstationsdienst auf dem lokalen System oder einem Remotesystem auf. Nur eine begrenzte Anzahl von Membern der WKSTA_INFO_502-Struktur kann mithilfe der NetWkstaSetInfo-Funktion tatsächlich geändert werden. Es werden keine Fehler zurückgegeben, wenn ein Element festgelegt ist, das vom Arbeitsstationsdienst ignoriert wird. Der Arbeitsstationsdienst wird in erster Linie mithilfe von Einstellungen in der Registrierung konfiguriert.
Die NetWkstaUserSetInfo-Funktion kann anstelle der NetWkstaSetInfo-Funktion verwendet werden, um Konfigurationsinformationen auf dem lokalen System festzulegen. Die NetWkstaUserSetInfo-Funktion ruft die Lokale Sicherheitsbehörde (Local Security Authority, LSA) auf.
Wenn die NetWkstaSetInfo-Funktion ERROR_INVALID_PARAMETER zurückgibt, können Sie den parameter parm_err verwenden, um das erste element der Arbeitsstationsinformationsstruktur anzugeben, das ungültig ist. (Eine Arbeitsstationsinformationsstruktur beginnt mit WKSTA_INFO_ und ihr Format wird durch den Levelparameter angegeben.) In der folgenden Tabelle sind die Werte aufgeführt, die im parm_err-Parameter zurückgegeben werden können, und dem entsprechenden Strukturmember, der fehlerhaft ist. (Das Präfix wki*_ gibt an, dass das Element mit mehreren Präfixen beginnen kann, z. B. wki100_ oder wki402_.)
Wert | Member |
---|---|
WKSTA_PLATFORM_ID_PARMNUM | wki*_platform_id |
WKSTA_COMPUTERNAME_PARMNUM | wki*_computername |
WKSTA_LANGROUP_PARMNUM | wki*_langroup |
WKSTA_VER_MAJOR_PARMNUM | wki*_ver_major |
WKSTA_VER_MINOR_PARMNUM | wki*_ver_minor |
WKSTA_LOGGED_ON_USERS_PARMNUM | wki*_logged_on_users |
WKSTA_LANROOT_PARMNUM | wki*_lanroot |
WKSTA_LOGON_DOMAIN_PARMNUM | wki*_logon_domain |
WKSTA_LOGON_SERVER_PARMNUM | wki*_logon_server |
WKSTA_CHARWAIT_PARMNUM | wki*_char_wait |
WKSTA_CHARTIME_PARMNUM | wki*_collection_time |
WKSTA_CHARCOUNT_PARMNUM | wki*_maximum_collection_count |
WKSTA_KEEPCONN_PARMNUM | wki*_keep_conn |
WKSTA_KEEPSEARCH_PARMNUM | wki*_keep_search |
WKSTA_MAXCMDS_PARMNUM | wki*_max_cmds |
WKSTA_NUMWORKBUF_PARMNUM | wki*_num_work_buf |
WKSTA_MAXWRKCACHE_PARMNUM | wki*_max_wrk_cache |
WKSTA_SESSTIMEOUT_PARMNUM | wki*_sess_timeout |
WKSTA_SIZERROR_PARMNUM | wki*_siz_error |
WKSTA_NUMALERTS_PARMNUM | wki*_num_alerts |
WKSTA_NUMSERVICES_PARMNUM | wki*_num_services |
WKSTA_ERRLOGSZ_PARMNUM | wki*_errlog_sz |
WKSTA_PRINTBUFTIME_PARMNUM | wki*_print_buf_time |
WKSTA_NUMCHARBUF_PARMNU | wki*_num_char_buf |
WKSTA_SIZCHARBUF_PARMNUM | wki*_siz_char_buf |
WKSTA_WRKHEURISTICS_PARMNUM | wki*_wrk_heuristics |
WKSTA_MAILSLOTS_PARMNUM | wki*_mailslots |
WKSTA_MAXTHREADS_PARMNUM | wki*_max_threads |
WKSTA_SIZWORKBUF_PARMNUM | wki*_siz_work_buf |
WKSTA_NUMDGRAMBUF_PARMNUM | wki*_num_dgram_buf |
Die Einstellungen für den Arbeitsstationsdienst werden in der Registrierung gespeichert, nicht in der LanMan.ini-Datei, die zuvor vom LAN-Manager verwendet wurde. Die NetWkstaSetInfo-Funktion ändert die Werte in der LanMan.ini-Datei nicht. Wenn der Arbeitsstationsdienst beendet und neu gestartet wird, werden arbeitsstationsparameter auf die in der Registrierung angegebenen Standardwerte zurückgesetzt (es sei denn, sie werden von Befehlszeilenparametern überschrieben). Werte, die durch vorherige Aufrufe von NetWkstaSetInfo festgelegt wurden, können beim Zurücksetzen von Arbeitsstationsparametern überschrieben werden.
Beispiele
Im folgenden Codebeispiel wird veranschaulicht, wie der Sitzungstimeoutwert einer Arbeitsstation mithilfe eines Aufrufs der NetServerSetInfo-Funktion festgelegt wird. (Das Sitzungstimeout ist die Anzahl der Sekunden, die der Server wartet, bevor eine inaktive Sitzung getrennt wird.) Der Code gibt die Informationsebene 502 (WKSTA_INFO_502) an.
#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[])
{
LPWKSTA_INFO_502 pBuf = NULL;
WKSTA_INFO_502 wi;
DWORD dwLevel = 502;
NET_API_STATUS nStatus;
LPWSTR pszServerName = NULL;
if ((argc < 2) || (argc > 3))
{
fwprintf(stderr, L"Usage: %s [\\\\ServerName] SessionTimeOut\n", argv[0]);
exit(1);
}
if (argc == 3)
pszServerName = argv[1];
//
// Retrieve the current settings.
//
nStatus = NetWkstaGetInfo(pszServerName,
dwLevel,
(LPBYTE *)&pBuf);
if (nStatus != NERR_Success)
{
fprintf(stderr, "A system error has occurred (NetWkstaGetInfo): %d\n", nStatus);
return -1;
}
if (pBuf != NULL)
{
//
// Copy the existing settings to the new structure,
// and free the buffer.
//
CopyMemory(&wi, pBuf, sizeof(wi));
NetApiBufferFree(pBuf);
}
else
{
fprintf(stderr, "Memory invalid!\n");
return -1;
}
//
// Set a new session time-out value by
// calling the NetWkstaSetInfo function.
//
wi.wki502_sess_timeout = _wtoi(argv[argc-1]);
nStatus = NetWkstaSetInfo(pszServerName,
dwLevel,
(LPBYTE)&wi,
NULL);
//
// Display the result of the call.
//
if (nStatus == NERR_Success)
fwprintf(stderr, L"Workstation information reset: session time-out = %d\n", _wtoi(argv[argc-1]));
else
fprintf(stderr, "A system error has occurred (NetWkstaSetInfo): %d\n", nStatus);
return 0;
}
Anforderungen
Anforderung | Wert |
---|---|
Unterstützte Mindestversion (Client) | Windows 2000 Professional [nur Desktop-Apps] |
Unterstützte Mindestversion (Server) | Windows 2000 Server [nur Desktop-Apps] |
Zielplattform | Windows |
Kopfzeile | lmwksta.h (lm.h einschließen) |
Bibliothek | Netapi32.lib |
DLL | Netapi32.dll |
Weitere Informationen
Übersicht über die Netzwerkverwaltung
Benutzerfunktionen für Arbeitsstationen und Arbeitsstationen