¿De dónde obtiene sysdm.cpl,EditUserProfiles los datos?

¿De dónde obtiene sysdm.cpl,EditUserProfiles los datos?

Al ejecutar este comando rundll32 sysdm.cpl,EditUserProfilesse mostrará la ventana 'Perfiles de usuario' que muestra detalles sobre los perfiles almacenados en esa máquina. La velocidad a la que se carga esta pantalla sugiere que estos datos se almacenan en algún lugar localmente en lugar de generarse sobre la marcha.

Estoy tratando de entender dónde se encuentran estos datos para que puedan recuperarse mediante programación, ya que la consulta Win32_UserProfilesolo proporciona un subconjunto de los datos, y estoy buscando específicamente el tamaño del perfil en lugar de calcularlo manualmente.

Respuesta1

Los tamaños de las carpetas no se almacenan específicamente en ningún lugar como una variable, se calculan al hacer clic derecho -> propiedades en la carpeta de perfil 'c:\users'. Cualquier dato de ubicación o subconjunto que necesite se encontrará en el registro con esta clave:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList

Si necesita recopilar una lista de tamaños de perfiles, lo mejor sería consultar 'c:\users'. powershell sería mi primera opción para esto. Tenga en cuenta también que la ubicación 'c:\users' solo contendrá el perfil completo si los perfiles móviles no están habilitados y no está utilizando una política de redirección de carpetas; de lo contrario, deberá consultar la ubicación en la que están almacenados.

Si está interesado en el método PowerShell, consulte el enlace a continuación. Esto detallará cómo usar el módulo de tamaño de carpeta y luego solo necesitará agregar el nombre de la carpeta para su identificación. Un producto disponible en el mercado que podrá obtener esto por usted se llama 'spacesniffer'; ejecútelo nuevamente en su c:\users y le proporcionará un gráfico que muestra diferentes tamaños de formas para cada perfil e incluso podrá exportarlo a un archivo si es necesario.

editar: olvidé el enlacehttps://www.gngrninja.com/script-ninja/2016/5/24/powershell-calculating-folder-sizes

rastreador de espacios:http://www.uderzo.it/main_products/space_sniffer/

Respuesta2

Advertencia:El tema es demasiado amplio para explicarlo en breves preguntas y respuestas. Quienes estén interesados, repasen todo.carpeta sysdmen el repositorio de ReactOS.

Aquí resumo el procedimiento de Windows 10. Obtengo los detalles de BOOL EditUserProfiles(HWND hWndParent)la función en sysdm.cplel archivo.

  1. Abre HKLM\Software\Microsoft\Windows NT\CurrentVersion\ProfileList la clave de registro RegOpenKeyExW()y enumera todas las claves de subregistro que contiene.

  2. ProfileImagePathEl valor del registro proporciona %UserProfile%la ruta de la carpeta.

  3. A partir de esa ruta, FindFirstFileW()se obtiene la fecha y la hora de la última modificación.

  4. Sidproporciona un identificador de seguridad. Cada usuario registrado tiene su propio SID único. A partir de ese valor SID, LookupAccountSidW()proporciona el nombre de usuario, nombre de dominio, etc.

  5. Mucho mas...

información relacionada