我正在测试脚本,以了解在PowerShell中使用Task Scheduler的想法。
出于安全性考虑,我不想在脚本中包含任何凭据。
我的想法是在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”
答案 0 :(得分:2)
过去我对此有疑问,我需要在操作中添加'-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