在磁盘清理工具中,有一个用于Windows清理的选项。如果我想通过以下方法设置它,它在注册表中的位置?
Set-ItemProperty -Path 'HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\VolumeCaches\Temporary Files' -Name StateFlags0012 -Type DWORD -Value 2如果我做了/sageset:#,我看到了设置Windows清理的选项,但是我在regedit中找不到它。
发布于 2016-11-10 21:41:56
您可以获得可用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
}希望这能有所帮助
发布于 2016-11-10 19:40:25
通过从命令行运行磁盘清理管理器的可执行文件--Cleanmgr.exe,可以声明清理概要文件。这些配置文件由可用处理程序的子集组成,并被赋予唯一的数字标签。这允许您在不同的时间自动运行不同的处理程序集。命令行"cleanmgr.exe /sageset:nnnn“(其中nnnn是唯一的数字标签)显示一个UI,允许您选择要包含在该配置文件中的处理程序。除了定义配置文件外,sageset参数还将一个名为StateFlagsnnnn的值写入VolumeCaches下的所有子键,其中nnnn是您在参数中使用的标签。这些条目有两个可能的数据值。0:运行此配置文件时不要运行此处理程序。2:在运行此配置文件时包含此处理程序。例如,假设运行命令行"cleanmgr.exe /sageset:1234“。在显示的UI中,用户选择下载的程序文件,但不选择临时Internet文件。然后将下列值写入注册表。HKEY_LOCAL_MACHINE软件Microsoft Explorer VolumeCaches下载的程序文件StateFlags1234 = 0x00000002互联网缓存文件StateFlags1234 = 0x00000000命令行"cleanmgr.exe /sagerun:nnnn",其中nnnn的值与用sageset参数声明的标签相匹配,运行该配置文件中选择的所有处理程序。当磁盘清理正常运行时,会向注册表写入一般的StateFlags值。此值只存储处理程序的状态(选中或未选中),这是上次将其作为选项呈现给用户的时候。这些条目有两个可能的数据值。0:未选择处理程序。1:选择了处理程序。
另外,Automate process of Disk Cleanup cleanmgr.exe without user intervention也讨论了这一点。
谢谢蒂姆。
https://stackoverflow.com/questions/40534323
复制相似问题