簡體   English   中英

PowerShell PowerShell 創建的任務中的腳本未運行

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

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