上一节,我们讲到了:
cleanmgr /d 驱动器号 : - 此选项用于指定您希望“磁盘清理”工具清理哪个驱动器。
cleanmgr /sageset: n - 此选项可显示磁盘清理设置对话框
cleanmgr /sagerun: n - 此选项将运行那些被指定到 n 值的特定任务。
这一节,我们将详细解析 cleanmgr 磁盘清理程序。首先,他的相关信息保存在注册表:HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\VolumeCaches 里。
各个子项的功能: Active Setup Temp Folders:临时安装文件。 Compress old files:压缩旧文件。 Content Indexer Cleaner:用于内容索引程序的分类文件。 Downloaded Program Files:已下载的程序文件。 Internet Cache Files:Internet 临时文件。 Memory Dump Files:调试转储文件。 Office Setup Files:Office 安装文件。 Offline Files:脱机文件。 Offline Pages Files:脱机网页。 Old ChkDsk Files:旧的 Chkdsk 文件。 Recycle Bin:回收站。 Remote Desktop Cache Files:临时远程桌面文件。 Setup Log Files:安装日志文件。 System Restore:可删除的旧系统还原点。 Temporary Files: TEMP 临时文件。 Temporary Offline Files:临时脱机文件。 WebClient and WebPublisher Cache: WebClient/Publisher 临时文件。 卸载备份图像:为上一个操作系统备份文件。 |
下面,我们来看一下具体每个项里的键值:
每个项里的: (默认)(REG_SZ):该选项的CLSID。 AdvancedButtonText(REG_SZ):功能按钮。 Description(REG_SZ):描述。 Display(REG_SZ):选项的名称。 FileList(REG_SZ):筛选的文件扩展名。 Folder(REG_SZ):筛选的路径。 StateFlags-n(REG_DWORD):这里的 n 就是 n 值。 REG_DWORD 值为2表示设置里选择了,0表示被 取消。 |
通过注册表,我们了解到,虽然语法中写“ /sageset: n - 此选项可显示磁盘清理设置对话框,并且还将创建一个注册表项来存储您选择的设置。n 值存储在注册表中,它允许您指定“磁盘清理”运行的各种任务。n 值可以是从 0 到 65535 之间的任何整数。为了在使用 /sageset 选项时让所有的选项都可用,您可能需要指定安装 Windows 的驱动器。”但是,实际使用中,n 值的应该是 0 到 9999 之间。而超过 10000 的 n 值,例如设置 n 值为 60188 ,而实际保存的仅为 6018 ,即只取前四位!
HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\VolumeCaches 下的各个子项为 Cleanmgr 的清理选项,如果不希望其出现,可直接将该子项删除。
其他的命令行选项(已不再使用):
/TUNEUP: /LOWDISK: /VERYLOWDISK: /SETUP: /i:%s\sysoc.inf: |
Cleanmgr.EXE 头部:
Exe 头部 地址 值 含意 00000000 5A4D 签名: MZ 00000002 0090 额外字节 00000004 0003 页 00000006 0000 重定位项目 00000008 0004 标头大小 0000000A 0000 最小允许 0000000C FFFF 最大允许 0000000E 0000 初始 SS 00000010 00B8 初始 SP 00000012 0000 校验 00000014 0000 初始 IP 00000016 0000 初始 CS 00000018 0040 重定位表 0000001A 0000 覆盖
Coff 头部 地址 值 含意 000000E0 00004550 签名: PE 000000E4 014C 机器: 014C=I386 000000E6 0003 区段数 000000E8 4802526E 时期/日期戳 000000EC 00000000 指示到符号表 000000F0 00000000 符号数 000000F4 00E0 可选标头大小 000000F6 010F 特性
可选头部 地址 值 含意 000000F8 010B Magic: 010B=普通可执行,0107=ROM 映像 000000FA 07 主版本号连接 000000FB 0A 副版本号连接 000000FC 00005600 代码段大小 00000100 00009200 已初始化数据大小 00000104 00000000 未初始化数据大小 00000108 000055B1 登录指示 RVA 0000010C 00001000 代码基部 00000110 00007000 数据基部 00000114 01000000 映像基数 00000118 00001000 区段队列 0000011C 00000200 文件队列 00000120 0005 操作系统主版本 00000122 0001 操作系统副版本 00000124 0005 用户主版本 00000126 0001 用户副版本 00000128 0004 子系统主版本 0000012A 000A 子系统副版本 0000012C 00000000 已保留 00000130 00011000 映像大小 00000134 00000400 标头大小 00000138 00012034 文件校验 0000013C 0002 子系统: 1=本地,2=Windows GUI,3=Windows CUI,4=POSIX CUI 0000013E 8000 DLL 标记 (废弃) 00000140 00040000 堆栈已保留大小 00000144 00001000 堆栈提交大小 00000148 00100000 堆积保留大小 0000014C 00001000 堆积提交大小 00000150 00000000 加载器标记 (废弃) 00000154 00000010 数据目录数 00000158 00000000 输出表地址 0000015C 00000000 & 大小 00000160 000058C8 输入表地址 00000164 000000DC & 大小 00000168 00008000 资源表地址 0000016C 00008ED0 & 大小 00000170 00000000 异常表地址 00000174 00000000 & 大小 00000178 00000000 安全表地址 0000017C 00000000 & 大小 00000180 00000000 基部重定位表地址 00000184 00000000 & 大小 00000188 00001240 调试数据地址 0000018C 0000001C & 大小 00000190 00000000 版权数据地址 00000194 00000000 & 大小 00000198 00000000 全局 Ptr 0000019C 00000000 & 大小 000001A0 00000000 TLS 表地址 000001A4 00000000 & 大小 000001A8 00001760 载入配置表地址 000001AC 00000040 & 大小
区段头部, .text 地址 值 含意 000001D8 .text 区段名 000001E0 00005490 虚拟大小 000001E4 00001000 RVA/偏移 000001E8 00005600 Raw 数据大小 000001EC 00000400 指向 Raw 数据 000001F0 00000000 指向重定位 000001F4 00000000 指向行数 000001F8 0000 重定位号 000001FA 0000 行数号 000001FC 60000020 区段标记 (可读取, 可执行, 代码)
区段头部, .data 地址 值 含意 00000200 .data 区段名 00000208 00000074 虚拟大小 0000020C 00007000 RVA/偏移 00000210 00000200 Raw 数据大小 00000214 00005A00 指向 Raw 数据 00000218 00000000 指向重定位 0000021C 00000000 指向行数 00000220 0000 重定位号 00000222 0000 行数号 00000224 C0000040 区段标记 (可写入, 可读取, 已初始化数据)
区段头部, .rsrc 地址 值 含意 00000228 .rsrc 区段名 00000230 00008ED0 虚拟大小 00000234 00008000 RVA/偏移 00000238 00009000 Raw 数据大小 0000023C 00005C00 指向 Raw 数据 00000240 00000000 指向重定位 00000244 00000000 指向行数 00000248 0000 重定位号 0000024A 0000 行数号 0000024C 40000040 区段标记 (可读取, 已初始化数据) |
Cleanmgr.EXE 导入:
msvcrt.dll:
ADVAPI32.dll:RegSetValueExW,RegCloseKey,RegEnumKeyW,RegOpenKeyExW,RegOpenKeyW,RegQueryValueExW
KERNEL32.dll:GetCommandLineW,GetModuleHandleA,SetUnhandledExceptionFilter,UnhandledExceptionFilter,GetCurrentProcess,TerminateProcess,LocalAlloc,LocalFree,lstrlenW,GetTickCount,CloseHandle,OpenProcess,Sleep,CreateProcessW,GetSystemTimeAsFileTime,GetDiskFreeSpaceExW,GetStartupInfoW,WaitForSingleObject,GetVolumeInformationW,GetLastError,CreateEventW,GetModuleHandleW,GetStartupInfoA,SetErrorMode,lstrcpyW,WideCharToMultiByte,MulDiv,LoadLibraryExW,GetSystemDirectoryW,FreeLibrary,GetProcAddress,LoadLibraryW,GetDiskFreeSpaceW,SetEvent,PulseEvent,CreateThread,GetDriveTypeW,FormatMessageW,QueryPerformanceCounter,GetCurrentThreadId,GetCurrentProcessId
GDI32.dll:GetTextExtentPoint32W,SetBkMode,SetBkColor,SetTextColor,ExtTextOutW
USER32.dll:SetCursor,LoadCursorW,TranslateMessage,MsgWaitForMultipleObjects,GetWindowThreadProcessId,FindWindowW,LoadStringW,wsprintfW,ShowWindow,MessageBoxW,EnumWindows,RegisterClassW,DefDlgProcW,LoadIconW,SendMessageW,DispatchMessageW,SetDlgItemTextW,GetSystemMetrics,GetClientRect,WinHelpW,EnableWindow,SetWindowLongW,GetWindowLongW,SendDlgItemMessageW,IsDialogMessageW,DestroyWindow,CreateDialogParamW,PeekMessageW,DrawFocusRect,DrawIconEx,GetSysColor,SetFocus,EndDialog,DialogBoxParamW,GetWindowTextW,SetForegroundWindow,GetDlgItem,PostMessageW
ole32.dll:CoInitialize,CLSIDFromString,CoCreateInstance,CoTaskMemAlloc,CoTaskMemFree,CoUninitialize
OLEAUT32.dll:
SHLWAPI.dll:StrCpyW,SHDeleteKeyW,StrCpyNW,StrStrIW,StrCmpW,StrFormatKBSizeW,StrToIntW
COMCTL32.dll:ImageList_Create,ImageList_ReplaceIcon,CreatePropertySheetPageW,PropertySheetW
SHELL32.dll:ShellExecuteW,ExtractIconExW,SHGetFileInfoW |
|