Mon script PowerShell prend un instantané de la caméra IP, il fonctionne sur un Raspberry Pi3 avec Windows 10 IoT Core.Le script s'exécute très lentement via la tâche planifiée
Lorsque j'exécute le script à partir de PowerShell (uniquement de type c:\scripts\snapshot.ps1
), il fonctionne très bien. Mais quand je l'exécute à partir de cmd powershell -File c:\scripts\snapshot.ps1
(j'ai besoin de cela pour l'exécution du planificateur de tâches), il prend trop de temps et prend tout le noyau du processeur et après quelques minutes d'exécution je le tue.
La même chose lorsque j'exécute cette commande à partir de powershell (non de cmd). Le script s'arrêtera le Invoke-WebRequest -Uri $url -Headers $Headers -OutFile "$dir\$outFile"
. Le fichier $outFile
est créé, mais sans contenu et est toujours en cours d'exécution. J'observe que le script entier est trop lent, lors de l'exécution du script seulement avec 2 Write-Output
, c'est le retard entre 2 chaînes écrites. J'ai essayé -MTA
et -NoProfile
et un autre argument powershell.exe
, mais sans chance.
Mon script:
$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"
EDIT: Ma tâche planifiée:
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
J'ai essayé de courir tâche NT AUTHORITY \ SYSTEM - mais pas de chance.
Nous vous remercions de votre temps.
Rob
Comment avez-vous configuré la tâche? Utilisez-vous des commutateurs comme '-NoProfile'? Il y a beaucoup de choses qui se chargent avec PowerShell par défaut qui ferait la même chose dans une tâche configurée si elle n'est pas omise. La plupart des exemples de PowerShell en tâches couvriraient cela. – Matt
J'essaie Powerhell -NoProfile -File "c: \ Data \ Admin \ Créer-Snapshot \ Create-Snapshot.ps1" - lorsqu'il est exécuté à partir de powershell distant avec cette commande ou de la tâche planifiée, il est lent et quand je l'exécute à partir de cmd ou directement ouvrir le script .ps1 dans powershell ISE et exécuter, c'est ok .. –
Cela ressemble à http://serverfault.com/questions/151824/process-runs-slower-as-a-scheduled-task-than-it -does-interactivement –