Windows 在注册表编辑器中更新清理
Windows Update Cleanup in Registry Editor
在磁盘清理工具中有一个选项用于 Windows 更新清理。如果我想通过以下方法设置它,它位于注册表中的什么位置?
Set-ItemProperty -Path 'HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\VolumeCaches\Temporary Files' -Name StateFlags0012 -Type DWORD -Value 2
如果我这样做 /sageset:#
我会看到设置 Windows 更新清理的选项,但我无法在注册表编辑器中找到它。
- 抱歉格式问题。如果您单击 MSDN link,它的格式和阅读会更好。
来自这里:https://msdn.microsoft.com/en-us/library/windows/desktop/bb776782%28v=vs.85%29.aspx?f=255&MSPPError=-2147217396
通过从命令行运行运行磁盘清理管理器的可执行文件—Cleanmgr.exe—,您可以声明清理配置文件。这些配置文件由可用处理程序的子集组成,并被赋予一个唯一的数字标签。这允许您在不同时间自动执行 运行 不同组的处理程序。
命令行 "cleanmgr.exe /sageset:nnnn",其中 nnnn 是唯一的数字标签,显示 UI 允许您选择要包含在该配置文件中的处理程序。除了定义配置文件外,sageset 参数还将一个名为 StateFlagsnnnn 的值写入 VolumeCaches 下的所有子项,其中 nnnn 是您在参数中使用的标签。这些条目有两个可能的数据值。
0:当此配置文件为 运行 时,不要 运行 此处理程序。
2:当此配置文件为 运行 时包括此处理程序。
例如,假设命令行 "cleanmgr.exe /sageset:1234" 是 运行。在显示的 UI 中,用户选择 Downloaded Program Files,但没有选择 Temporary Internet Files。然后将以下值写入注册表。
HKEY_LOCAL_MACHINE
软件
微软
Windows
当前版本
探索者
卷缓存
下载的程序文件
StateFlags1234 = 0x00000002
互联网缓存文件
StateFlags1234 = 0x00000000
命令行 "cleanmgr.exe /sagerun:nnnn",其中 nnnn 的值与使用 sageset 参数声明的标签匹配,运行s 在该配置文件中选择的所有处理程序。
当磁盘清理通常为 运行 时,通用 StateFlags 值将写入注册表。该值仅存储处理程序上次作为选项呈现给用户时的状态(选中或未选中)。这些条目有两个可能的数据值。
0:未选择处理程序。
1: 已选择处理程序。
另外 也讨论了这个。
谢谢,蒂姆。
您可以获得可用 VolumeCaches 的列表并设置为所有状态标志:
# Create reg keys
$StateFlags= "Stateflags0099"
$VolCaches = gci "HKLM:\Software\Microsoft\Windows\CurrentVersion\Explorer\VolumeCaches"
foreach($VC in $VolCaches)
{
New-ItemProperty -Path "$($VC.PSPath)" -Name $StateFlags -Value 2 -Type DWORD -Force | Out-Null
}
但是您无法控制将哪些内容包括在清理中。使用此脚本,您可以单独编辑(缩短)列表。
#Requires -RunAsAdministrator
$SageSet = "StateFlags0099"
$Base = "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\VolumeCaches\"
$Locations= @(
"Active Setup Temp Folders"
"BranchCache"
"Downloaded Program Files"
"GameNewsFiles"
"GameStatisticsFiles"
"GameUpdateFiles"
"Internet Cache Files"
"Memory Dump Files"
"Offline Pages Files"
"Old ChkDsk Files"
"Previous Installations"
"Recycle Bin"
"Service Pack Cleanup"
"Setup Log Files"
"System error memory dump files"
"System error minidump files"
"Temporary Files"
"Temporary Setup Files"
"Temporary Sync Files"
"Thumbnail Cache"
"Update Cleanup"
"Upgrade Discarded Files"
"User file versions"
"Windows Defender"
"Windows Error Reporting Archive Files"
"Windows Error Reporting Queue Files"
"Windows Error Reporting System Archive Files"
"Windows Error Reporting System Queue Files"
"Windows ESD installation files"
"Windows Upgrade Log Files"
)
ForEach($Location in $Locations) {
Set-ItemProperty -Path $($Base+$Location) -Name $SageSet -Type DWORD -Value 2 -ea silentlycontinue | Out-Null
}
# do the cleanup . have to convert the SageSet number
$Args = "/sagerun:$([string]([int]$SageSet.Substring($SageSet.Length-4)))"
Start-Process -Wait "$env:SystemRoot\System32\cleanmgr.exe" -ArgumentList $Args -WindowStyle Hidden
# Removw the Stateflags
ForEach($Location in $Locations)
{
Remove-ItemProperty -Path $($Base+$Location) -Name $SageSet -Force -ea silentlycontinue | Out-Null
}
希望对您有所帮助
在磁盘清理工具中有一个选项用于 Windows 更新清理。如果我想通过以下方法设置它,它位于注册表中的什么位置?
Set-ItemProperty -Path 'HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\VolumeCaches\Temporary Files' -Name StateFlags0012 -Type DWORD -Value 2
如果我这样做 /sageset:#
我会看到设置 Windows 更新清理的选项,但我无法在注册表编辑器中找到它。
- 抱歉格式问题。如果您单击 MSDN link,它的格式和阅读会更好。 来自这里:https://msdn.microsoft.com/en-us/library/windows/desktop/bb776782%28v=vs.85%29.aspx?f=255&MSPPError=-2147217396
通过从命令行运行运行磁盘清理管理器的可执行文件—Cleanmgr.exe—,您可以声明清理配置文件。这些配置文件由可用处理程序的子集组成,并被赋予一个唯一的数字标签。这允许您在不同时间自动执行 运行 不同组的处理程序。 命令行 "cleanmgr.exe /sageset:nnnn",其中 nnnn 是唯一的数字标签,显示 UI 允许您选择要包含在该配置文件中的处理程序。除了定义配置文件外,sageset 参数还将一个名为 StateFlagsnnnn 的值写入 VolumeCaches 下的所有子项,其中 nnnn 是您在参数中使用的标签。这些条目有两个可能的数据值。 0:当此配置文件为 运行 时,不要 运行 此处理程序。 2:当此配置文件为 运行 时包括此处理程序。 例如,假设命令行 "cleanmgr.exe /sageset:1234" 是 运行。在显示的 UI 中,用户选择 Downloaded Program Files,但没有选择 Temporary Internet Files。然后将以下值写入注册表。 HKEY_LOCAL_MACHINE 软件 微软 Windows 当前版本 探索者 卷缓存 下载的程序文件 StateFlags1234 = 0x00000002 互联网缓存文件 StateFlags1234 = 0x00000000 命令行 "cleanmgr.exe /sagerun:nnnn",其中 nnnn 的值与使用 sageset 参数声明的标签匹配,运行s 在该配置文件中选择的所有处理程序。 当磁盘清理通常为 运行 时,通用 StateFlags 值将写入注册表。该值仅存储处理程序上次作为选项呈现给用户时的状态(选中或未选中)。这些条目有两个可能的数据值。 0:未选择处理程序。 1: 已选择处理程序。
另外
谢谢,蒂姆。
您可以获得可用 VolumeCaches 的列表并设置为所有状态标志:
# Create reg keys
$StateFlags= "Stateflags0099"
$VolCaches = gci "HKLM:\Software\Microsoft\Windows\CurrentVersion\Explorer\VolumeCaches"
foreach($VC in $VolCaches)
{
New-ItemProperty -Path "$($VC.PSPath)" -Name $StateFlags -Value 2 -Type DWORD -Force | Out-Null
}
但是您无法控制将哪些内容包括在清理中。使用此脚本,您可以单独编辑(缩短)列表。
#Requires -RunAsAdministrator
$SageSet = "StateFlags0099"
$Base = "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\VolumeCaches\"
$Locations= @(
"Active Setup Temp Folders"
"BranchCache"
"Downloaded Program Files"
"GameNewsFiles"
"GameStatisticsFiles"
"GameUpdateFiles"
"Internet Cache Files"
"Memory Dump Files"
"Offline Pages Files"
"Old ChkDsk Files"
"Previous Installations"
"Recycle Bin"
"Service Pack Cleanup"
"Setup Log Files"
"System error memory dump files"
"System error minidump files"
"Temporary Files"
"Temporary Setup Files"
"Temporary Sync Files"
"Thumbnail Cache"
"Update Cleanup"
"Upgrade Discarded Files"
"User file versions"
"Windows Defender"
"Windows Error Reporting Archive Files"
"Windows Error Reporting Queue Files"
"Windows Error Reporting System Archive Files"
"Windows Error Reporting System Queue Files"
"Windows ESD installation files"
"Windows Upgrade Log Files"
)
ForEach($Location in $Locations) {
Set-ItemProperty -Path $($Base+$Location) -Name $SageSet -Type DWORD -Value 2 -ea silentlycontinue | Out-Null
}
# do the cleanup . have to convert the SageSet number
$Args = "/sagerun:$([string]([int]$SageSet.Substring($SageSet.Length-4)))"
Start-Process -Wait "$env:SystemRoot\System32\cleanmgr.exe" -ArgumentList $Args -WindowStyle Hidden
# Removw the Stateflags
ForEach($Location in $Locations)
{
Remove-ItemProperty -Path $($Base+$Location) -Name $SageSet -Force -ea silentlycontinue | Out-Null
}
希望对您有所帮助