本文目录导读:

Windows 批处理脚本 (.bat)
@echo off
:: 以管理员权限运行
>nul 2>&1 "%SYSTEMROOT%\system32\cacls.exe" "%SYSTEMROOT%\system32\config\system"
if '%errorlevel%' NEQ '0' (
echo 请求管理员权限...
goto UACPrompt
) else ( goto gotAdmin )
:UACPrompt
echo Set UAC = CreateObject^("Shell.Application"^) > "%temp%\getadmin.vbs"
echo UAC.ShellExecute "%~s0", "", "", "runas", 1 >> "%temp%\getadmin.vbs"
"%temp%\getadmin.vbs"
exit /B
:gotAdmin
if exist "%temp%\getadmin.vbs" ( del "%temp%\getadmin.vbs" )
pushd "%CD%"
CD /D "%~dp0"
echo 正在禁用多余启动项...
:: 禁用指定的启动项(通过注册表)
reg add "HKCU\Software\Microsoft\Windows\CurrentVersion\Run" /v "OneDrive" /t REG_SZ /d "" /f
reg add "HKCU\Software\Microsoft\Windows\CurrentVersion\Run" /v "微信" /t REG_SZ /d "" /f
reg add "HKCU\Software\Microsoft\Windows\CurrentVersion\Run" /v "QQ" /t REG_SZ /d "" /f
:: 禁用计划任务中的启动项
schtasks /Change /TN "\Microsoft\Windows\OneDrive\OneDriveStandaloneUpdateTask" /DISABLE 2>nul
echo 禁用完成!
pause
PowerShell 脚本 (.ps1)
# 需要以管理员身份运行
# 定义要禁用的启动项列表
$disabledItems = @(
"OneDrive",
"微信",
"QQ",
"Adobe Creative Cloud",
"Dropbox",
"Evernote",
"Skype"
)
Write-Host "开始禁用多余启动项..." -ForegroundColor Yellow
# 方法1:通过注册表禁用
foreach ($item in $disabledItems) {
# 当前用户启动项
$regPath = "HKCU:\Software\Microsoft\Windows\CurrentVersion\Run"
if (Test-Path "$regPath\$item") {
Remove-ItemProperty -Path $regPath -Name $item -ErrorAction SilentlyContinue
Write-Host "已禁用: $item" -ForegroundColor Green
}
# 所有用户启动项(需要管理员权限)
$regPathAll = "HKLM:\Software\Microsoft\Windows\CurrentVersion\Run"
if (Test-Path "$regPathAll\$item") {
Remove-ItemProperty -Path $regPathAll -Name $item -ErrorAction SilentlyContinue
Write-Host "已禁用(所有用户): $item" -ForegroundColor Green
}
}
# 方法2:禁用计划任务中的启动项
$scheduledTasks = @(
"Microsoft\Windows\OneDrive\OneDriveStandaloneUpdateTask",
"Microsoft\Office\Office Automatic Updates 2.0"
)
foreach ($task in $scheduledTasks) {
if (Get-ScheduledTask -TaskName $task -ErrorAction SilentlyContinue) {
Disable-ScheduledTask -TaskName $task -ErrorAction SilentlyContinue
Write-Host "已禁用计划任务: $task" -ForegroundColor Green
}
}
# 方法3:检查并禁用启动文件夹中的项
$startupFolders = @(
"$env:APPDATA\Microsoft\Windows\Start Menu\Programs\Startup",
"C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Startup"
)
foreach ($folder in $startupFolders) {
if (Test-Path $folder) {
Get-ChildItem $folder | ForEach-Object {
if ($_.Name -match "unwanted|temporary|test") {
Rename-Item $_.FullName "$($_.FullName).disabled"
Write-Host "已禁用启动项: $($_.Name)" -ForegroundColor Green
}
}
}
}
Write-Host "`n启动项清理完成!" -ForegroundColor Cyan
pause
智能检测脚本 (PowerShell)
# 智能检测并禁用非必要启动项
$ignoredItems = @(
# 保留的系统关键项
"SecurityHealth",
"OneDrive",
"MSC",
"CtTask",
"WindowsDefender"
)
# 获取所有启动项
$startupItems = Get-CimInstance Win32_StartupCommand | Select-Object Name, Command, Location
foreach ($item in $startupItems) {
$shouldDisable = $false
# 检查是否为系统关键项
if ($item.Name -match "Security|Windows|Microsoft Defender") {
continue
}
# 检查是否在忽略列表中
if ($ignoredItems -contains $item.Name) {
continue
}
# 判断是否为非必要项(可自定义规则)
if ($item.Command -match "temp|update|updater|cache") {
$shouldDisable = $true
}
if ($shouldDisable) {
Write-Host "建议禁用: $($item.Name)" -ForegroundColor Yellow
Write-Host " 位置: $($item.Location)" -ForegroundColor Gray
# 确认后禁用
$response = Read-Host "是否禁用? (Y/N)"
if ($response -eq 'Y') {
# 根据位置禁用
if ($item.Location -match "HKCU") {
Remove-ItemProperty -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\Run" -Name $item.Name
} elseif ($item.Location -match "HKLM") {
Remove-ItemProperty -Path "HKLM:\Software\Microsoft\Windows\CurrentVersion\Run" -Name $item.Name
}
Write-Host "已禁用: $($item.Name)" -ForegroundColor Green
}
}
}
使用方法:
- 保存脚本:将脚本保存为
.bat或.ps1文件 - 管理员权限:右键点击脚本 → "以管理员身份运行"
- PowerShell 执行策略:如果运行
.ps1文件,可能需要先执行:Set-ExecutionPolicy -ExecutionPolicy RemoteSigned
安全建议:
- ✅ 只禁用确定不需要的程序
- ⚠️ 保留杀毒软件和系统关键启动项
- 📝 建议先备份注册表或创建系统还原点
- 🔄 如果有不确定的项目,先上网搜索再决定
需要我帮您针对特定软件或需求调整脚本吗?