Página 1 de 1

Un paquete que verifica si un directorio está presente en el perfil del usuario

Publicado: 16 de febrero de 2021 - 09:41
por Cantrel
Hola,

necesitamos comprobar si existe un directorio en los escritorios de los equipos que utilizan una cuenta genérica de Active Directory.
El directorio debe estar ubicado en el escritorio de dicha cuenta.

Queremos implementar un paquete en los equipos afectados que devuelva algún resultado en su auditoría (por ejemplo, si el directorio está presente o no).

Hemos escrito el código en la sección `def audit` del paquete para este propósito.

Estamos intentando obtener el nombre del usuario que ha iniciado sesión en el equipo para construir la ruta de búsqueda (c:\users\'nombredeusuario'\desktop\...).

Sin embargo, hemos probado varios métodos, pero todos devuelven el nombre de la máquina o información incorrecta:
`os.environ['USERPROFILE']` devuelve `C:\WINDOWS\system32\config\systemprofile`, `
win32api.GetUserName()` devuelve `SystÞme`,
`os.getenv('username')` devuelve el nombre de la máquina (p. ej., `my-machine$`),
`getpass.getuser()` devuelve el nombre de la máquina (p. ej., `my-machine$`).

¿Saben por qué? Llevamos un tiempo sin encontrar la solución.

Gracias.

Re: Paquete que verifica si un directorio está presente en el perfil del usuario

Publicado: 16 de febrero de 2021 - 12:35 p. m.
por Cantrel
Parece que esto se debe a que wapt utiliza la cuenta del sistema para realizar sus acciones.

Por lo tanto, necesitamos usar el componente session_setup para interactuar con la sesión del usuario, pero aparentemente no hay registros de las acciones realizadas dentro de este componente. ¿Podría confirmarlo?

Re: Paquete que verifica si un directorio está presente en el perfil del usuario

Publicado: 16 de febrero de 2021 - 13:56
por sfonteneau
Dado lo que desea hacer, no es necesario realizar una configuración de sesión:

Utilice la auditoría:

Código: Seleccionar todo

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"