Pagina 1 di 1

[RISOLTO] Aggiunta di un utente al gruppo locale

Pubblicato: 9 novembre 2022 - 12:13
di Mathieu
Buongiorno,
Ho problemi con un comando per aggiungere l'utente a un gruppo locale durante l'audit.

Codice: Seleziona tutto

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
Ricevo un errore quando l'utente è già nel gruppo; non soddisfa la prima condizione e il sistema tenta di aggiungerlo. Da qui l'errore

Ecco il frammento di script pertinente:

Codice: Seleziona tutto

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")
Grazie

Oggetto: Aggiunta di un utente a un gruppo locale

Pubblicato: 9 novembre 2022 - 17:46
di dcardon
Ciao Mathieu,

Ah sì, è un bug che ci è sfuggito durante la transizione da Python 2 a Python 3... Puoi aggiungere la seguente funzione al tuo pacchetto per sovrascrivere setup.py con la definizione di funzione qui sotto. Verrà corretto nella prossima versione.

Sinceramente,

Denis

Codice: Seleziona tutto

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)))

Oggetto: Aggiunta di un utente a un gruppo locale

Pubblicato: 16 novembre 2022 - 10:44
di dcardon
Contrassegno questo problema come risolto.
Denis