我发现下面的脚本应该只创建一个还原点,干净的温度,磁盘清理和磁盘优化。唯一的问题是,当我运行它时,它删除了我所有的软件。幸运的是,我有一个还原点,但我似乎不明白为什么会这样。出于学习的目的,我希望有人指出其中的错误,以便更好地理解它。
# 1.creating the restore point
Checkpoint-Computer -Description "Weekly Maintanence" -RestorePointType "MODIFY_SETTINGS"
Write-Host "System Restore Point created successfully"
#3.Delete Temp Files
$objShell = New-Object -ComObject Shell.Application
$objFolder = $objShell.Namespace(0xA)
$temp = get-ChildItem "env:TEMP"
$temp2 = $temp.Value
$WinTemp = "c:WindowsTemp*"
# Remove temp files located in "C:UsersUSERNAMEAppDataLocalTemp"
write-Host "Removing Junk files in $temp2." -ForegroundColor Magenta
Remove-Item -Recurse "$temp2*" -Force -Verbose
# Remove Windows Temp Directory (Folder)
write-Host "Removing Junk files in $WinTemp." -ForegroundColor Green
Remove-Item -Recurse $WinTemp -Force
#5. Running Disk Clean up Tool
write-Host " Running Windows disk Clean up Tool" -ForegroundColor Cyan
cleanmgr /sagerun:1 | out-Null
$([char]7)
Sleep 1
$([char]7)
Sleep 1
write-Host "Clean Up Task completed !" "
除非您将程序安装在一个TEMP文件夹中,否则您的问题不在于PowerShell或您的代码。这可能是由于cleanmgr
之前保存了/sageset
(cleanmgr /sageset:1
或cleanmgr /tuneup:1
),或者cleanmgr
存在一些问题。cleanmgr /sagerun:1
将使用之前保存在/sageset:1
中的任何设置运行。
我唯一不清楚的是这一块ASCII码07是Bell
字符,这给了窗口的注意(使任务栏图标闪烁)当[char]7
被写入控制台。
$([char]7)