Função NetWkstaGetInfo (lmwksta.h)
A função NetWkstaGetInfo retorna informações sobre a configuração de uma estação de trabalho.
Sintaxe
NET_API_STATUS NET_API_FUNCTION NetWkstaGetInfo(
[in] LMSTR servername,
[in] DWORD level,
[out] LPBYTE *bufptr
);
Parâmetros
[in] servername
Ponteiro para uma cadeia de caracteres que especifica o nome DNS ou NetBIOS do servidor remoto no qual a função deve ser executada. Se esse parâmetro for NULL, o computador local será usado.
[in] level
Especifica o nível de informações dos dados. Esse parâmetro pode usar um dos valores a seguir.
Valor | Significado |
---|---|
|
Retornar informações sobre o ambiente de estação de trabalho, incluindo informações específicas da plataforma, o nome do domínio e o computador local e informações sobre o sistema operacional. O parâmetro bufptr aponta para uma estrutura WKSTA_INFO_100 . |
|
Além das informações de nível 100, retorne o caminho para o diretório LANMAN. O parâmetro bufptr aponta para uma estrutura WKSTA_INFO_101 . |
|
Além das informações de nível 101, retorne o número de usuários que estão conectados ao computador local. O parâmetro bufptr aponta para uma estrutura WKSTA_INFO_102 . |
[out] bufptr
Ponteiro para o buffer que recebe os dados. O formato desses dados depende do valor do parâmetro level . Esse buffer é alocado pelo sistema e deve ser liberado usando a função NetApiBufferFree . Para obter mais informações, consulte Buffers de função de gerenciamento de rede e Comprimentos de buffer de função de gerenciamento de rede.
Valor retornado
Se a função for bem-sucedida, o valor retornado será NERR_Success.
Se a função falhar, o valor retornado poderá ser um dos códigos de erro a seguir.
Código de retorno | Descrição |
---|---|
|
O usuário não tem acesso às informações solicitadas. |
|
O parâmetro de nível é inválido. |
Comentários
Windows Server 2003 e Windows XP: Se você chamar essa função em um controlador de domínio que esteja executando o Active Directory, o acesso será permitido ou negado com base na ACL do objeto protegível. Para habilitar o acesso anônimo, o usuário Anônimo deve ser membro do grupo "Acesso compatível com o Pré-Windows 2000". Isso ocorre porque os tokens anônimos não incluem o SID do grupo Todos por padrão. Se você chamar essa função em um servidor membro ou estação de trabalho, todos os usuários autenticados poderão exibir as informações. O acesso anônimo também será permitido se a configuração de política EveryoneIncludesAnonymous permitir acesso anônimo. O acesso anônimo é sempre permitido para o nível 100. Se você chamar essa função no nível 101, os usuários autenticados poderão exibir as informações. Os membros dos administradores e os grupos locais Servidor, Sistema e Operador de Impressão podem exibir informações nos níveis 102 e 502. Para obter mais informações sobre como restringir o acesso anônimo, consulte Requisitos de segurança para as funções de gerenciamento de rede. Para obter mais informações sobre ACLs, ACEs e tokens de acesso, consulte Controle de Acesso Model.
Windows 2000: Se você chamar essa função em um controlador de domínio que está executando o Active Directory, o acesso será permitido ou negado com base na ACL (lista de controle de acesso) do objeto protegível. A ACL padrão permite que todos os usuários autenticados e membros do grupo " Acesso compatível com o Pré-Windows 2000" exibam as informações. Por padrão, o grupo "Acesso compatível com o Pré-Windows 2000" inclui Todos como membro. Isso habilitará o acesso anônimo às informações se o sistema permitir acesso anônimo. Se você chamar essa função em um servidor membro ou estação de trabalho, todos os usuários autenticados poderão exibir as informações. O acesso anônimo também será permitido se a configuração de política RestrictAnonymous permitir acesso anônimo.
Para compilar um aplicativo que usa essa função, defina a macro _WIN32_WINNT como 0x0400 ou posterior. Para obter mais informações, consulte Usando os cabeçalhos do Windows.
Exemplos
O exemplo de código a seguir demonstra como recuperar informações sobre os elementos de configuração de uma estação de trabalho usando uma chamada para a função NetWkstaGetInfo . O exemplo chama NetWkstaGetInfo, especificando o nível de informações 102 ( WKSTA_INFO_102). Se a chamada for bem-sucedida, o exemplo imprimirá informações sobre a estação de trabalho. Por fim, o exemplo de código libera a memória alocada para o buffer de informações.
#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 com suporte | Windows 2000 Professional [somente aplicativos da área de trabalho] |
Servidor mínimo com suporte | Windows 2000 Server [somente aplicativos da área de trabalho] |
Plataforma de Destino | Windows |
Cabeçalho | lmwksta.h (inclua Lm.h) |
Biblioteca | Netapi32.lib |
DLL | Netapi32.dll |
Confira também
Funções de gerenciamento de rede
Visão geral do gerenciamento de rede
Funções de usuário de estação de trabalho e estação de trabalho