[RESOLU] Vérifier si un PC est en domaine

Questions about WAPT Packaging / Requêtes et aides autour des paquets Wapt.
Règles du forum
Règles du forum communautaire
* English support on www.reddit.com/r/wapt
* Le support communautaire en français se fait sur ce forum
* Merci de préfixer le titre du topic par [RESOLU] s'il est résolu.
* Merci de ne pas modifier un topic qui est taggé [RESOLU]. Ouvrez un nouveau topic en référençant l'ancien
* Préciser version de WAPT installée, version complète ET numéro de build (2.2.1.11957 / 2.2.2.12337 / etc.) AINSI QUE l'édition Enterprise / Discovery
* Les versions 1.8.2 et antérieures ne sont plus maintenues. Les seules questions acceptées vis à vis de la version 1.8.2 sont liés à la mise à jour vers une version supportée (2.1, 2.2, etc.)
* Préciser OS du serveur (Linux / Windows) et version (Debian Buster/Bullseye - CentOS 7 - Windows Server 2012/2016/2019)
* Préciser OS de la machine d'administration/création des paquets et de la machine avec l'agent qui pose problème le cas échéant (Windows 7 / 10 / 11 / Debian 11 / etc.)
* Eviter de poser plusieurs questions lors de l'ouverture de topic, sinon il risque d'être ignorer. Si plusieurs sujet, ouvrir plusieurs topic, et de préférence les uns après les autres et pas tous en même temps (ie ne pas spammer le forum).
* Inclure directement les morceaux de code, les captures d'écran et autres images directement dans le post. Les liens vers les pastebin, les bitly et autres sites tierces seront systématiquement supprimés.
* Comme tout forum communautaire, le support est fait bénévolement par les membres. Si vous avez besoin d'un support commercial, vous pouvez contacter le service commercial Tranquil IT au 02.40.97.57.55
gaelds
Messages : 226
Inscription : 22 nov. 2015 - 08:37

16 juin 2020 - 12:21

Bonjour,
J'aimerais tester dans un paquet si un PC est joint à mon domaine ou bien en workgroup. J'avais cette fonction ci-dessous, mais ça ne convient pas car que le PC soit en workgroup avec une IP attribuée par le DHCP (du domaine) ou bien joint au domaine PEDAGO.lan, socket.getfqdn() renvoie le même nom (ex : NOMPC.PEDAGO.lan) .

Code : Tout sélectionner

def domain():
    if ("PEDAGO.lan" in socket.getfqdn()):
        dom="PEDAGO"
    else:
        print('PC en workgroup')
        dom="WG"
    return dom
Avatar de l’utilisateur
sfonteneau
Expert WAPT
Messages : 1787
Inscription : 10 juil. 2014 - 23:52
Contact :

16 juin 2020 - 14:59

Vous pouvez tenter cela !

Code : Tout sélectionner

get_domain_fromregistry()
gaelds
Messages : 226
Inscription : 22 nov. 2015 - 08:37

16 juin 2020 - 15:18

Merci mais ce n'est pas mieux... Sur un PC win10 en workgroup, avec DHCP activé, la commande me renvoie PEDAGO.lan au lieu de "Workgroup" ou rien.
Avatar de l’utilisateur
sfonteneau
Expert WAPT
Messages : 1787
Inscription : 10 juil. 2014 - 23:52
Contact :

16 juin 2020 - 18:12

Code : Tout sélectionner

import win32security
win32security.DsGetDcName()['DomainName']
ou si le test est offline:

Code : Tout sélectionner

registry_readstring(HKEY_LOCAL_MACHINE,r'SOFTWARE\Microsoft\Windows\CurrentVersion\Group Policy\History','NetworkName',None)
gaelds
Messages : 226
Inscription : 22 nov. 2015 - 08:37

17 juin 2020 - 08:42

Merci bcp ! Le test sur le registre fonctionne très bien, le premier plante si le PC est en workgroup.

Bonne journée
Gaël
gaelds
Messages : 226
Inscription : 22 nov. 2015 - 08:37

19 juin 2020 - 16:05

Oui c'est bizarre..
Mais du coup même avec le test du registre j'ai quelques mauvaises détections sur des PC qui ont été sur le domaine mais qui n'y sont plus. La valeur du registre ne doit pas être mise à jour lorsqu'ils sortent du domaine je suppose.
Avatar de l’utilisateur
sfonteneau
Expert WAPT
Messages : 1787
Inscription : 10 juil. 2014 - 23:52
Contact :

19 juin 2020 - 18:05

Oui effectivement
Verrouillé