Pagina 1 di 1

Un pacchetto che verifica se una directory è presente nel profilo dell'utente

Pubblicato: 16 febbraio 2021 - 09:41
di Cantrel
Salve,

dobbiamo verificare se una directory è presente sul desktop dei computer utilizzati con un account Active Directory generico.
La directory deve trovarsi sul desktop di tale account.

Vorremmo distribuire un pacchetto sui computer interessati che restituisca un risultato nel loro audit (ad esempio, se la directory è presente o meno).

Abbiamo scritto il codice nella sezione `def audit` del pacchetto a questo scopo.

Stiamo cercando di recuperare il nome dell'utente attualmente connesso al computer per costruire il percorso di ricerca (c:\users\'nomeutente'\desktop\...).

Abbiamo provato diversi metodi, ma restituiscono il nome del computer o informazioni errate:
`os.environ['USERPROFILE']` restituisce `C:\WINDOWS\system32\config\systemprofile`, `
win32api.GetUserName()` restituisce `System`,
`os.getenv('username')` restituisce il nome del computer (ad esempio, `my-machine$`),
`getpass.getuser()` restituisce il nome del computer (ad esempio, `my-machine$`).

Sapete perché? Siamo bloccati da un po'.

Grazie.

Re: Pacchetto che controlla se una directory è presente nel profilo dell'utente

Pubblicato: 16 febbraio 2021 - 12:35
di Cantrel
Sembra che ciò derivi dal fatto che wapt utilizza l'account di sistema per eseguire le sue azioni.

Pertanto, è necessario utilizzare il componente `session_setup` per interagire con la sessione utente, ma a quanto pare non vengono registrati i log delle azioni eseguite all'interno di tale componente. Potete confermarlo?

Re: Pacchetto che controlla se una directory è presente nel profilo dell'utente

Pubblicato: 16 febbraio 2021 - 13:56
di sfontenau
Considerando ciò che si desidera fare, non è necessario eseguire un session_setup:

utilizzare l'audit:

Codice: Seleziona tutto

list_error = []
for p in get_local_profiles():
    print('Test for %s' % p['user'])
    if not isdir(makepath(p['profile_path'],'Desktop','foldertest')) :
        list_error.append( 'Error for %s folder not found' % p['user'] )

if list_error:
    print(list_error)     
    return "ERROR"
else:
    return "OK"