自动禁用多余启动项脚本怎么写

wen 实用脚本 1

本文目录导读:

自动禁用多余启动项脚本怎么写

  1. Windows 批处理脚本 (.bat)
  2. PowerShell 脚本 (.ps1)
  3. 智能检测脚本 (PowerShell)
  4. 使用方法:
  5. 安全建议:

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
        }
    }
}

使用方法:

  1. 保存脚本:将脚本保存为 .bat.ps1 文件
  2. 管理员权限:右键点击脚本 → "以管理员身份运行"
  3. PowerShell 执行策略:如果运行 .ps1 文件,可能需要先执行:
    Set-ExecutionPolicy -ExecutionPolicy RemoteSigned

安全建议:

  • ✅ 只禁用确定不需要的程序
  • ⚠️ 保留杀毒软件和系统关键启动项
  • 📝 建议先备份注册表或创建系统还原点
  • 🔄 如果有不确定的项目,先上网搜索再决定

需要我帮您针对特定软件或需求调整脚本吗?

抱歉,评论功能暂时关闭!