簡體   English   中英

使用PowerShell將腳本作為隱藏的計划任務運行

[英]Run a script as hidden scheduled task with PowerShell

我希望每天設置的時間將桌面上的word文件移動到本地磁盤D中。 我創建了一個計划任務,代碼工作如下。

$action = New-ScheduledTaskAction -Execute 'powershell.exe' -Argument 'Invoke-Command -ScriptBlock { Move-Item -Path $home\Desktop\*.doc -Destination D:\ }'
$trigger = New-ScheduledTaskTrigger -Daily -At 05:30pm
Register-ScheduledTask -TaskName "Task" -Action $action -Trigger $trigger -RunLevel Highest -Force

但有一個問題。 我希望此任務計時器以隱藏的方式完成,而不會出現在PowerShell窗口中。

為了解決此問題,我還希望采用以下方法。

$action = New-ScheduledTaskAction -Execute 'Powershell.exe' -Argument '-ExecutionPolicy Bypass -NoExit -NoProfile -WindowStyle Hidden Invoke-Command -ScriptBlock { Move-Item -Path $home\Desktop\*.doc -Destination D:\ }'
$trigger = New-ScheduledTaskTrigger -Daily -At 05:30pm
Register-ScheduledTask -TaskName "Task" -Action $action -Trigger $trigger -RunLevel Highest -Force

您是否可以幫助我修復編寫的代碼以使計划的任務運行而不顯示PowerShell窗口?

要在后台運行計划任務,請將其配置為無論用戶是否登錄均運行。 由於您只想將文件從一個本地磁盤復制到另一個本地磁盤,因此我也建議您不要存儲密碼。 也不需要Invoke-Command 只需直接運行Move-Item

$action    = New-ScheduledTaskAction -Execute 'powershell.exe' -Argument 'Move-Item ...'
$trigger   = New-ScheduledTaskTrigger -Daily -At 05:30pm
$principal = New-ScheduledTaskPrincipal -UserId "$env:USERDOMAIN\$env:USERNAME" -LogonType "S4U" -RunLevel Highest

Register-ScheduledTask -TaskName "Task" -Action $action -Trigger $trigger -Principal $principal -Force

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM