NetWkstaGetInfo-Funktion (lmwksta.h)
Die NetWkstaGetInfo-Funktion gibt Informationen zur Konfiguration einer Arbeitsstation zurück.
NET_API_STATUS NET_API_FUNCTION NetWkstaGetInfo(
[in] LMSTR servername,
[in] DWORD level,
[out] LPBYTE *bufptr
);
[in] servername
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
Gibt die Informationsebene der Daten an. Dieser Parameter kann einen der folgenden Werte annehmen.
Wert | Bedeutung |
---|---|
|
Geben Sie Informationen zur Arbeitsstationsumgebung zurück, einschließlich plattformspezifischer Informationen, des Namens der Domäne und des lokalen Computers sowie Informationen zum Betriebssystem. Der bufptr-Parameter verweist auf eine WKSTA_INFO_100-Struktur . |
|
Geben Sie zusätzlich zu den Informationen der Ebene 100 den Pfad zum LANMAN-Verzeichnis zurück. Der bufptr-Parameter verweist auf eine WKSTA_INFO_101-Struktur . |
|
Geben Sie zusätzlich zu den Informationen der Ebene 101 die Anzahl der Benutzer zurück, die auf dem lokalen Computer angemeldet sind. Der bufptr-Parameter verweist auf eine WKSTA_INFO_102-Struktur . |
[out] bufptr
Zeiger auf den Puffer, der die Daten empfängt. Das Format dieser Daten hängt vom Wert des level-Parameters ab. Dieser Puffer wird vom System zugeordnet und muss mithilfe der NetApiBufferFree-Funktion freigegeben werden. Weitere Informationen finden Sie unter Netzwerkverwaltungsfunktionspuffer und Netzwerkverwaltungsfunktionspufferlängen.
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 level-Parameter ist ungültig. |
Windows Server 2003 und Windows XP: Wenn Sie diese Funktion auf einem Domänencontroller aufrufen, auf dem Active Directory ausgeführt wird, wird der Zugriff basierend auf der ACL für das sicherungsfähige Objekt zugelassen oder verweigert. Um den anonymen Zugriff zu aktivieren, muss der Anonyme Benutzer Mitglied der Gruppe "Pre-Windows 2000-kompatibler Zugriff" sein. Dies liegt daran, dass anonyme Token standardmäßig nicht die Gruppen-SID "Jeder" enthalten. Wenn Sie diese Funktion auf einem Mitgliedsserver oder einer Arbeitsstation aufrufen, können alle authentifizierten Benutzer die Informationen anzeigen. Anonymer Zugriff ist auch zulässig, wenn die Richtlinieneinstellung EveryoneIncludesAnonymous anonymen Zugriff zulässt. Anonymer Zugriff ist immer für Ebene 100 zulässig. Wenn Sie diese Funktion auf Ebene 101 aufrufen, können authentifizierte Benutzer die Informationen anzeigen. Mitglieder der Lokalen Gruppen "Administratoren", "Server", "System" und "Druckoperator" können Informationen auf den Ebenen 102 und 502 anzeigen. Weitere Informationen zum Einschränken des anonymen Zugriffs finden Sie unter Sicherheitsanforderungen für die Netzwerkverwaltungsfunktionen. Weitere Informationen zu ACLs, ACEs und Zugriffstoken finden Sie unter Access Control Modell.
Windows 2000: 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 ermöglicht allen authentifizierten Benutzern und Mitgliedern der Gruppe " Pre-Windows 2000-kompatibler Zugriff" das Anzeigen der Informationen. Standardmäßig enthält die Gruppe "Pre-Windows 2000 compatible access" (Vor Windows 2000 kompatibler Zugriff) alle Benutzer als Mitglied. Dies ermöglicht den anonymen Zugriff auf die Informationen, wenn das System den anonymen Zugriff zulässt. Wenn Sie diese Funktion auf einem Mitgliedsserver oder einer Arbeitsstation aufrufen, können alle authentifizierten Benutzer die Informationen anzeigen. Anonymer Zugriff ist auch zulässig, wenn die Richtlinieneinstellung RestrictAnonymous anonymen Zugriff zulässt.
Um eine Anwendung zu kompilieren, die diese Funktion verwendet, definieren Sie das makro _WIN32_WINNT als 0x0400 oder höher. Weitere Informationen finden Sie unter Verwenden der Windows-Header.
Im folgenden Codebeispiel wird veranschaulicht, wie Mithilfe eines Aufrufs der NetWkstaGetInfo-Funktion Informationen zu den Konfigurationselementen für eine Arbeitsstation abgerufen werden. Im Beispiel wird NetWkstaGetInfo aufgerufen, wobei die Informationsebene 102 ( WKSTA_INFO_102) angegeben wird. Wenn der Aufruf erfolgreich ist, werden im Beispiel Informationen zur Arbeitsstation ausgegeben. Schließlich gibt das Codebeispiel den für den Informationspuffer zugeordneten Arbeitsspeicher frei.
#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 = 102;
LPWKSTA_INFO_102 pBuf = NULL;
NET_API_STATUS nStatus;
LPWSTR pszServerName = NULL;
//
// Check command line arguments.
//
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 NetWkstaGetInfo function, specifying level 102.
//
nStatus = NetWkstaGetInfo(pszServerName,
dwLevel,
(LPBYTE *)&pBuf);
//
// If the call is successful,
// print the workstation data.
//
if (nStatus == NERR_Success)
{
printf("\n\tPlatform: %d\n", pBuf->wki102_platform_id);
wprintf(L"\tName: %s\n", pBuf->wki102_computername);
printf("\tVersion: %d.%d\n", pBuf->wki102_ver_major,
pBuf->wki102_ver_minor);
wprintf(L"\tDomain: %s\n", pBuf->wki102_langroup);
wprintf(L"\tLan Root: %s\n", pBuf->wki102_lanroot);
wprintf(L"\t# Logged On Users: %d\n", pBuf->wki102_logged_on_users);
}
//
// Otherwise, indicate the system error.
//
else
fprintf(stderr, "A system error has occurred: %d\n", nStatus);
//
// Free the allocated memory.
//
if (pBuf != NULL)
NetApiBufferFree(pBuf);
return 0;
}
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 |
Übersicht über die Netzwerkverwaltung
Benutzerfunktionen für Arbeitsstationen und Arbeitsstationen