Question Erreur tâche planifiée

Plus d'informations
il y a 9 ans 3 mois #18663 par Luca
Erreur tâche planifiée a été créé par Luca
Bonjour,

J'ai créé un script qui récupère des données de ping pour en faire un graphique.
J'en ai fait une tâche planifiée sur un machine virtuelle tournant sous w7.
Sauf que la tâche se lance, et en 8 sec s'arrete en retournant le code erreur 1.

D'après ce que j'ai lu sur le net a ce propos, c'est à cause d'une erreur dans le script.
Mais quand je lance le script via l'ISE, il tourne en entier et même si il y a des erreurs, il continue de tourner.

Je vous poste le code :
[code:1]$exec_path = Split-Path $MyInvocation.MyCommand.Path #chemin du script
$d = Get-Date -format \"dd/MM/yyyy\"
$d = $d.ToString()
$date = (Get-Date -format \"dd-MM-yyyy\"«»).ToString()
$dest = \"D:\Monitoring\Exchange\GraphTemp\\"
$conf_file = ($exec_path + \"\moyennes.csv\"«»)
$conf= Import-Csv $conf_file -Delimiter \";\"

foreach($serv in $conf){
$cn = $serv.Nom

Set-Location \"\\X\monlog$\ICMP\"
Copy-Item -Path *$cn.csv -Destination $dest



$objExcel = New-Object -ComObject Excel.Application
$FilePath = ($dest + $cn + \".csv\"«»)
$objExcel.Visible = $false
$objExcel.DisplayAlerts = $false
$WorkBook = $objExcel.Workbooks.Open($FilePath,2, $True)
$WorkSheet = $WorkBook.sheets.item($cn)
$lr= $WorkSheet.UsedRange.Rows.Count

[int]$firstRow = $null
[int]$lastRow = $null
$test = $firstRow -eq 0

$configfile = ( \"\\\"+$cn+\"\c$\Monitoring\Exchange\moyennes.csv\"«»)
$config = Import-CSV $configfile -Delimiter \";\"

foreach($stat in $config){
if($stat.Nom -eq $cn){
if($stat.lastrow -ne \"\"«»){
[int]$firstRow = [int]$stat.lastrow
}
}
}
<#
Nouveau fichier + #Copie d'info
#>
$objExcel1 = New-Object -ComObject Excel.Application
$objExcel1.Visible = $false
$objExcel1.DisplayAlerts = $false
$Wb = $objExcel1.Workbooks.Add()
$Ws = $Wb.sheets.item(\"Feuil1\"«»)
$cells = $Ws.Cells
#
$range = $WorkSheet.Range(\"A1:B1\"«»).EntireColumn
$range.Copy() | Out-Null
$ws.Cells.Item(1,1).Select()
$ws.paste()

$WorkBook.Close()
$objExcel.Quit()
#

#
for([int]$i=$firstRow;$i -le $lr;$i++)
{
$date0=$cells.Item($i-1,1).value()
$date0=$date0.ToString()
$date1=$cells.Item($i,1).value()
$date1=$date1.ToString()
$date2=$cells.Item($i+1,1).value()
if($date2 -ne $null){$date2=$date2.ToString()}

if(($firstRow -eq 0) -and ($date0 -notlike \"$d*\"«») -and ($date1 -like \"$d*\"«») -and ($date2 -like \"$d*\"«»))
{
$firstRow=$i

}

if(($i -ge $firstRow) -and ($lastRow -eq 0))
{
$str=$cells.item($i,2).value()
$str=$str.ToString()
$cells.item($i,2).value()=$str.replace(\".\",\",\"«»)
$cells.item($i,3) = $date1.Substring($date1.length - 8, 5)

}

if(($date0 -like \"$d*\"«») -and ($date1 -like \"$d*\"«») -and ($date2 -notlike \"$d*\"«»))
{
$lastRow=$i


}


}

#Création du graphique
$Chart = $Ws.Shapes.AddChart().Chart
$Chart.ChartType = 4

$Chart.HasLegend = $false

$Chart.HasTitle = $true

$Chart.ChartTitle.Text = \"Ping \"+$d

$Chart.SeriesCollection(1).XValues = $Ws.Range($Ws.Cells.Item($firstRow,3),$Ws.Cells.Item($lastRow,3))

$Chart.SeriesCollection(1).Values = $Ws.Range($Ws.Cells.Item($firstRow,2),$Ws.Cells.Item($lastRow,2))

$Chart.SeriesCollection(2).Delete
$Chart.SeriesCollection(3).delete

$RangePositionChart = $Ws.Range($Ws.Cells.Item(($lastRow-30),5),$Ws.Cells.Item(($lastRow-5),14))

$ChartObj = $Chart.Parent

$ChartObj.Height = $RangePositionChart.Height

$ChartObj.Width = $RangePositionChart.Width

$ChartObj.Top = $RangePositionChart.Top

$ChartObj.Left = $RangePositionChart.Left

#Mise à jour de la lastRow dans le .csv
foreach($stat in $config){
if($stat.Nom -eq $cn){
$stat.lastrow = $lastRow
}
}
$config | Export-csv $configfile -Delimiter \";\" -NoTypeInformation


$Wb.SaveAs(\"\\X\monlog$\ICMP\Graphique journalier\\"+$cn +\"-\"+ $date +\".xlsx\"«»)
$Wb.Close()

$objExcel1.Quit()



[System.Runtime.Interopservices.Marshal]::ReleaseComObject($objExcel)
[System.Runtime.Interopservices.Marshal]::ReleaseComObject($objExcel1)
}
Remove-Item (\"$dest\" + \"*.csv\"«»)[/code:1]

Les erreurs interviennent au moment de supprimer les séries 2 et 3...

En ce qui concerne les paramètres de lancement du script via le planificateur :

programme lancé : powershell
arguments : -ExecutionPolicy Unrestricted D:/Monitoring/Exchange/GraphPingJournalier.ps1

lancé dans : /

J'espère avoir clairement expliqué mon pb , merci d'avance :)

Message édité par: talkk, à: 29/12/14 13:57<br><br>Message édité par: talkk, à: 29/12/14 14:19

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 9 ans 3 mois #18664 par Luca
Réponse de Luca sur le sujet Re:Erreur tâche planifiée
Bon j'ai résolu le pb du return 1.
Mais maintenant le script me retourne 0, mais ne s'execute pas plus ..
Je dois récuperer des fichiers de sortie, et là je ne récupère rien du tout, mais l'historique me dit que tout s'est bien passé ...<br><br>Message édité par: talkk, à: 29/12/14 14:18

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 9 ans 3 mois #18665 par Philippe
Réponse de Philippe sur le sujet Re:Erreur tâche planifiée
Bonjour talkk

si l'historique me dit que tout s'est bien passé ... c'est que tout s'est bien passé !!! ;)

plus sérieusement
est tu sur que ton script s'exécute avec un compte utilisateur qui a les droits en écritures ici :
[code:1]$dest = \&quot;D:\Monitoring\Exchange\GraphTemp\\&quot;
$conf_file = ($exec_path + \&quot;\moyennes.csv\&quot;«»)
Set-Location \&quot;\\X\monlog$\ICMP\&quot;
$configfile = ( \&quot;\\\&quot;+$cn+\&quot;\c$\Monitoring\Exchange\moyennes.csv\&quot;«»)
[/code:1]

je suppose que ton script tourne sur le poste sur lequel tu a créé la tache planifiée

pour être sur que \&quot;tout s'est bien passé\&quot; tu peut faire un log du type dans script en rajoutant les suivante :
[code:1]get-date &gt; \&quot;c:\test.txt\&quot;
\&quot;debut du script\&quot; &gt;&gt; \&quot;c:\test.txt\&quot;
.
.
.
\&quot;fin du script\&quot; &gt;&gt; \&quot;c:\test.txt\&quot;[/code:1]

et verifier le fichier \&quot;c:/test.txt\&quot;

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 9 ans 3 mois #18666 par Luca
Réponse de Luca sur le sujet Re:Erreur tâche planifiée
Je me doute que pour lui, \&quot;tout s'est bien passé\&quot; en effet ! ^^
Non, mon script tourne sur une VM Windows 7 ( car il a besoin d'excel pour fonctionner), j'utilise le compte admin que l'on utilise pour faire tourner nos scripts...

J'obtiens le résultat voulu en lançant mon script via l'ISE ainsi que la console powershell ..

Avec le planificateur, j'ai maintenant le code retour 0, mais mon script ne s'execute pas ...

Information 29/12/2014 14:45:10 102 Tâche terminée (2) af914e2a-37e2-46df-b0e0-4e99c9edbbb9
Information 29/12/2014 14:45:10 201 Action terminée (2) af914e2a-37e2-46df-b0e0-4e99c9edbbb9
Information 29/12/2014 14:44:29 129 Processus de tâche créé Informations
Information 29/12/2014 14:44:29 200 Opération démarrée (1) af914e2a-37e2-46df-b0e0-4e99c9edbbb9
Information 29/12/2014 14:44:29 100 Tâche démarrée (1) af914e2a-37e2-46df-b0e0-4e99c9edbbb9
Information 29/12/2014 14:44:29 319 Le Moteur de tâche a reçu un message pour démarrer la tâche (1)
Information 29/12/2014 14:44:29 110 Tâche déclenchée par l’utilisateur Informations af914e2a-37e2-46df-b0e0-4e99c9edbbb9


Rien que via les heures, je vois que ça ne va pas : mon script dure environ 2h en temps normal ...

C'est la première fois que je lance un script qui est présent sur un autre disque le C:
J'ai rajouter dans les actions : \&quot;Commencer dans \&quot; avec le chemin du dossier [code:1]D:\Monitoring\Exchange[/code:1]qui contient mon script ...

Donc voilà je vois pas trop ce que je peux faire ...

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 9 ans 3 mois #18670 par Laurent Dardenne
Salut,
talkk écrit:

Donc voilà je vois pas trop ce que je peux faire

Peut être lire ceci .

Tutoriels PowerShell

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 9 ans 3 mois #18671 par Philippe
Réponse de Philippe sur le sujet Re:Erreur tâche planifiée
ok

fait la partie log comme je t'ai dis
ou fait une tache avec un script PS qui n'a que ca :
[code:1]
get-date &gt; \&quot;c:\test.txt\&quot;
\&quot;debut du script\&quot; &gt;&gt; \&quot;c:\test.txt\&quot;



\&quot;fin du script\&quot; &gt;&gt; \&quot;c:\test.txt\&quot;[/code:1]

si le fichier est vide alors ta un problème dans la declaration de la tache

dans l'onglet action : programme contient que powershell et arguments contient -file suivit d'un espace puis entre parenthèse du chemin complet pour atteindre ton script et le nom du script compris bien sur
ex : [code:1] -file \&quot;D:\Monitoring\Exchange\GraphPingJournalier.ps1\&quot;[/code:1]

Connexion ou Créer un compte pour participer à la conversation.

Temps de génération de la page : 0.090 secondes
Propulsé par Kunena