NetServerGetInfo, fonction (lmserver.h)
La fonction NetServerGetInfo récupère les informations de configuration actuelles pour le serveur spécifié.
Syntaxe
NET_API_STATUS NET_API_FUNCTION NetServerGetInfo(
[in] LMSTR servername,
[in] DWORD level,
[out] LPBYTE *bufptr
);
Paramètres
[in] servername
Pointeur vers une chaîne qui spécifie le nom du serveur distant sur lequel la fonction doit s’exécuter. Si ce paramètre a la valeur NULL, l’ordinateur local est utilisé.
[in] level
Spécifie le niveau d’informations des données. Ce paramètre peut prendre les valeurs suivantes.
Valeur | Signification |
---|---|
|
Retourne le nom du serveur et les informations de plateforme. Le paramètre bufptr pointe vers une structure SERVER_INFO_100 . |
|
Retourne le nom du serveur, le type et le logiciel associé. Le paramètre bufptr pointe vers une structure SERVER_INFO_101 . |
|
Retourne le nom du serveur, le type, le logiciel associé et d’autres attributs. Le paramètre bufptr pointe vers une structure SERVER_INFO_102 . |
[out] bufptr
Pointeur vers la mémoire tampon qui reçoit les données. Le format de ces données dépend de la valeur du paramètre level .
Cette mémoire tampon est allouée par le système et doit être libérée à l’aide de la fonction NetApiBufferFree .
Valeur retournée
Si la fonction réussit, la valeur de retour est NERR_Success.
Si la fonction échoue, la valeur de retour peut être l’un des codes d’erreur suivants.
Code de retour | Description |
---|---|
|
L’utilisateur n’a pas accès aux informations demandées. |
|
La valeur spécifiée pour le paramètre level n’est pas valide. |
|
Le paramètre spécifié n’est pas valide. |
|
La mémoire disponible est insuffisante. |
|
Le service serveur n’est pas démarré. |
Notes
Seuls le groupe local Administrateurs ou Opérateurs de serveur, ou ceux qui ont une appartenance au groupe d’opérateurs de serveur ou d’impression, peut exécuter correctement la fonction NetServerGetInfo au niveau 102. Aucune appartenance de groupe spéciale n’est requise pour les appels de niveau 100 ou 101.
Si vous programmez pour Active Directory, vous pouvez peut-être appeler certaines méthodes ADSI (Active Directory Service Interface) pour obtenir les mêmes fonctionnalités que celles que vous pouvez obtenir en appelant les fonctions du serveur d’administration réseau. Pour plus d’informations, consultez IADsComputer.
Exemples
L’exemple de code suivant montre comment récupérer les informations de configuration actuelles d’un serveur à l’aide d’un appel à la fonction NetServerGetInfo . L’exemple appelle NetServerGetInfo, en spécifiant le niveau d’informations 101 (SERVER_INFO_101). Si l’appel réussit, le code tente d’identifier le type de serveur. Enfin, l’exemple libère la mémoire allouée pour la mémoire tampon d’informations.
#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;
}
Spécifications
Client minimal pris en charge | Windows 2000 Professionnel [applications de bureau uniquement] |
Serveur minimal pris en charge | Windows 2000 Server [applications de bureau uniquement] |
Plateforme cible | Windows |
En-tête | lmserver.h (include Lm.h) |
Bibliothèque | Netapi32.lib |
DLL | Netapi32.dll |