NetServerGetInfo-Funktion (lmserver.h)
Die NetServerGetInfo-Funktion ruft aktuelle Konfigurationsinformationen für den angegebenen Server ab.
Syntax
NET_API_STATUS NET_API_FUNCTION NetServerGetInfo(
[in] LMSTR servername,
[in] DWORD level,
[out] LPBYTE *bufptr
);
Parameter
[in] servername
Zeiger auf eine Zeichenfolge, die den 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 den Servernamen und die Plattforminformationen zurück. Der bufptr-Parameter verweist auf eine SERVER_INFO_100-Struktur . |
|
Gibt den Servernamen, den Typ und die zugehörige Software zurück. Der bufptr-Parameter verweist auf eine SERVER_INFO_101-Struktur . |
|
Gibt den Servernamen, den Typ, die zugeordnete Software und andere Attribute zurück. Der parameter bufptr verweist auf eine SERVER_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.
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 für den level-Parameter angegebene Wert ist ungültig. |
|
Der angegebene Parameter ist ungültig. |
|
Nicht genügend Arbeitsspeicher ist verfügbar. |
|
Der Serverdienst wird nicht gestartet. |
Hinweise
Nur die lokale Gruppe "Administratoren" oder "Serveroperatoren" kann die NetServerGetInfo-Funktion auf Ebene 102 erfolgreich ausführen. Für Anrufe der Stufe 100 oder Stufe 101 ist keine spezielle Gruppenmitgliedschaft erforderlich.
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 Netzwerkverwaltungsserverfunktionen erreichen können. Weitere Informationen finden Sie unter IADsComputer.
Beispiele
Im folgenden Codebeispiel wird veranschaulicht, wie aktuelle Konfigurationsinformationen für einen Server mithilfe eines Aufrufs der NetServerGetInfo-Funktion abgerufen werden. Im Beispiel wird NetServerGetInfo aufgerufen, wobei die Informationsebene 101 (SERVER_INFO_101) angegeben wird. Wenn der Aufruf erfolgreich ist, versucht der Code, den Servertyp zu identifizieren. Schließlich gibt das Beispiel 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 = 101;
LPSERVER_INFO_101 pBuf = NULL;
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];
//
// Call the NetServerGetInfo function, specifying level 101.
//
nStatus = NetServerGetInfo(pszServerName,
dwLevel,
(LPBYTE *)&pBuf);
//
// If the call succeeds,
//
if (nStatus == NERR_Success)
{
//
// Check for the type of server.
//
if ((pBuf->sv101_type & SV_TYPE_DOMAIN_CTRL) ||
(pBuf->sv101_type & SV_TYPE_DOMAIN_BAKCTRL) ||
(pBuf->sv101_type & SV_TYPE_SERVER_NT))
printf("This is a server\n");
else
printf("This is a workstation\n");
}
//
// Otherwise, print 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 | lmserver.h (lm.h einschließen) |
Bibliothek | Netapi32.lib |
DLL | Netapi32.dll |