Función NetWkstaGetInfo (lmwksta.h)

La función NetWkstaGetInfo devuelve información sobre la configuración de una estación de trabajo.

Sintaxis

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

Parámetros

[in] servername

Puntero a una cadena que especifica el nombre DNS o NetBIOS 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
100
Devuelve información sobre el entorno de estación de trabajo, incluida la información específica de la plataforma, el nombre del dominio y el equipo local, y la información relativa al sistema operativo. El parámetro bufptr apunta a una estructura WKSTA_INFO_100 .
101
Además de la información de nivel 100, devuelva la ruta de acceso al directorio LANMAN. El parámetro bufptr apunta a una estructura de WKSTA_INFO_101 .
102
Además de la información de nivel 101, devuelva el número de usuarios que han iniciado sesión en el equipo local. El parámetro bufptr apunta a una estructura WKSTA_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 . Para obtener más información, consulte Búferes de funciones de administración de red y longitudes de búfer de funciones de administración de red.

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
ERROR_ACCESS_DENIED
El usuario no tiene acceso a la información pedida.
ERROR_INVALID_LEVEL
El parámetro level no es válido.

Comentarios

Windows Server 2003 y Windows XP: Si llama a esta función en un controlador de dominio que ejecuta Active Directory, se permite o se deniega el acceso en función de la ACL para el objeto protegible. Para habilitar el acceso anónimo, el usuario Anónimo debe ser miembro del grupo "Acceso compatible con Pre-Windows 2000". Esto se debe a que los tokens anónimos no incluyen el SID del grupo Todos de forma predeterminada. Si llama a esta función en un servidor miembro o estación de trabajo, todos los usuarios autenticados pueden ver la información. También se permite el acceso anónimo si la configuración de directiva EveryoneIncludesAnonymous permite el acceso anónimo. El acceso anónimo siempre se permite para el nivel 100. Si llama a esta función en el nivel 101, los usuarios autenticados pueden ver la información. Los miembros de los administradores y los grupos locales Servidor, Operador de sistema e impresión pueden ver información en los niveles 102 y 502. Para obtener más información sobre cómo restringir el acceso anónimo, consulte Requisitos de seguridad para las funciones de administración de red. Para obtener más información sobre las ACL, los ACL y los tokens de acceso, consulte Access Control Model.

Windows 2000: Si llama a esta función en un controlador de dominio que ejecuta Active Directory, se permite o se deniega el acceso en función de la lista de control de acceso (ACL) para el objeto protegible. La ACL predeterminada permite que todos los usuarios y miembros autenticados del grupo " Acceso compatible anterior a Windows 2000" puedan ver la información. De forma predeterminada, el grupo "Acceso compatible con Pre-Windows 2000" incluye Todos como miembro. Esto permite el acceso anónimo a la información si el sistema permite el acceso anónimo. Si llama a esta función en un servidor miembro o estación de trabajo, todos los usuarios autenticados pueden ver la información. También se permite el acceso anónimo si la configuración de directiva RestrictAnonymous permite el acceso anónimo.

Para compilar una aplicación que use esta función, defina la macro _WIN32_WINNT como 0x0400 o posterior. Para obtener más información, vea Uso de los encabezados de Windows.

Ejemplos

En el ejemplo de código siguiente se muestra cómo recuperar información sobre los elementos de configuración de una estación de trabajo mediante una llamada a la función NetWkstaGetInfo . El ejemplo llama a NetWkstaGetInfo, especificando el nivel de información 102 ( WKSTA_INFO_102). Si la llamada se realiza correctamente, el ejemplo imprime información sobre la estación de trabajo. Por último, el ejemplo de código 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 = 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;
}

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 lmwksta.h (include Lm.h)
Library Netapi32.lib
Archivo DLL Netapi32.dll

Consulte también

NetWkstaSetInfo

Funciones de administración de red

Introducción a la administración de redes

WKSTA_INFO_100

WKSTA_INFO_101

WKSTA_INFO_102

Funciones de usuario de estación de trabajo y estación de trabajo