sysdm.cpl,EditUserProfiles 從哪裡取得資料?

sysdm.cpl,EditUserProfiles 從哪裡取得資料?

執行此命令rundll32 sysdm.cpl,EditUserProfiles將顯示「使用者設定檔」窗口,其中顯示有關該電腦上儲存的設定檔的詳細資訊。此畫面載入的速度表示該資料儲存在本地某處而不是動態產生的。

我正在尋求了解該數據所在的位置,以便可以通過編程方式檢索它,因為查詢Win32_UserProfile僅提供數據的子集,並且我專門尋找配置文件大小而不是手動計算它。

答案1

資料夾大小不是作為變數專門儲存在任何地方,而是在您右鍵單擊“c:\users”設定資料夾上的 -> 屬性時計算它們。您需要的任何位置或子集資料都可以在登錄中的此鍵下找到:

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

如果您需要整理設定檔大小列表,最好查詢「c:\users」。 powershell 將是我的第一個選擇。另請注意,如果未啟用漫遊設定檔且您未使用資料夾重新導向策略,「c:\users」位置將僅包含完整的設定文件,否則您將需要查詢它們儲存的位置。

如果您對powershell方法感興趣,請參閱下面的連結。這將詳細說明如何使用資料夾大小模組,然後您只需添加資料夾名稱即可識別。現成的產品可以為您抓取這個,稱為“spacesniffer” - 對您的c:\users 運行此產品,它將為您提供一個圖表,顯示每個配置文件的不同形狀大小,您甚至可以將其導出到如果需要的話,一個文件。

編輯:忘記鏈接https://www.gngrninja.com/script-ninja/2016/5/24/powershell-calculate-folder-sizes

空間嗅探器:http://www.uderzo.it/main_products/space_sniffer/

答案2

警告:這個話題太廣泛,無法用簡短的問答來解釋。有興趣的可以完整看完sysdm資料夾在 ReactOS 儲存庫中。

這裡我總結了 Windows 10 的 BOOL EditUserProfiles(HWND hWndParent)過程sysdm.cpl

  1. 它開啟HKLM\Software\Microsoft\Windows NT\CurrentVersion\ProfileList 註冊表項並RegOpenKeyExW()列舉其中的所有子註冊表項。

  2. ProfileImagePath註冊表值提供%UserProfile%資料夾路徑。

  3. 從該路徑FindFirstFileW()取得上次修改時間和日期。

  4. Sid提供安全標識符。每個註冊用戶都有自己唯一的SID。根據該 SID 值,LookupAccountSidW()提供使用者名稱、網域名稱等。

  5. 還有很多...

相關內容