Obtenir le nom de domaine d'un ordinateur à partir de l'API Windows
Dans mon application, j'ai besoin de savoir si l'ordinateur est le contrôleur principal de domaine d'un domaine, donc j'ai besoin de connaître le domaine de l'ordinateur à l'appel de fonction NetGetDCName.
Grâce.
EDIT: Le problème est lié à l'authentification DCOM j'ai donc besoin de connaître le domaine d'utilisation du DOMAINE\nom d'utilisateur dans le cas d'un contrôleur de domaine principal ou de l'ORDINATEUR\nom d'utilisateur si j'ai besoin d'utiliser l'authentification locale de la base de données de l'ordinateur.
C++ et WinAPI tags encore édité pour rendre non-reliés à la programmation?
Il ne semble pas être de programmation relative, juste une question très simple qui pourrait être confondu avec pas de programmation relative.
J'ai besoin d'obtenir le nom à l'aide de winapi, de sorte que la programmation est liée. Je pense :s
Balise supprimée. Je ne peux pas encore de modifier la question de la chair, et c'est un peu frustrant...
De façon pragmatique, c'est sympa, mais je préfère le faire par programmation. 🙂
Il ne semble pas être de programmation relative, juste une question très simple qui pourrait être confondu avec pas de programmation relative.
J'ai besoin d'obtenir le nom à l'aide de winapi, de sorte que la programmation est liée. Je pense :s
Balise supprimée. Je ne peux pas encore de modifier la question de la chair, et c'est un peu frustrant...
De façon pragmatique, c'est sympa, mais je préfère le faire par programmation. 🙂
OriginalL'auteur Jesus Fernandez | 2009-05-18
Vous devez vous connecter pour publier un commentaire.
Je voudrais envisager d'utiliser NetWkstaGetInfo() et passer le nom de l'ordinateur local est que premier paramètre.
OriginalL'auteur i_am_jorf
La
NetWkstaGetInfo()
fonction retourne le nom de domaine ou le groupe de travail de l'ordinateur, et n'est donc pas un moyen fiable de déterminer si l'ordinateur est membre d'un domaine.La
GetComputerNameEx()
fonction aide, utilisé avec leComputerNameDnsDomain
paramètre, comme illustré ci-dessous. Ceci renvoie une chaîne vide si l'ordinateur est dans un groupe de travail, ou le nom DNS du domaine:OriginalL'auteur chrfrenning
Vous pouvez utiliser le NetWkstaGetInfo Fonction de ce faire.
Si vous passez dans la valeur null pour le nom de l'ordinateur, il renvoie des informations sur l'ordinateur local.
Il sera de retour une
WKSTA_INFO_100
exemple, qui inclut le nom de domaine.OriginalL'auteur Scott Wisniewski
Si vous voulez simplement savoir si la machine le code est en cours d'exécution est le contrôleur principal de domaine, je pense que votre meilleure option est NetServerGetInfo. Si vous passer 101 comme le niveau paramètre renvoie une Que server_info_101 structure. Ensuite, regardez pour son sv101_type membre:
OriginalL'auteur Rômulo Ceccon
Il y a une fonction spécifique pour déterminer la jointure statut d'un poste de travail.
https://docs.microsoft.com/en-gb/windows/desktop/api/lmjoin/nf-lmjoin-netgetjoininformation
Il peut y avoir 3 statussus, 'Rejoint' à un groupe de travail (Le bon vieux Windows 3.0 mise en réseau) status == NetSetupWorkgroupName, ou joint à un domaine status == NetSetupDomainName
ou non (autonome) status == NetSetupUnjoined
Donc, si vous savez cela, vous pouvez appeler le respectifs fonctions requises de manière fiable.
OriginalL'auteur Egbert Nierop
Enfin, j'ai utilisé ce code. Il fonctionne sur la machine locale, exécuté à distance nStatus donne un ACCESS_DENIED erreur.
Merci à tous 🙂
OriginalL'auteur Jesus Fernandez