執行此命令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
答案2
警告:這個話題太廣泛,無法用簡短的問答來解釋。有興趣的可以完整看完sysdm資料夾在 ReactOS 儲存庫中。
這裡我總結了 Windows 10 的
BOOL EditUserProfiles(HWND hWndParent)
過程sysdm.cpl
。
它開啟
HKLM\Software\Microsoft\Windows NT\CurrentVersion\ProfileList
註冊表項並RegOpenKeyExW()
列舉其中的所有子註冊表項。ProfileImagePath
註冊表值提供%UserProfile%
資料夾路徑。從該路徑
FindFirstFileW()
取得上次修改時間和日期。Sid
提供安全標識符。每個註冊用戶都有自己唯一的SID。根據該 SID 值,LookupAccountSidW()
提供使用者名稱、網域名稱等。還有很多...