Question Script qui ne fonctionne plus en tache planifiée

Plus d'informations
il y a 3 ans 6 mois #23325 par Lepoulpe
Bonjour à tous,

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

[/color]

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.

Plus d'informations
il y a 3 ans 6 mois #23329 par Laurent Dardenne
Salut,
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.

Plus d'informations
il y a 3 ans 6 mois #23332 par Lepoulpe
Salut Laurent,

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.

Plus d'informations
il y a 3 ans 6 mois #23333 par Laurent Dardenne
Lepoulpe écrit:

tu es trop fort !!

Il suffit d'interpréter le code d'erreur :)

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.

Plus d'informations
il y a 3 ans 6 mois #23335 par Laurent Dardenne
Il se peut que l'interaction avec la session en cours ne soit pas possible simplement...

Tutoriels PowerShell

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

Plus d'informations
il y a 3 ans 6 mois #23336 par Lepoulpe
Laurent,

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 :

https://blogs.technet.microsoft.com/heyscriptingguy/2015/03/20/psimaging-part-2-export-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.

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