我正在尝试创建一个 Windows 计划任务来清除剪贴板,但没有成功。
我知道如何使用 Powershell 清除剪贴板,也知道如何创建计划任务,但我无法成功将两者结合起来。如能得到任何帮助,我将不胜感激。
我尝试了以下变化,但没有成功:
$action = New-ScheduledTaskAction -Execute 'Powershell.exe' -Argument '-NoProfile -WindowStyle Hidden -Command "& {echo $null | clip.exe}"'
$trigger = New-ScheduledTaskTrigger -Daily -At 3pm
$principal = New-ScheduledTaskPrincipal -UserID "NT AUTHORITY\SYSTEM" -LogonType ServiceAccount -RunLevel Highest
Register-ScheduledTask -Action $action -Trigger $trigger -TaskName "ClearClipboard" -Principal $principal
答案1
您的任务计划使用系统帐户运行,但剪贴板是每个用户独享的。您需要创建一个在用户上下文中运行且仅在用户登录时运行的计划任务。
我使用以下脚本创建了一个计划任务并且它可以运行:
$action = New-ScheduledTaskAction -Execute 'Powershell.exe' -Argument '-NoProfile -WindowStyle Hidden -Command "& {echo $null | clip.exe}"'
$trigger = New-ScheduledTaskTrigger -Daily -At 3pm
$principal = New-ScheduledTaskPrincipal -UserID "MyUserName" -LogonType Interactive -RunLevel Limited
Register-ScheduledTask -Action $action -Trigger $trigger -TaskName "ClearClipboard" -Principal $principal