Question appel à un webservice et message d'erreur

Plus d'informations
il y a 3 ans 1 semaine #30640 par sam
Bonjour,
je suis vraiment débutant donc je suis désolé si j'ai certtaines lacunes.
J'ai hérité d'un script qui nous permet de lire un ticket avec un fichier xml en paramètre.
Ce script powershell a fonctionné pendant un temps mais miantenant il ne fonctionne plus..
Il renvoie un fiochier xml vide : respSoap.xml
alors qu'il devrait contenir des information sur le ticket lu.
Lors de l'exécution j'ai réussi à faire un imprim écran au moment du message d'erreur car il disparaît de suite.
Je le mets en pièce jointe 
Code powershell :
Write-Host "### Lecture incident en VAL" -ForegroundColor Green
$url= "https://srvfscvalid/MRcgi/MRWebServices.pl"
Write-Host "# Url : $url" -ForegroundColor Green

# Répertoire courant
$RepCourant = [System.IO.Path]::GetDirectoryName($myInvocation.MyCommand.Definition)

# XML en entrée
$inFile="$RepCourant\lit_incident_val.xml"

# XML en sortie
$outFile="$RepCourant\respSoap.xml"
$f_out = New-Item -type file $outFile -Force

# Appel au webservice
iwr $url -InFile $inFile -ContentType 'text/xml' -Method Post -OutFile $outFile

[xml]$resp = gc $outFile

[int]$somme = $resp.Envelope.Body.AddResponse.AddResult

Write-Host "Resultat soap ",$somme -ForegroundColor Green

Fichier xml en paramètre 
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/"
        xmlns:namesp2="http://xml.apache.org/xml-soap" xmlns:xsd="http://www.w3.org/1999/XMLSchema"
        xmlns:xsi="http://www.w3.org/1999/XMLSchema-instance">
  <SOAP-ENV:Header/>
  <SOAP-ENV:Body>
   <namesp1:MRWebServices__getIssueDetails xmlns:namesp1="MRWebServices">
    <user xsi:type="xsd:string">USER</user>
    <password xsi:type="xsd:string">password</password>
    <extrainfo xsi:type="xsd:string"/>
    <projectID xsi:type="xsd:int">1</projectID>
    <issueNumber xsi:type="xsd:int">321678</issueNumber>
   </namesp1:MRWebServices__getIssueDetails>
  </SOAP-ENV:Body>
 </SOAP-ENV:Envelope>

C'est le message d'erreur que je ne comprends pas.

Merci d'avance pour votre aide. 




 
Pièces jointes :

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

Plus d'informations
il y a 3 ans 1 semaine #30641 par Laurent Dardenne
Salut,
à priori le contexte d'exécution de la ligne d'appel a changé (GPO ?).
Tu rencontres une erreur mais elle ne bloque pas l'exécution du script.

Dans ce cas il faut déjà tester ton script dans une console sur le serveur/machine concernée et avec le compte adéquate.
Ceci permet de constater que ce script n'a pas de gestion d'erreur...

L'appel à Set-ExécutionPolicy est ineffectif, essaie de le commenter ou de le supprimer provisoirement :

— Unrestricted: Loads all configuration files and runs all scripts. If you run an unsigned script that was downloaded from the Internet, you are prompted for permission before it runs.

— Bypass: Nothing is blocked and there are no warnings or prompts.

Si avec cet essaie le fichier attendu est vide, le problème est ailleurs, reste à savoir où ;-)

Tutoriels PowerShell

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

Plus d'informations
il y a 3 ans 1 semaine #30642 par sam
Salut,

le Set-ExécutionPolicy, je ne le vois nulle part dans le script.
Est-il possible d'avoir une sortie d'erreur dans un fichier ou autre.
Cela me permettra de faire un imprime écran lors de l'exécution.

Merci d'avance.

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

Plus d'informations
il y a 3 ans 1 semaine - il y a 3 ans 1 semaine #30643 par Laurent Dardenne
>>le Set-ExécutionPolicy, je ne le vois nulle part dans le script.
Oui, c'est le code appelant ce script qui s'en charge (enfin je le suppose au vue de la recopie d'écran).Peut être est-il appelé dans une tâche planifiée ?

>Est-il possible d'avoir une sortie d'erreur dans un fichier ou autre.
Sans ajout dans le code appelant, ce n'est pas possible à moins de configurer les logs de PS :
docs.microsoft.com/fr-fr/powershell/modu...kFrom=powershell-5.1

Et je ne sais pas si les events générés contiennent les détails de l'erreur
Cette absence de gestion d'erreur est une erreur de conception. Une infra ça bouge souvent :-)

Le mieux est de créer un module contennant le traitement et le charger via un script qui configure l'environnment.
Extrait d'un fichier XML d'une tâche planifiée:

<Actions Context="Author">
<Exec>
<Command>C:\Windows\system32\WindowsPowerShell\v1.0\powershell.exe</Command>
<Arguments>-Command "&amp; 'C:\TraimentX\Invoke-MonTraitement.ps1'"</Arguments>
<WorkingDirectory>C:\TraimentX</WorkingDirectory>
</Exec>
</Actions>
 

Dans ce cas l'appel fonctionnera la pluspart du temps (sauf si on supprime le fichier ou modifie les droits d'accès).
La gestion d'erreur et la configuration de l'environnement se faisant dans le script 'Invoke-MonTraitement.ps1'. Et sa première instruction est un Try/Catch.

Je ne pense pas que tu puisses régler ton problème sans modifier le code.

Tutoriels PowerShell
Dernière édition: il y a 3 ans 1 semaine par Laurent Dardenne.

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

Plus d'informations
il y a 3 ans 1 semaine #30644 par sam
Salut Laurent et merci pour ta réponse.
J'ai la main sur le code, donc je peux le modifier. Le truc c'est de savoir quoi modifier car j'ai hérité de ce script sans connaître super bien le Powershell.

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

Plus d'informations
il y a 3 ans 1 semaine #30645 par Laurent Dardenne
Vérifie déjà si le traitement du script fonctionne.
Ensuite c'est le 'launcher' (la ligne d'appel) qu'il faudra modifier, dans un premier temps supprime l'appel à Set-ExecutionPolicy (en ayant mémorisé qq part la ligne d'appel d'origine).

>>car j'ai hérité de ce script
Une 'dette technique', belle héritage :-)

Tutoriels PowerShell

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

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