Question Try/Catch

  • arnold
  • Auteur du sujet
  • Visiteur
  • Visiteur
il y a 5 ans 4 mois #28993 par arnold
Try/Catch a été créé par arnold
Bonjour

Svp
Comment inclure un try/catch
dans le scripte?

Merci pour votre aide

Arnold



[code:1]$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 !\";[/code:1]


j'ai obtient l'erreur suivant:

[code:1]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[/code:1]

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

Plus d'informations
il y a 5 ans 4 mois #28997 par Laurent Dardenne
Réponse de Laurent Dardenne sur le sujet Re:Try/Catch
Salut,
arnold écrit:

Comment inclure un try/catch

Comme ceci:

[code:1]try {
$Xwebclient.UploadFile($Xuri, $XLocalFile)
} catch {
#mais tu fais quoi ici ?
}[/code:1]
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 !\" :P

Tu peux consulter un tutoriel sur la gestion des erreurs, via le lien indiqué dans ma signature.

Tutoriels PowerShell

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

  • arnold
  • Auteur du sujet
  • Visiteur
  • Visiteur
il y a 5 ans 4 mois #28999 par arnold
Réponse de arnold sur le sujet Re:Try/Catch

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\"

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

Plus d'informations
il y a 5 ans 4 mois #29000 par Laurent Dardenne
Réponse de Laurent Dardenne sur le sujet Re:Try/Catch
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

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

  • arnold
  • Auteur du sujet
  • Visiteur
  • Visiteur
il y a 5 ans 4 mois #29019 par arnold
Réponse de arnold sur le sujet Re:Try/Catch
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:1]
$Xftp.UsePassive = $true

$Xftp.EnableTls = $true[/code:1]

Merci
Arnold

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

Mes Test

[code:1]
cls

\" 1\"
[Net.ServicePointManager]::«»SecurityProtocol = [Net.SecurityProtocolType]::Tls

Invoke-WebRequest \"arenas.pagesperso-orange.fr/GradientExam...diaplayer.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
#>

\" ================================================ \"




[/code:1]<br><br>Message édité par: arnold, à: 12/06/19 18:04

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

Plus d'informations
il y a 1 an 6 mois - il y a 1 an 6 mois #33148 par Najib
Réponse de Najib sur le sujet Re:Try/Catch
$Xftp = "ftp://perso-ftp.orange.fr/"
$Xftp.UsePassive = $true
$Xftp.EnableTls = $true

$XlocalDirectory = Get-Content "c:\studio\"
$Xuser = "..."
$Xpass = "..."

try {
    $Xwebclient = New-Object System.Net.WebClient
    $Xwebclient.Credentials = New-Object System.Net.NetworkCredential($Xuser,$Xpass)

    $XFiles = Get-ChildItem -Path "c:\studio\*" -Recurse -Force | ? {$_.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

} catch {
    Write-Host "Error occurred: $_" -ForegroundColor Red
} finally {
    clear-variable X* -scope global -Force
    (new-object Media.SoundPlayer "C:\WINDOWS\Media\notify.wav").play();
    write-host "Notify Done !" -ForegroundColor Green
}
 
Dernière édition: il y a 1 an 6 mois par Najib.

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

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