我的PowerShell脚本从IP摄像头获取快照,它运行在带有Windows 10 IoT Core的Raspberry Pi3上。通过计划任务脚本运行非常缓慢
当我从PowerShell运行脚本(只输入c:\scripts\snapshot.ps1
)它运行良好。但是当我从cmd powershell -File c:\scripts\snapshot.ps1
(我需要这个用于从任务调度器运行)运行它时,它运行的时间太长,需要整个CPU内核,几分钟后我就杀了它。
同样,当我从powershell运行此命令(no从cmd)。脚本将停止在Invoke-WebRequest -Uri $url -Headers $Headers -OutFile "$dir\$outFile"
。文件$outFile
已创建,但没有内容,仍在运行并正在运行。我观察整个脚本太慢了,当只用2 Write-Output
运行脚本时,它在2个写入的字符串之间延迟。 我试过-MTA
和-NoProfile
和一些下一个powershell.exe
的说法,但没有运气。
我的脚本:
$user = 'operator'
$pass = 'password'
$url = 'http:\\url.jpg'
$dir = "c:\outputdir"
$date = Get-Date
$date = $date.ToString("yyyy-MM-dd_HH-mm-ss")
$outFile = "snapshot_$date.jpg"
$pair = "$($user):$($pass)"
$encodedCreds = [System.Convert]::ToBase64String([System.Text.Encoding]::ASCII.GetBytes($pair))
$basicAuthValue = "Basic $encodedCreds"
$Headers = @{
Authorization = $basicAuthValue
}
Invoke-WebRequest -Uri $url -Headers $Headers -OutFile "$dir\$outFile"
编辑: 我的计划任务运行:
Folder: \
HostName: pi
TaskName: \Create-snapshot
Next Run Time: 3/27/2017 3:32:00 AM
Status: Running
Logon Mode: Interactive/Background
Last Run Time: 3/27/2017 3:31:02 AM
Last Result: 267009
Author: pi\Administrator
Task To Run: C:\Data\Admin\Create-Snapshot\Create-Snapshot-Start.bat >> "c:\Data\Admin\Create-Snapshot\Log\Create-Snapshot-start 2017-03-27 2_47_25.log"
Start In: N/A
Comment: N/A
Scheduled Task State: Enabled
Idle Time: Disabled
Power Management: Stop On Battery Mode, No Start On Batteries
Run As User: Administrator
Delete Task If Not Rescheduled: Disabled
Stop Task If Runs X Hours and X Mins: 72:00:00
Schedule: Scheduling data is not available in this format.
Schedule Type: One Time Only, Minute
Start Time: 12:56:00 AM
Start Date: 3/27/2017
End Date: N/A
Days: N/A
Months: N/A
Repeat: Every: 0 Hour(s), 1 Minute(s)
Repeat: Until: Time: None
Repeat: Until: Duration: Disabled
Repeat: Stop If Still Running: Disabled
我试图运行的任务,因为NT AUTHORITY \ SYSTEM - 但没有运气。
谢谢你的时间。
Rob
你如何配置任务?你正在使用'-NoProfile'这样的开关吗?默认情况下,PowerShell会加载很多内容,如果不省略,它将在配置的任务中执行相同的操作。大多数使PowerShell成为任务的例子将涵盖这一点。 – Matt
我想要powershell -NoProfile文件“c:\ Data \ Admin \ Create-Snapshot \ Create-Snapshot.ps1” - 从PowerShell远程运行此命令或从计划任务运行速度慢,当我从cmd运行它时或直接在PowerShell ISE中打开.ps1脚本并运行,没关系.. –
这看起来类似于http://serverfault.com/questions/151824/process-runs-slower-as-a-scheduled-task-than-it -does-interactively –