Flash info

"Problems cannot be solved by the same level of thinking that created them."

- Albert Einstein
 
Accueil arrow Forum

Bienvenue sur le forum PowerShell-Scripting.com

 
arnold
Utilisateur

PowerShelleur Amateur
Messages: 56
graphgraph
Karma: 1  
Try/Catch - 6/06/19 07:23 Bonjour

Svp
Comment inclure un try/catch
dans le scripte?

Merci pour votre aide

Arnold



Code:

 $Xftp "ftp://perso-ftp.orange.fr/" $Xftp.UsePassive $true $Xftp.EnableTls $true $XlocalDirectory Get-Content "c:\studio\" $Xuser "...……." $Xpass "......"     $Xwebclient = New-Object System.Net.WebClient  $Xwebclient.Credentials = New-Object System.Net.NetworkCredential($Xuser,$Xpass)   $XFiles Get-ChildItem -Path "c:\studio\*" -Rec -For | ? {$_.LastWriteTime -gt (Get-Date).AddHours(-1)} | where { ! $_.PSIsContainer } | Select-Object FullName $Xnombre $XFiles.Count  foreach ($XFile in $XFiles)  {      $XLocalFile $XFile.FullName            $XRemoveDirectory $XLocalFile.Replace("C:\studio\","")      $XChangeSlashes $XRemoveDirectory.Replace('\''/')      $XRemoveSpaces $XChangeSlashes.Trim()      $XRemoteFile $Xftp+$XRemoveSpaces      $Xuri = New-Object System.Uri("$XRemoteFile")       $Xwebclient.UploadFile($Xuri$XLocalFile)            Write-Host "Getting $XFile from $XlocalDirectory" -Foreground "Red" -BackgroundColor DarkBlue      Write-Host "Puting $XFile to $Xftp" -Foreground "Yellow" -BackgroundColor DarkBlue  } "" Write-Host "Finished Sync to $Xftp" -Foreground "Green" -BackgroundColor DarkBlue clear-variable X* -scope global -F (new-object Media.SoundPlayer "C:\WINDOWS\Media\notify.wav").play(); write-host "Notify Done !";




j'ai obtient l'erreur suivant:

Code:

 Exception lors de l'appel de « UploadFile » avec « 2 » argument(s) : « Erreur système. » Au caractère C:\MMC\batch_graphe.ps1:920 : 6 +      $Xwebclient.UploadFile($Xuri, $XLocalFile) +      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~     + CategoryInfo          : NotSpecified: (:) [], MethodInvocationException     + FullyQualifiedErrorId : WebException

MediaPlayList
  | | L'administrateur a désactivé l'accés public en écriture.
Laurent Dardenne
Utilisateur

PowerShelleur Platinum
Messages: 5711
graph
Karma: 207  
Re:Try/Catch - 6/06/19 14:19 Salut,
arnold écrit:

Comment inclure un try/catch

Comme ceci:

Code:

 try  {  $Xwebclient.UploadFile($Xuri$XLocalFile) } catch {  #mais tu fais quoi ici ? }


Mais comme tu peux le lire il faut savoir quoi faire en cas d'exception.
On peut ne pas placer de code dans le bloc catch, mais il faut savoir ce que l'on fait, à moins de dire "Les erreurs on s'en fout !"

Tu peux consulter un tutoriel sur la gestion des erreurs, via le lien indiqué dans ma signature.
Tutoriels PowerShell
  | | L'administrateur a désactivé l'accés public en écriture.
arnold
Utilisateur

PowerShelleur Amateur
Messages: 56
graphgraph
Karma: 1  
Re:Try/Catch - 6/06/19 17:11 Mais comme tu peux le lire il faut savoir quoi faire en cas d'exception.
On peut ne pas placer de code dans le bloc catch, mais il faut savoir ce que l'on fait, à moins de dire "Les erreurs on s'en fout !"


Bonjour
Merci pour votre reponse.

il faut savoir quoi faire …

Pour quoi j'ai n'arrive plus envoyer les fichier. Donc le try ne peut pas donner une réponse? Ni afficher le/un pour quoi?

Merci
Arnold

NB
J'ai lu "La gestion des erreurs"
MediaPlayList
  | | L'administrateur a désactivé l'accés public en écriture.
Laurent Dardenne
Utilisateur

PowerShelleur Platinum
Messages: 5711
graph
Karma: 207  
Re:Try/Catch - 6/06/19 17:47 arnold écrit:

Pour quoi j'ai n'arrive plus envoyer les fichiers.

Je ne sais pas, l'erreur " Erreur système." est une erreur contextuelle. Nous n'avons pas le même système.
arnold écrit:

Donc le try ne peut pas donner une réponse?

Non le try 'protège' une section de code.
arnold écrit:

Ni afficher le/un pour quoi?

Si mais, plus précisément, c'est l'objet exception dans le bloc catch associé au try. Essaie d'afficher l'exception avec la fonction resolve-error disponible sur le net.

Dans certains cas on peut avoir une réponse claire quant à la cause de l'erreur ('accès refusé' par exemple), le plus souvent il faut la chercher dans le code appelant ou vérifier si l'infra n'a pas été modifié (mot de passe, compte, accès réseau, antivirus, fichier host,etc, etc.

Essaie de tester manuellement, si possible, ton action. Ou utilise Filezilla par exemple pour tester toute la chaîne.
Tutoriels PowerShell
  | | L'administrateur a désactivé l'accés public en écriture.
arnold
Utilisateur

PowerShelleur Amateur
Messages: 56
graphgraph
Karma: 1  
Re:Try/Catch - 12/06/19 17:14 Bonsoir Mesd. et Mess.

Le service FTP est bloquer a cause de SSL/Tsl

Comment je peut inclure cette paramètre dans le scripte?

Ces 2 ligne sont obsolète

Code:

  $Xftp.UsePassive $true $Xftp.EnableTls $true



Merci
Arnold

En add: j'ai trouver..., mais comment utiliser....
Explication FTPES explicit TLS/SSL

Mes Test

Code:

  cls " 1" [Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls          Invoke-WebRequest "https://arenas.pagesperso-orange.fr/GradientExample/frameset-mediaplayer.html" "==============================================" " 2" [Net.SecurityProtocolType] " ==============================================" " 3" # get TSL !!! [enum]::GetNames([Net.SecurityProtocolType]) " ==============================================" " 4" # Force PowerShell to use TLS 1.1 [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.SecurityProtocolType]::Tls11 # ???     " ================================================= " " 5" # Force PowerShell to use it's default of TLS 1.0 [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.SecurityProtocolType]::Tls          # ??? " ================================================= " " 6" # Force PowerShell ti use TLS 1.3 [Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls13 <# Exception setting "SecurityProtocol""Cannot convert null to type "System.Net.SecurityProtocolType" due to enumeration values that are not valid.  Specify one of the following enumeration values and try again. The possible enumeration values are " Ssl3,Tls,Tls11,Tls12"." At C:\Users\admin\AppData\Local\Temp\f5d4da71-5524-47fe-8946-bb485ab4f8f6.ps1:26 char:1 + [Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolTy ... + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"     + CategoryInfo          : NotSpecified: (:) [], SetValueInvocationException     + FullyQualifiedErrorId : ExceptionWhenSetting #> " ================================================  "



Message édité par: arnold, à: 12/06/19 18:04
MediaPlayList
  | | L'administrateur a désactivé l'accés public en écriture.
© 2019 PowerShell-Scripting.com