Page 1 sur 1

[RESOLU] Ajout utilisateur dans groupe local

Publié : 09 nov. 2022 - 12:13
par Mathieu
Bonjour,
Je rencontre un souci avec une commande pour ajouter l’utilisateur dans un groupe Local en audit.

Code : Tout sélectionner

2022-11-08 09:44:33,484 CRITICAL Fatal error in audit function: TypeError: 'error' object is not subscriptable:
Traceback (most recent call last):
  File "C:\Program Files (x86)\wapt\setuphelpers_windows.py", line 2264, in add_user_to_group
    win32net.NetLocalGroupAddMembers(None, group, 3, [user_group_info])
pywintypes.error: (1378, 'NetLocalGroupAddMembers', 'Le nom de compte spécifié est déjà membre du groupe.')

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "C:\Program Files (x86)\wapt\waptpackage.py", line 2978, in call_setup_hook
    hookdata = hook_func()
  File "C:\waptdev\futur-Creation_Profil_2.0-60_windows_PREPROD-wapt\setup.py", line 79, in audit
    add_user_to_group(user, "Utilisateurs avec pouvoir")
  File "C:\Program Files (x86)\wapt\setuphelpers_windows.py", line 2267, in add_user_to_group
    if e[0] != 1378:
TypeError: 'error' object is not subscriptable

Audit aborted due to exception: 'error' object is not subscriptable
Je me retrouve avec une erreur lorsque l’utilisateur est déjà présent dans le groupe, il ne rentre pas dans la 1ére condition, il essaie de l’ajouté. D’où l’erreur

Voici le bout de script en question :

Code : Tout sélectionner

user = registry_readstring(HKEY_LOCAL_MACHINE, "SOFTWARE\Microsoft\Windows\CurrentVersion\Authentication\LogonUI", "LastLoggedOnUser")

if user in local_group_members("Utilisateurs avec pouvoir"):
        print("Utilisateur déjà dans le groupe Utilisateurs avec pouvoir")
elif user not in local_group_members("Utilisateurs avec pouvoir"):
        print("Utilisateurs pas de le groupe Power Users")
        add_user_to_group(user, "Utilisateurs avec pouvoir")
je vous remercie

Re: Ajout utilisateur dans groupe local

Publié : 09 nov. 2022 - 17:46
par dcardon
Bonjour Mathieu,

ah oui, c'est un bug que l'on a loupé dans le passage python2 python3... Tu peux rajouter la fonction suivante à ton paquet pour overloader ton setup.py avec le def de fonction ci-après. Ca sera corrigé dans la prochaine version.

Cordialement,

Denis

Code : Tout sélectionner

def add_user_to_group(user, group):
    """Add membership to a local group for a user

    """
    user_group_info = dict(
        domainandname=user
    )
    try:
        win32net.NetLocalGroupAddMembers(None, group, 3, [user_group_info])
    except win32net.error as e:
        # pass if already member of the group
        if e.winerror != 1378:
            raise
        else:
            logger.debug('add_user_to_group %s %s : %s' % (user, group, ensure_unicode(e)))

Re: Ajout utilisateur dans groupe local

Publié : 16 nov. 2022 - 10:44
par dcardon
Je passe le sujet en résolu.
Denis