![](/img/trans.png)
[英]PowerShell scheduled task: opens PowerShell and script to be run but doesn't execute script
[英]PowerShell script within PowerShell-created task doesn't run
我正在編寫一個測試腳本,以了解在 PowerShell 中使用任務計划程序的想法。
我不想在腳本中有任何安全問題的憑據。
我的想法是在 PowerShell 中創建一個運行腳本的任務,但由於某種原因它無法正確執行,我不明白為什么。
我的任務創建如下:
$taskName = "WeeklyMaintance"
$User = "NT AUTHORITY\SYSTEM"
$Trigger = New-ScheduledTaskTrigger –Daily -At "08:14"
$Action = New-ScheduledTaskAction -Execute "PowerShell.exe" -Argument "D:\Some SW\_Scripts\testing.ps1"
Register-ScheduledTask -TaskName $taskName -Trigger $Trigger -User $User -Action $Action -RunLevel Highest
腳本看起來像這樣
$Logpath = "D:\Some SW\_Scripts"
$logname = "Log.txt"
function Write-Log {
Param ([string]$logstring)
$timestamp = Get-Date -Format "dd.MM.yyyy HH:mm:ss"
$log = "[$timestamp]: $logstring"
Add-Content -Value $log -Path "$Logpath\$logname"
}
Write-Log "My Test for research worked"
日志文件已經創建,正常執行時它工作得很好,但在我創建任務並使用它不會啟動的任務運行它時有些放松。
我在這里創建任務或使用系統有問題嗎?
編輯:
我發現那一定是“壞人”的唯一路徑。
當我將路徑從“D:\Some SW_Scripts”更改為“D:\Test”時
過去我對此有疑問,需要在操作中添加“ -File”參數。
$taskName = "WeeklyMaintance"
$User= "NT AUTHORITY\SYSTEM"
$Trigger= New-ScheduledTaskTrigger –Daily -At "08:14"
$Action= New-ScheduledTaskAction -Execute "PowerShell.exe" -Argument "-File `"D:\Some SW\_Scripts\testing.ps1`""
Register-ScheduledTask -TaskName $taskName -Trigger $Trigger -User $User -Action $Action -RunLevel Highest
我有同樣的問題。
executer.ps1
文件試圖執行backup.ps1
文件。backup.ps1
文件時,一切正常; 但是,當我嘗試在executer.ps1
中執行它時, New-ScheduledTaskAction
無法執行它。-File
提到的,我在該行中添加了 -File 並明確寫下了引號之間的路徑,但對我不起作用。New-ScheduledTaskAction -Execute $powerShellExe -Argument "-executionpolicy bypass -noprofile -file $scriptDirectory"
它對我有用。[string]$scriptDirectory = "C:\Users\<username>\Desktop\PS\backup.ps1"
[string]$powerShellExe = "PowerShell.exe"
[string]$taskName = "BackupTask"
[string]$description = "Test backup task"
[string]$userId = "NT AUTHORITY\SYSTEM"
$trigger = New-ScheduledTaskTrigger -Daily -DaysInterval 3 -At 12:58:05pm
$principal = New-ScheduledTaskPrincipal -UserID $userId -LogonType S4U
$settings = New-ScheduledTaskSettingsSet -MultipleInstances Parallel -DontStopIfGoingOnBatteries
$action = New-ScheduledTaskAction -Execute $powerShellExe -Argument "-executionpolicy bypass -noprofile -file $scriptDirectory" # Specify what program to run and with its parameters
Register-ScheduledTask -TaskName $taskName -Trigger $trigger -Action $action -Description $description -Settings $settings -Principal $principal
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.