NetWkstaGetInfo-Funktion (lmwksta.h)

Die NetWkstaGetInfo-Funktion gibt Informationen zur Konfiguration einer Arbeitsstation zurück.

Syntax

NET_API_STATUS NET_API_FUNCTION NetWkstaGetInfo(
  [in]  LMSTR  servername,
  [in]  DWORD  level,
  [out] LPBYTE *bufptr
);

Parameter

[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
100
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 .
101
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 .
102
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.

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_LEVEL
Der level-Parameter ist ungültig.

Hinweise

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.

Beispiele

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;
}

Anforderungen

   
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

NetWkstaSetInfo

Netzwerkverwaltungsfunktionen

Übersicht über die Netzwerkverwaltung

WKSTA_INFO_100

WKSTA_INFO_101

WKSTA_INFO_102

Benutzerfunktionen für Arbeitsstationen und Arbeitsstationen