Función NetServerGetInfo (lmserver.h)
La función NetServerGetInfo recupera la información de configuración actual del servidor especificado.
Sintaxis
NET_API_STATUS NET_API_FUNCTION NetServerGetInfo(
[in] LMSTR servername,
[in] DWORD level,
[out] LPBYTE *bufptr
);
Parámetros
[in] servername
Puntero a una cadena que especifica el nombre del servidor remoto en el que se va a ejecutar la función. Si este parámetro es NULL, se usa el equipo local.
[in] level
Especifica el nivel de información de los datos. Este parámetro puede ser uno de los valores siguientes.
Valor | Significado |
---|---|
|
Devuelve el nombre del servidor y la información de la plataforma. El parámetro bufptr apunta a una estructura SERVER_INFO_100 . |
|
Devuelve el nombre del servidor, el tipo y el software asociado. El parámetro bufptr apunta a una estructura de SERVER_INFO_101 . |
|
Devuelve el nombre del servidor, el tipo, el software asociado y otros atributos. El parámetro bufptr apunta a una estructura SERVER_INFO_102 . |
[out] bufptr
Puntero al búfer que recibe los datos. El formato de estos datos depende del valor del parámetro level .
El sistema asigna este búfer y debe liberarse mediante la función NetApiBufferFree .
Valor devuelto
Si la función se ejecuta correctamente, el valor devuelto se NERR_Success.
Si se produce un error en la función, el valor devuelto puede ser uno de los siguientes códigos de error.
Código devuelto | Descripción |
---|---|
|
El usuario no tiene acceso a la información pedida. |
|
El valor especificado para el parámetro level no es válido. |
|
El parámetro especificado no es válido. |
|
Memoria insuficiente disponible. |
|
El servicio de servidor no se inicia. |
Comentarios
Solo los grupos locales Administradores o Operadores de servidor, o los que tienen pertenencia al grupo De operadores de impresión o servidor, pueden ejecutar correctamente la función NetServerGetInfo en el nivel 102. No se requiere ninguna pertenencia especial a grupos para las llamadas de nivel 100 o nivel 101.
Si está programando para Active Directory, puede llamar a determinados métodos de interfaz de servicio de Active Directory (ADSI) para lograr la misma funcionalidad que puede lograr llamando a las funciones del servidor de administración de red. Para obtener más información, consulte IADsComputer.
Ejemplos
En el ejemplo de código siguiente se muestra cómo recuperar la información de configuración actual de un servidor mediante una llamada a la función NetServerGetInfo . El ejemplo llama a NetServerGetInfo, especificando el nivel de información 101 (SERVER_INFO_101). Si la llamada se realiza correctamente, el código intenta identificar el tipo de servidor. Por último, el ejemplo libera la memoria asignada para el búfer de información.
#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;
}
Requisitos
Cliente mínimo compatible | Windows 2000 Professional [solo aplicaciones de escritorio] |
Servidor mínimo compatible | Windows 2000 Server [solo aplicaciones de escritorio] |
Plataforma de destino | Windows |
Encabezado | lmserver.h (include Lm.h) |
Library | Netapi32.lib |
Archivo DLL | Netapi32.dll |
Consulte también
Funciones de administración de red