Flash info

"La connaissance s'acquiert par l'expérience, tout le reste n'est que de l'information. "

Albert Einstein (1879-1955)

 
Accueil arrow Forum

Bienvenue sur le forum PowerShell-Scripting.com

 
ludoob
Utilisateur

PowerShelleur Débutant
Messages: 32
graphgraph
Karma: 0  
[] récupérer l'erreur du catch - 15/02/19 10:07 Bonjour,
je voudrais récupérer l'erreur du catch , pour effectuer un traitement après . je post le script.

Code:

  #region credential $username "xxxx\xxxx" $mdp ConvertTo-SecureString -String "xxxx" -AsPlainText -Force $cred = new-object -typename System.Management.Automation.PSCredential -argumentlist $username$mdp #endregion credential $serveurRDS "RDS-2008" try { Write-Host -ForegroundColor green $serveurRDS $Session = New-PSSession -ComputerName $serveurRDS -Credential $cred $Results Invoke-Command -Session $Session -ScriptBlock {                    $ArrayUsersNotDelete '.NET v4.5|admin|.NET v4.5 Classic|MSSQL$MICROSOFT##WID|Public|Default|Administrateur|CS-OM-AS|SVC- SQL' #      $PathFolderUsers "C:\Users\"     $FolderUsers Get-ChildItem -Path $PathFolderUsers where $_.FullName -notmatch $ArrayUsersNotDelete }     #            $FolderUsers     #            $FolderUsers | gm     $Dateday Get-Date -Format d     $Dateday = [datetime]::Parse($Dateday$null)     #            $Dateday.GetType()     #            Write-Host $Dateday -ForegroundColor Green          $Array_dossier_users = @() # creation du tableau vide     foreach ($Users IN $FolderUsers)     {         $NameFolderUsers $Users.Name # recuperer que le nom du dossier         $NameFolderUsersDate $Users.LastWriteTime # recuperer la date de création du dossier         $NameFolderDeleteUser $NameFolderUsers         #                Write-Host $NameFolderUsersDate -ForegroundColor Green         #                Write-Host $NameFolderUsers -ForegroundColor Green         #    $NameFolderUsersDate         $NameFolderUsersDate = (get-date $NameFolderUsersDate -format 'dd/MM/yyyy')         $NameFolderUsersDateFR = (get-date $NameFolderUsersDate -format 'dd/MM/yyyy')         $NameFolderUsersDate = [datetime]::Parse($NameFolderUsersDate$null)         #                $NameFolderUsersDate.GetType()          #        Write-Host $NameFolderUsersDate -ForegroundColor Green         if (($NameFolderUsers.EndsWith('.torx')) -or ($NameFolderUsers.EndsWith('.torx.corp')) -or ($NameFolderUsersDate -lt $Dateday))         {                                     $Traitement "A-Faire"             $Nomuser $NameFolderUsers             #Write-Host $Nomuser -ForegroundColor Green             $Array_dossier_users += New-Object System.Management.Automation.PSObject -Property @{ 'Dossier_user' $Nomuser'Date_du_dossier' $NameFolderUsersDateFR'Date_du_jour' $Dateday'Traitement' $Traitement # ajout dans le tableau a chaque tour         #end if         else         {             $Traitement "Pas de Traitement"         }     } #end foreach     Write-Host " liste des dossier : $Array_dossier_users"     $Array_dossier_users      }#end PSSession remove-pssession $Session #end Try catch [System.Management.Automation.ValidationMetadataException] { Write-Host -ForegroundColor Yellow $Error[0].Exception.GetType() Write-Host -ForegroundColor Cyan $Error[0].Exception $TraitementErreur "Echec-Session" } catch { Write-Host -ForegroundColor Yellow $Error[0].Exception.GetType() Write-Host -ForegroundColor Cyan $Error[0].Exception $TraitementErreur "Erreur" } Write-Host -ForegroundColor Yellow $Traitement if ($Results select Traitement where $_.Traitement -eq "A-Faire"} ) {     $Traitement "A-Faire"     #Write-Host -ForegroundColor Yellow $Traitement #region Out result in File #$Array_dossier_users_txt | Out-File "\\srv-sco-01\c$\Commandes\Maintenances\RDS\Report-dossier- delete-user.txt" -Force $Results select  Dossier_user Out-File "\\srv-sco-01\c$\Commandes\Maintenances\RDS\Report-dossier-delete-user_$serveurRDS.txt" -Force #endregion Out result in File #region formatage fichier txt -Skip 3 , enlever les 3 permiere logne Get-Content -Path "\\srv-sco-01\c$\Commandes\Maintenances\RDS\Report-dossier-delete-user_$serveurRDS.txt" select -Skip 3 Out-File "\\srv-sco-01\c$\Commandes\Maintenances\RDS\Report-dossier-delete-user-Final_$serveurRDS.txt" # enlever les CR/LF [IO.File]::ReadAllText("\\srv-sco-01\c$\Commandes\Maintenances\RDS\Report-dossier-delete-user-Final_$serveurRDS.txt") -replace '\s+\r\n+'"`r`n" Out-File "\\srv-sco-01\c$\Commandes\Maintenances\RDS\Report-dossier-delete-user-Final_$serveurRDS.txt" -Force $fileuser = [IO.File]::ReadAllText("\\srv-sco-01\c$\Commandes\Maintenances\RDS\Report-dossier-delete-user-Final_$serveurRDS.txt") [IO.File]::WriteAllLines("\\srv-sco-01\c$\Commandes\Maintenances\RDS\Report-dossier-delete-user-Final_$serveurRDS.txt"$fileuser.TrimEnd()) # pour supprimer l'ajout de ligne en plus du out-file $file_folder_user "\\srv-sco-01\c$\Commandes\Maintenances\RDS\Report-dossier-delete-user-Final_$serveurRDS.txt" #endregion formatage fichier txt #region Traietment HTML [string]$CSS = @'     <style> h2 {     color:black;     text-align:center;     text-decoration:underline;     font-size:18pt;  } body {font-family:Verdana;   font-size:8pt;    background: #fefeff} h2 {color:rgb(109, 108, 108); text-align:center; text-decoration:underline; font-size:18pt;} th { color:yellow; background-Color:black; } tr {color:rgb(252, 250, 250)} TR:Nth-Child(even) {Background-Color: #73737a;} TR:Nth-Child(odd) {Background-Color: #969393;} tr:hover {background-color: deeppink;} table, tr, td, th {padding: 20px; margin: 0px;text-align: center;vertical-align:top} table {margin-left: auto;margin-right: auto;}     </style> '@ $Results select  Dossier_userDate_du_dossierDate_du_jour ConvertTo-HTML -Head $CSS -PreContent "<h2>La liste des dossiers à supprimer sur le serveur RDS $serveurRDS</h2>" out-file "\\srv-sco-01\c$\Commandes\Maintenances\RDS\Report-dossier-delete-user_$serveurRDS.html" $Body "\\srv-sco-01\c$\Commandes\Maintenances\RDS\Report-dossier-delete-user_$serveurRDS.html" #endregion Traietment HTML } ifelse ($Results select Traitement where $_.Traitement -notlike "A-Faire"} ) { $Traitement "Pas de Traitement" } else { $Traitement $TraitementErreur }



merci de votre aide.

Message édité par: ludoob, à: 15/02/19 10:08
  | | L'administrateur a désactivé l'accés public en écriture.
Arnaud
Admin

Administrateur
Messages: 1318
graphgraph
Karma: 45  
Re:[] récupérer l'erreur du catch - 15/02/19 12:41 Bonjour Ludoob,

Pour récupérer l'erreur du catch, il te suffit dans ton bloc Catch d'ajouter :
Code:

  Throw $_



L'objet erreur se trouve stockée dans la variable $_ à l'intérieur de ton bloc Catch.

Arnaud
MVP PowerShell (depuis 2007)
Suivez moi sur Twitter !
  | | L'administrateur a désactivé l'accés public en écriture.
© 2019 PowerShell-Scripting.com