[英]How do I execute a PowerShell script automatically using Windows task scheduler?
我有一個發送電子郵件的 PowerShell 腳本。 我想每 1 分鍾自動執行一次該腳本。 我該怎么做,使用任務調度程序?
目前我已經創建了一個任務並提供了我的腳本的路徑。 但是該調度程序會打開我的腳本,而不是執行。
我使用的是 Windows 7 Professional 和 PowerShell 2.0.5 版。
創建計划任務並將操作設置為:
程序/腳本: Powershell.exe
參數: -File "C:\\Users\\MyUser\\Documents\\ThisisMyFile.ps1"
以下是使用 PowerShell 3.0 或 4.0 進行-RepeatIndefinitely
及更高版本的-RepeatIndefinitely
:
# Trigger
$middayTrigger = New-JobTrigger -Daily -At "12:40 AM"
$midNightTrigger = New-JobTrigger -Daily -At "12:00 PM"
$atStartupeveryFiveMinutesTrigger = New-JobTrigger -once -At $(get-date) -RepetitionInterval $([timespan]::FromMinutes("1")) -RepeatIndefinitely
# Options
$option1 = New-ScheduledJobOption –StartIfIdle
$scriptPath1 = 'C:\Path and file name 1.PS1'
$scriptPath2 = "C:\Path and file name 2.PS1"
Register-ScheduledJob -Name ResetProdCache -FilePath $scriptPath1 -Trigger $middayTrigger,$midNightTrigger -ScheduledJobOption $option1
Register-ScheduledJob -Name TestProdPing -FilePath $scriptPath2 -Trigger $atStartupeveryFiveMinutesTrigger
您應該使用任務計划程序中的腳本啟動 PowerShell,而不是僅使用任務計划程序中腳本的路徑,例如
C:\WINDOWS\system32\WindowsPowerShell\v1.0\powershell.exe -NoLogo -NonInteractive -File "C:\Path\To\Your\PS1File.ps1"
見powershell /?
對這些開關的解釋。
如果你仍然遇到問題,你應該閱讀這個問題。
就我而言,我的腳本有參數,所以我設置:
參數: -Command "& C:\\scripts\\myscript.ps1 myParam1 myParam2"
經過幾個小時的互聯網測試和研究,我終於找到了如何使用任務計划程序啟動我的 PowerShell 腳本,這要歸功於Jack Fruh @sharepointjack的視頻使用 Windows 任務計划程序調度 PowerShell 腳本。
程序/腳本 -> 通過 powershell.exe 放置完整路徑
C:\WINDOWS\system32\WindowsPowerShell\v1.0\powershell.exe
添加參數 -> 腳本和腳本的完整路徑,不帶任何“”。
從(可選)開始 -> 腳本所在的目錄,沒有任何“”。
您可以使用 Unblock-File cmdlet 取消阻止此特定腳本的執行。 這可以防止您進行任何出於安全考慮而可能不想要的永久性策略更改。
Unblock-File path_to_your_script
來源: 解鎖文件
沒有一個已發布的解決方案對我有用。 解決方法,有效:
創建一個run.bat
並放入powershell.exe -file "C:\\...\\script.ps1"
然后將操作設置為程序/腳本: "C:\\...\\run.bat"
打開創建的任務調度程序
切換到“操作”選項卡並選擇您創建的“操作”
在編輯部分,您可以使用瀏覽器在 system32\\WindowsPowerShell\\v1.0 文件夾中選擇 powershell.exe。
Example -C:\\Windows\\System32\\WindowsPowerShell\\v1.0\\powershell.exe
接下來,在“添加參數”-File 參數中,將您的腳本文件路徑粘貼到您的系統中。
Example – c:\\GetMFAStatus.ps1
此博客可能會幫助您使用 Windows 任務計划程序自動執行 Powershell 腳本
如果您只想執行 PowerShell 一次,或者在任務的調度程序上執行,那將是完美的選擇。 但是,我想根據與任務計划程序不同的計划發送電子郵件通知。 例如,我的任務每周運行一次。 我想每小時執行一次 PowerShell 腳本來驗證任務是否仍在運行。 有什么想法嗎?
我也無法啟動腳本,經過大量搜索后沒有任何幫助。 沒有 -ExecutionPolicy,沒有命令,沒有文件,"" 和 '' 之間沒有區別。
我只是將我在 powershell 中運行的命令放在參數選項卡中: ./scripts.ps1 parameter1 11 parameter2 xx
等等。 現在調度程序工作。 程序: Powershell.exe
開始於: C:/location/of/script/
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.