Question
Script qui ne fonctionne plus en tache planifiée
- B
- Auteur du sujet
- Hors Ligne
- Membre junior
- Messages : 25
- Remerciements reçus 0
je suis sur un petit script qui me donne du fil a retordre.
je défini une zone rectangle de la manière suivante :
[code:1]$rect = New-Object System.Drawing.Rectangle 1414,1027,30,19[/code:1]
si je lance mon script manuellement, tout fonctionne parfaitement. Par contre si je le lance via une tache planifiée, j'ai un gros message d'insulte !!
New-Object : Le type [System.Drawing.Rectangle] est introuvable: vérifiez que l'assembly dans lequel il se trouve est chargé.
Au caractère
\\srv38570s2\data$\scripts\BERTRAND-Affutage\BERTRAND-Affutage.ps1:170 : 13
+ $rect = New-Object System.Drawing.Rectangle 1414,1027,30,19
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidType: ( [New-Object], PSArgumentException
+ FullyQualifiedErrorId : TypeNotFound,Microsoft.PowerShell.Commands.NewObjectCommand
Export-ImageText : Impossible de lier le paramètre «Rect» à la cible.
Exception lors de la définition de «Rect»: «La référence d'objet n'est pas définie à une instance d'un objet.»
Au caractère \\srv38570s2\data$\scripts\BERTRAND-Affutage\BERTRAND-Affutage.ps1:173 : 116
+ ... mageText -Rect $rect
+ ~~~~~
+ CategoryInfo : WriteError: ( [Export-ImageText], ParameterBindingException
+ FullyQualifiedErrorId : ParameterBindingFailed,PSImaging.ImageText.Export_ImageText
J'ai bien une petite idée du style le script s'exécute en tache de fond et ne peut pas charger d'éléments graphiques ou un truc du genre....
Auriez vous une idée sur le pourquoi et le comment je peux me sortir de cette erreur ?
d'avance merci
Cédric
Connexion ou Créer un compte pour participer à la conversation.
- Laurent Dardenne
- Hors Ligne
- Modérateur
- Messages : 6302
- Remerciements reçus 68
quel est l'objectif du script ?
il y a une GUI (winform) ?
Les prérequis ne semblent pas remplis lors de l'exécution dans la tâche (initialisation dans le profile ?)
As-tu une ligne de ce type :
[code:1]
Add-Type -AssemblyName System.Windows.Forms
[/code:1]
Tutoriels PowerShell
Connexion ou Créer un compte pour participer à la conversation.
- B
- Auteur du sujet
- Hors Ligne
- Membre junior
- Messages : 25
- Remerciements reçus 0
tu es trop fort !!
j'ai juste ajouté la ligne dans ma fonction et ça roule sur mon poste.
par contre ça ne fonctionne toujours pas sur le serveur.
Le script est une tache de fond qui récupère des valeurs de production.
Pour l'une d'entre elles, je n'ai qu'un logiciel de prod sur lequel je n'ai pas la main et dont je veux récupérer une vitesse.
Mon petit bout de code récupère une partie de l'image écran (là où ma valeur s'affiche) et fait une reconnaissance OCR pour l'enregistrer dans un CSV.
Donc non, je n'ai pas de GUI.
Connexion ou Créer un compte pour participer à la conversation.
- Laurent Dardenne
- Hors Ligne
- Modérateur
- Messages : 6302
- Remerciements reçus 68
Il suffit d'interpréter le code d'erreurtu es trop fort !!
Dans ton cas il faut une gestion d'erreur (try/catch) et un fichier de logs pour tracer l'erreur sur le serveur.
En local la zone ciblée est bien recopiée dans un fichier ?
Ensuite sans le script sous les yeux impossible d'aller plus loin.
Tutoriels PowerShell
Connexion ou Créer un compte pour participer à la conversation.
- Laurent Dardenne
- Hors Ligne
- Modérateur
- Messages : 6302
- Remerciements reçus 68
Tutoriels PowerShell
Connexion ou Créer un compte pour participer à la conversation.
- B
- Auteur du sujet
- Hors Ligne
- Membre junior
- Messages : 25
- Remerciements reçus 0
sur le serveur j'ai ce message d'erreur :
[code:1]Export-ImageText : Une exception a été levée par la cible d'un appel.
Au caractère \\srv38570s2\data$\scripts\BERTRAND-Affutage\BERTRAND-Affutage.ps1:175 : 93
+ ... ect -first 1 | Export-ImageText -Rect $rect
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : NotSpecified: (: ) [Export-ImageText], TargetInvocationException
+ FullyQualifiedErrorId : System.Reflection.TargetInvocationException,PSImaging.ImageText.Export_ImageText
Impossible d'appeler une méthode dans une expression Null.
Au caractère
\\srv38570s2\data$\scripts\BERTRAND-Affutage\BERTRAND-Affutage.ps1:177 : 12
+ return $valeur.ToInt32($null)
+ ~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidOperation : (: ) [], RuntimeException
+ FullyQualifiedErrorId : InvokeMethodOnNull[/code:1]
pour la reconnaissance OCR j'utilise la fonction Export-ImageText décrite sur cette page :
blogs.technet.microsoft.com/heyscripting...rt-text-from-images/
je te joins mon code, il s'agit de la fonction suivante :
[code:1]function get-vitesseLinck()
{
Add-Type -AssemblyName System.Windows.Forms
# On défini la zone de l'image à regarder
$rect = New-Object System.Drawing.Rectangle 1414,1027,30,19
# On récupère la capture d'écran générée par le poste linck et on fait une reconnaissance OCR pour récupérer la valeur
$valeur = dir \"$script:Linckshared\*.jpg\" |sort LastWriteTime -desc | select -first 1 | Export-ImageText -Rect $rect
return $valeur.ToInt32($null)
}[/code:1]
La pièce jointe BERTRAND_Affutage.ps1 est absente ou indisponible
merci pour ton aide
Cédric
Pièces jointes :
Connexion ou Créer un compte pour participer à la conversation.
- Vous êtes ici :
- Accueil
- forum
- PowerShell
- Entraide pour les débutants
- Script qui ne fonctionne plus en tache planifiée