簡體   English   中英

如何使用 Windows 任務計划程序自動執行 PowerShell 腳本?

[英]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"

  1. 打開創建的任務調度程序

  2. 切換到“操作”選項卡並選擇您創建的“操作”

  3. 在編輯部分,您可以使用瀏覽器在 system32\\WindowsPowerShell\\v1.0 文件夾中選擇 powershell.exe。

     Example -C:\\Windows\\System32\\WindowsPowerShell\\v1.0\\powershell.exe
  4. 接下來,在“添加參數”-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.

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