De onde sysdm.cpl,EditUserProfiles obtém os dados?

De onde sysdm.cpl,EditUserProfiles obtém os dados?

A execução deste comando rundll32 sysdm.cpl,EditUserProfilesexibirá a janela ‘Perfis de usuário’ mostrando detalhes sobre os perfis armazenados naquela máquina. A velocidade de carregamento desta tela sugere que esses dados são armazenados em algum lugar localmente, em vez de gerados instantaneamente.

Estou tentando entender onde esses dados estão localizados para que possam ser recuperados programaticamente, pois a consulta Win32_UserProfilefornece apenas um subconjunto dos dados, e estou procurando especificamente o tamanho do perfil em vez de calculá-lo manualmente.

Responder1

os tamanhos das pastas não são armazenados especificamente em nenhum lugar como uma variável; eles são calculados quando você clica com o botão direito -> propriedades na pasta de perfil 'c:\users'. Qualquer localização ou dados de subconjunto necessários serão encontrados no registro nesta chave:

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

Se você precisar agrupar uma lista de tamanhos de perfil, seria melhor consultar 'c:\users'. PowerShell seria minha primeira opção para isso. Observe também que o local 'c:\users' conterá apenas o perfil completo se os perfis móveis não estiverem habilitados e se você não estiver usando uma política de redirecionamento de pasta, caso contrário, você precisará consultar o local em que eles estão armazenados.

Se você estiver interessado no método PowerShell, consulte o link abaixo. Isso detalhará como usar o módulo de tamanho de pasta, então você só precisará adicionar o nome da pasta para identificação. Um produto pronto para uso que será capaz de capturar isso para você é chamado 'spacesniffer' - execute-o novamente em c:\users e ele fornecerá um gráfico mostrando diferentes tamanhos de formas para cada perfil e você pode até exportá-lo para um arquivo, se necessário.

edit: esqueci o linkhttps://www.gngrninja.com/script-ninja/2016/5/24/powershell-calculating-folder-sizes

explorador de espaço:http://www.uderzo.it/main_products/space_sniffer/

Responder2

Aviso:O tópico é muito amplo para ser explicado em breves perguntas e respostas. Quem tiver interesse, passe por todopasta sysdmno repositório ReactOS.

Aqui resumi o procedimento do Windows 10. Recebo os detalhes da BOOL EditUserProfiles(HWND hWndParent)função no sysdm.cplarquivo.

  1. Ele abre HKLM\Software\Microsoft\Windows NT\CurrentVersion\ProfileList a chave de registro RegOpenKeyExW()e enumera todas as chaves de sub-registro nela contidas.

  2. ProfileImagePatho valor do registro fornece %UserProfile%o caminho da pasta.

  3. A partir desse caminho, FindFirstFileW()obtém a hora e a data da última modificação.

  4. Sidfornece identificador de segurança. Cada usuário registrado possui seu próprio SID exclusivo. A partir desse valor SID, LookupAccountSidW()fornece nome de usuário, nome de domínio, etc.

  5. Muito mais...

informação relacionada