自動(dòng)檢測(cè)并修復(fù) rdpclip.exe 的計(jì)劃任務(wù)

好的!我們可以創(chuàng)建一個(gè) 自動(dòng)檢測(cè)并修復(fù) rdpclip.exe 的計(jì)劃任務(wù),在它未運(yùn)行或卡死時(shí)自動(dòng)重啟,從而保持遠(yuǎn)程桌面剪貼板功能可用。


? 整體方案

  1. 編寫 PowerShell 腳本:檢測(cè) rdpclip.exe 是否運(yùn)行,若未運(yùn)行則啟動(dòng)。
  2. 配置 Windows 計(jì)劃任務(wù):定期(如每5分鐘)以當(dāng)前用戶身份運(yùn)行該腳本。
  3. 無(wú)需管理員權(quán)限(除非你希望對(duì)所有用戶生效)。

?? 第一步:創(chuàng)建 PowerShell 檢測(cè)腳本

將以下內(nèi)容保存為 Check-RdpClip.ps1(例如保存到 C:\Scripts\Check-RdpClip.ps1):

# Check-RdpClip.ps1
# 自動(dòng)檢測(cè)并重啟 rdpclip.exe(僅限當(dāng)前用戶會(huì)話)

$ProcessName = "rdpclip"
$LogPath = "$env:USERPROFILE\Logs\RdpClipFix.log"

# 創(chuàng)建日志目錄
$LogDir = Split-Path $LogPath -Parent
if (!(Test-Path $LogDir)) { New-Item -ItemType Directory -Path $LogDir -Force | Out-Null }

$Timestamp = Get-Date -Format "yyyy-MM-dd HH:mm:ss"

# 檢查進(jìn)程是否存在
$Process = Get-Process -Name $ProcessName -ErrorAction SilentlyContinue

if ($Process) {
    # 進(jìn)程存在,可選:檢查是否無(wú)響應(yīng)(高級(jí))
    # 此處簡(jiǎn)化處理:只要存在就不操作
    Add-Content -Path $LogPath -Value "[$Timestamp] $ProcessName 正在運(yùn)行。"
} else {
    Add-Content -Path $LogPath -Value "[$Timestamp] $ProcessName 未運(yùn)行,正在啟動(dòng)..."
    try {
        Start-Process "$env:windir\system32\rdpclip.exe"
        Add-Content -Path $LogPath -Value "[$Timestamp] $ProcessName 已成功啟動(dòng)。"
    } catch {
        Add-Content -Path $LogPath -Value "[$Timestamp] 啟動(dòng)失敗: $_"
    }
}

?? 說(shuō)明:

  • 該腳本只檢查當(dāng)前用戶的 rdpclip.exe(RDP 剪貼板進(jìn)程是每個(gè)用戶獨(dú)立的)。
  • 日志保存在 %USERPROFILE%\Logs\RdpClipFix.log,便于排查。

?? 第二步:設(shè)置執(zhí)行策略(僅首次需要)

PowerShell 默認(rèn)可能禁止腳本運(yùn)行。以當(dāng)前用戶身份運(yùn)行以下命令(無(wú)需管理員):

Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser

輸入 Y 確認(rèn)即可。這僅影響當(dāng)前用戶,安全且必要。


?? 第三步:創(chuàng)建計(jì)劃任務(wù)(自動(dòng)每5分鐘運(yùn)行)

方法 A:使用 PowerShell 創(chuàng)建任務(wù)(推薦)

當(dāng)前用戶身份運(yùn)行以下 PowerShell 腳本(復(fù)制粘貼執(zhí)行一次即可):

$TaskName = "AutoFix-RdpClip"
$ScriptPath = "C:\Scripts\Check-RdpClip.ps1"

# 確保腳本路徑存在
if (!(Test-Path (Split-Path $ScriptPath))) {
    New-Item -ItemType Directory -Path (Split-Path $ScriptPath) -Force
}

# 創(chuàng)建計(jì)劃任務(wù)動(dòng)作:運(yùn)行 PowerShell 腳本
$Action = New-ScheduledTaskAction -Execute "PowerShell.exe" `
    -Argument "-NoProfile -WindowStyle Hidden -File `"$ScriptPath`""

# 觸發(fā)器:每5分鐘運(yùn)行一次(從現(xiàn)在開始)
$Trigger = New-ScheduledTaskTrigger -Once -At (Get-Date) -RepetitionInterval (New-TimeSpan -Minutes 5)

# 設(shè)置:僅在用戶登錄時(shí)運(yùn)行,不喚醒計(jì)算機(jī),允許按需啟動(dòng)
$Settings = New-ScheduledTaskSettingsSet -AllowStartIfOnBatteries -DontStopIfGoingOnBatteries -ExecutionTimeLimit (New-TimeSpan -Hours 1)

# 注冊(cè)任務(wù)(僅當(dāng)前用戶)
Register-ScheduledTask -TaskName $TaskName -Action $Action -Trigger $Trigger -Settings $Settings -Description "自動(dòng)檢測(cè)并修復(fù) RDP 剪貼板進(jìn)程" -RunLevel Limited

? 該任務(wù):

  • 僅在你登錄到桌面時(shí)運(yùn)行(符合 RDP 使用場(chǎng)景)。
  • 隱藏窗口-WindowStyle Hidden),不影響操作。
  • 5 分鐘檢查一次(可修改 -Minutes 5 調(diào)整頻率)。
  • 不需要管理員權(quán)限。

方法 B:手動(dòng)通過(guò)“任務(wù)計(jì)劃程序”創(chuàng)建(圖形界面)

  1. 打開 任務(wù)計(jì)劃程序(Win + R → taskschd.msc)。
  2. 右側(cè)點(diǎn)擊 “創(chuàng)建基本任務(wù)”。
  3. 名稱:AutoFix-RdpClip
  4. 觸發(fā)器:選擇 “每天” → 下一步 → 設(shè)置開始時(shí)間 → 勾選 “重復(fù)任務(wù)間隔” → 選 5 分鐘,持續(xù) 無(wú)限期
  5. 操作:“啟動(dòng)程序” → 程序填:
    PowerShell.exe
    
    參數(shù)填:
    -NoProfile -WindowStyle Hidden -File "C:\Scripts\Check-RdpClip.ps1"
    
  6. 完成前勾選 “當(dāng)點(diǎn)擊‘完成’時(shí),打開此任務(wù)屬性”
  7. 在“常規(guī)”選項(xiàng)卡中:
    • 選擇 “只在用戶登錄時(shí)運(yùn)行”
    • 勾選 “不存儲(chǔ)密碼”(如果不需要跨會(huì)話)
  8. 點(diǎn)擊確定。

?? 驗(yàn)證是否生效

  1. 手動(dòng)結(jié)束 rdpclip.exe(任務(wù)管理器)。
  2. 等待最多 5 分鐘(或立即右鍵任務(wù) → “運(yùn)行” 測(cè)試)。
  3. 檢查日志文件:%USERPROFILE%\Logs\RdpClipFix.log
  4. 查看任務(wù)管理器是否重新出現(xiàn) rdpclip.exe。

?? 停用或刪除任務(wù)

如需停用,打開任務(wù)計(jì)劃程序 → 找到 AutoFix-RdpClip → 右鍵禁用或刪除。

或 PowerShell 刪除:

Unregister-ScheduledTask -TaskName "AutoFix-RdpClip" -Confirm:$false

? 總結(jié)

組件 說(shuō)明
腳本 Check-RdpClip.ps1:智能檢測(cè)+啟動(dòng)
日志 %USERPROFILE%\Logs\RdpClipFix.log
計(jì)劃任務(wù) 每5分鐘運(yùn)行一次,僅當(dāng)前用戶登錄時(shí)有效
權(quán)限 無(wú)需管理員,安全可靠

如果你希望這個(gè)任務(wù)在所有 RDP 用戶登錄時(shí)都生效(多用戶服務(wù)器環(huán)境),也可以配置為“在用戶登錄時(shí)觸發(fā)”,我可以提供多用戶版本。需要嗎?

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容