![](/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.