NetWkstaGetInfo 함수(lmwksta.h)

NetWkstaGetInfo 함수는 워크스테이션의 구성에 대한 정보를 반환합니다.

구문

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

매개 변수

[in] servername

함수를 실행할 원격 서버의 DNS 또는 NetBIOS 이름을 지정하는 문자열에 대한 포인터입니다. 이 매개 변수가 NULL이면 로컬 컴퓨터가 사용됩니다.

[in] level

데이터의 정보 수준을 지정합니다. 이 매개 변수는 다음 값 중 하나일 수 있습니다.

의미
100
플랫폼별 정보, 도메인 및 로컬 컴퓨터의 이름, 운영 체제 관련 정보를 포함하여 워크스테이션 환경에 대한 정보를 반환합니다. bufptr 매개 변수는 WKSTA_INFO_100 구조를 가리킵니다.
101
수준 100 정보 외에도 LANMAN 디렉터리에 대한 경로를 반환합니다. bufptr 매개 변수는 WKSTA_INFO_101 구조를 가리킵니다.
102
수준 101 정보 외에도 로컬 컴퓨터에 로그온한 사용자 수를 반환합니다. bufptr 매개 변수는 WKSTA_INFO_102 구조를 가리킵니다.

[out] bufptr

데이터를 수신하는 버퍼에 대한 포인터입니다. 이 데이터의 형식은 수준 매개 변수의 값에 따라 달라집니다. 이 버퍼는 시스템에서 할당되며 NetApiBufferFree 함수를 사용하여 해제해야 합니다. 자세한 내용은 네트워크 관리 함수 버퍼 및 네트워크관리 함수 버퍼 길이를 참조하세요.

반환 값

함수가 성공하면 반환 값이 NERR_Success.

함수가 실패하면 반환 값은 다음 오류 코드 중 하나일 수 있습니다.

반환 코드 설명
ERROR_ACCESS_DENIED
사용자는 요청한 정보에 대한 액세스 권한이 없습니다.
ERROR_INVALID_LEVEL
수준 매개 변수가 잘못되었습니다.

설명

Windows Server 2003 및 Windows XP: Active Directory를 실행하는 도메인 컨트롤러에서 이 함수를 호출하는 경우 보안 개체에 대한 ACL에 따라 액세스가 허용되거나 거부됩니다. 익명 액세스를 사용하도록 설정하려면 익명 사용자가 "Windows 2000 이전 호환 액세스" 그룹의 구성원이어야 합니다. 익명 토큰에는 기본적으로 Everyone 그룹 SID가 포함되지 않기 때문입니다. 멤버 서버 또는 워크스테이션에서 이 함수를 호출하는 경우 인증된 모든 사용자가 정보를 볼 수 있습니다. EveryoneIncludesAnonymous 정책 설정에서 익명 액세스를 허용하는 경우에도 익명 액세스가 허용됩니다. 수준 100에는 항상 익명 액세스가 허용됩니다. 수준 101에서 이 함수를 호출하면 인증된 사용자가 정보를 볼 수 있습니다. 관리자 및 서버, 시스템 및 인쇄 연산자 로컬 그룹의 구성원은 수준 102 및 502에서 정보를 볼 수 있습니다. 익명 액세스를 제한하는 방법에 대한 자세한 내용은 네트워크 관리 함수에 대한 보안 요구 사항을 참조하세요. ACL, ACL 및 액세스 토큰에 대한 자세한 내용은 Access Control 모델을 참조하세요.

Windows 2000: Active Directory를 실행하는 도메인 컨트롤러에서 이 함수를 호출하는 경우 보안 개체에 대한 ACL(액세스 제어 목록)에 따라 액세스가 허용되거나 거부됩니다. 기본 ACL은 " Windows 2000 이전 호환 액세스" 그룹의 모든 인증된 사용자와 구성원이 정보를 볼 수 있도록 허용합니다. 기본적으로 "Windows 2000 이전 호환 액세스" 그룹에는 모든 사용자가 구성원으로 포함됩니다. 이렇게 하면 시스템에서 익명 액세스를 허용하는 경우 정보에 익명으로 액세스할 수 있습니다. 멤버 서버 또는 워크스테이션에서 이 함수를 호출하는 경우 인증된 모든 사용자가 정보를 볼 수 있습니다. RestrictAnonymous 정책 설정에서 익명 액세스를 허용하는 경우에도 익명 액세스가 허용됩니다.

이 함수를 사용하는 애플리케이션을 컴파일하려면 _WIN32_WINNT 매크로를 0x0400 이상으로 정의합니다. 자세한 내용은 Windows 헤더 사용을 참조하세요.

예제

다음 코드 샘플에서는 NetWkstaGetInfo 함수 호출을 사용하여 워크스테이션의 구성 요소에 대한 정보를 검색하는 방법을 보여 줍니다. 샘플은 NetWkstaGetInfo를 호출하여 정보 수준 102( WKSTA_INFO_102)를 지정합니다. 호출이 성공하면 샘플은 워크스테이션에 대한 정보를 출력합니다. 마지막으로 코드 샘플은 정보 버퍼에 할당된 메모리를 해제합니다.

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

요구 사항

   
지원되는 최소 클라이언트 Windows 2000 Professional[데스크톱 앱만]
지원되는 최소 서버 Windows 2000 Server[데스크톱 앱만]
대상 플랫폼 Windows
헤더 lmwksta.h(Lm.h 포함)
라이브러리 Netapi32.lib
DLL Netapi32.dll

참고 항목

NetWkstaSetInfo

네트워크 관리 함수

네트워크 관리 개요

WKSTA_INFO_100

WKSTA_INFO_101

WKSTA_INFO_102

워크스테이션 및 워크스테이션 사용자 함수