Différences
Ci-dessous, les différences entre deux révisions de la page.
| Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente | ||
| dailysave [2019/03/26 15:16] – [Script d'interprétation pour Nagios] nekan | dailysave [2021/03/05 16:50] (Version actuelle) – nekan | ||
|---|---|---|---|
| Ligne 1: | Ligne 1: | ||
| + | <alert type=" | ||
| + | * Abandon de l' | ||
| + | * Utilisation de ShadowCopy | ||
| + | </ | ||
| + | |||
| ====== Invoke-DailySave - Sauvegarde journalière des dossiers utilisateurs ====== | ====== Invoke-DailySave - Sauvegarde journalière des dossiers utilisateurs ====== | ||
| Ligne 13: | Ligne 18: | ||
| Les informations sont affichés en temps réel dans la console avec une coloration syntaxique, information en <color green> | Les informations sont affichés en temps réel dans la console avec une coloration syntaxique, information en <color green> | ||
| - | Il inclue | + | Il inclut |
| ===== Script principal ===== | ===== Script principal ===== | ||
| - | <code:ps1> | + | <sxh powershell> |
| - | # | + | # Ligne ajoutée pour activer la coloration syntaxique. A supprimer. |
| <# | <# | ||
| .SYNOPSIS | .SYNOPSIS | ||
| + | |||
| + | |||
| + | ███████╗██╗ | ||
| + | ██╔════╝██║ | ||
| + | ███████╗███████║ ╚████╔╝ ██████╔╝█████╔╝ ███████║ | ||
| + | ╚════██║██╔══██║ | ||
| + | ███████║██║ | ||
| + | ╚══════╝╚═╝ | ||
| + | |||
| + | ███████╗██╗ | ||
| + | ██╔════╝╚██╗ ██╔╝██╔════╝╚══██╔══╝██╔════╝████╗ ████║ | ||
| + | ███████╗ ╚████╔╝ ███████╗ | ||
| + | ╚════██║ | ||
| + | ███████║ | ||
| + | ╚══════╝ | ||
| + | |||
| + | |||
| ############################################################################################################# | ############################################################################################################# | ||
| # # | # # | ||
| Ligne 32: | Ligne 53: | ||
| .DESCRIPTION | .DESCRIPTION | ||
| - | Lance la sauvegarde | + | Lance la sauvegarde |
| - | Cette sauvegarde est une copie miroir de ce dossier vers le même dossier dans un partage lié pour chaque utilisateur | + | |
| Un fichier de log journalier est créé et contient toutes les traces de la sauvegarde. (C: | Un fichier de log journalier est créé et contient toutes les traces de la sauvegarde. (C: | ||
| Ligne 40: | Ligne 60: | ||
| Indique le ou les noms (séparé par des virgules (,)) des PC à sauvegarder. Si le paramètre n'est pas renseigner, la sauvegarde sera lancée sur tous les PC contenus dans les OU PC Fixes, PC Portables et Direction. | Indique le ou les noms (séparé par des virgules (,)) des PC à sauvegarder. Si le paramètre n'est pas renseigner, la sauvegarde sera lancée sur tous les PC contenus dans les OU PC Fixes, PC Portables et Direction. | ||
| - | .PARAMETER | + | .PARAMETER |
| + | |||
| + | Si le paramètre -Verbose est indiqué, les détails de la sauvegarde seront affichés dans la console. | ||
| + | |||
| + | .PARAMETER Nagios | ||
| - | Si le paramètre -v est indiqué, | + | Si le paramètre -Nagios |
| - | .PARAMETER | + | .PARAMETER |
| - | Si le paramètre -n est indiqué, un fichier | + | Si le paramètre -ExtraInfo |
| .EXAMPLE | .EXAMPLE | ||
| - | .\Invoke-DailySave.ps1 | + | .\DailySave.ps1 |
| Lance la sauvegarde sur tous les postes. | Lance la sauvegarde sur tous les postes. | ||
| .EXAMPLE | .EXAMPLE | ||
| - | .\Invoke-DailySave.ps1 -v | + | .\DailySave.ps1 -Verbose |
| Lance la sauvegarde sur tous les postes en affichant les détails. | Lance la sauvegarde sur tous les postes en affichant les détails. | ||
| .EXAMPLE | .EXAMPLE | ||
| - | .\Invoke-DailySave.ps1 -PC PC-49,PC-7 | + | .\DailySave.ps1 -PC PC-49,PC-7 |
| Lance la sauvegarde sur les postes PC-49 et PC-7 | Lance la sauvegarde sur les postes PC-49 et PC-7 | ||
| Ligne 67: | Ligne 91: | ||
| NOM : Invoke-DailySave.ps1 | NOM : Invoke-DailySave.ps1 | ||
| AUTEUR : | AUTEUR : | ||
| - | VERSION : 1.3.1 | + | VERSION : 1.5 |
| HISTORIQUE : | HISTORIQUE : | ||
| Ligne 94: | Ligne 118: | ||
| 1.3.1 | 1.3.1 | ||
| + | |||
| + | 1.4 | ||
| + | |||
| + | 1.5 | ||
| #> | #> | ||
| Ligne 100: | Ligne 128: | ||
| Param( | Param( | ||
| [String[]]$PC=' | [String[]]$PC=' | ||
| - | [Switch]$v, | + | [Switch]$Verbose, |
| - | [Switch]$n | + | [Switch]$Nagios, |
| + | [Switch]$ExtraInfo | ||
| ) | ) | ||
| Ligne 108: | Ligne 137: | ||
| If ($PC -eq ' | If ($PC -eq ' | ||
| { | { | ||
| - | # Ici on indique les OU dans lesquelles on va chercher les postes à sauvegarder | ||
| $ListPC = (Get-ADComputer -SearchBase "OU=PC Fixe, | $ListPC = (Get-ADComputer -SearchBase "OU=PC Fixe, | ||
| $ListPC += (Get-ADComputer -SearchBase "OU=PC Portable, | $ListPC += (Get-ADComputer -SearchBase "OU=PC Portable, | ||
| Ligne 118: | Ligne 146: | ||
| } | } | ||
| $CheckDate = Get-Date -UFormat %Y-%m-%d | $CheckDate = Get-Date -UFormat %Y-%m-%d | ||
| - | $LogFile | + | $Path = " |
| - | $UserProfilePath | + | $LogFile = "$Path\DailySave-$CheckDate.log" |
| + | $ScriptName | ||
| + | $UserProfilePath = '' | ||
| $PCSaved = 0 | $PCSaved = 0 | ||
| $PCOffline = 0 | $PCOffline = 0 | ||
| Ligne 125: | Ligne 155: | ||
| $PCWithWarn = 0 | $PCWithWarn = 0 | ||
| $TotalPC = 0 | $TotalPC = 0 | ||
| - | $Old = 7 # Indiquer ici la durée de rétention des anciens logs en jours. | + | $Old = 7 |
| - | $Domaine = 'TEST' | + | $Domaine = "TEST" |
| - | $FQDN = ' | + | $FQDN = "test.local" |
| - | $Partage = "\\SAMBA\Partage" | + | $Partage = "\\SERVEUR\Partage_utilisateur" |
| - | $SavedPath = " | + | $SavedPath = " |
| + | $Report = " | ||
| # Déclaration des fonctions | # Déclaration des fonctions | ||
| + | Function Add-Log() | ||
| + | { | ||
| + | Param | ||
| + | ( | ||
| + | [string]$Type, | ||
| + | [string]$Message, | ||
| + | [switch]$Line | ||
| + | ) | ||
| + | |||
| + | If ($Line) | ||
| + | { | ||
| + | Write-Host " | ||
| + | Add-Content -Path $LogFile -Value " | ||
| + | } | ||
| + | Else | ||
| + | { | ||
| + | $CheckTime = Get-Date -Format G | ||
| + | If ($Verbose) | ||
| + | { | ||
| + | Switch($Type) | ||
| + | { | ||
| + | " | ||
| + | { | ||
| + | $Color = " | ||
| + | } | ||
| + | " | ||
| + | { | ||
| + | $Color = " | ||
| + | } | ||
| + | " | ||
| + | { | ||
| + | $Color = " | ||
| + | } | ||
| + | " | ||
| + | { | ||
| + | $Color = " | ||
| + | } | ||
| + | default | ||
| + | { | ||
| + | $Color = " | ||
| + | } | ||
| + | } | ||
| + | Write-Host " | ||
| + | Write-Host " | ||
| + | Write-Host $Message | ||
| + | } | ||
| + | Add-Content -Path $LogFile -Value " | ||
| + | } | ||
| + | } | ||
| + | |||
| Function Get-ConnectedUser($PC) | Function Get-ConnectedUser($PC) | ||
| Ligne 140: | Ligne 222: | ||
| | | ||
| $Name = " | $Name = " | ||
| - | | + | |
| - | Write-Host " | + | |
| - | Write-Host | + | |
| - | Write-Host | + | |
| - | Add-Content -Path $LogFile -Value " | + | |
| } | } | ||
| Else | Else | ||
| { | { | ||
| - | $Name = $Name.Replace('$Domaine\','' | + | $Name = $Name.Replace("$Domaine",'' |
| - | | + | |
| - | Write-Host " | + | |
| - | Write-Host | + | |
| - | Write-Host | + | |
| - | Add-Content -Path $LogFile -Value " | + | |
| } | } | ||
| Return $Name | Return $Name | ||
| Ligne 161: | Ligne 235: | ||
| { | { | ||
| Param( | Param( | ||
| - | [parameter(position=0)] | + | [String]$PC, |
| - | | + | |
| - | [parameter(position=1)] | + | |
| [String]$User | [String]$User | ||
| ) | ) | ||
| # On récupère le SID de l' | # On récupère le SID de l' | ||
| - | $SID = ([wmi]" | + | $SID = ([wmi]" |
| # ON interroge le PC distant pour connaître le chemin du profil utilisateur | # ON interroge le PC distant pour connaître le chemin du profil utilisateur | ||
| Ligne 180: | Ligne 252: | ||
| { | { | ||
| # On interroge le PC via Get-WmiObject plutôt que par ping pour éviter les erreurs de pare-feu | # On interroge le PC via Get-WmiObject plutôt que par ping pour éviter les erreurs de pare-feu | ||
| - | $OnlineTest = (Get-WmiObject -Comp $PC -CL Win32_ComputerSystem -ErrorAction SilentlyContinue -WarningAction SilentlyContinue -InformationAction SilentlyContinue).Domain | + | $OnlineTest = (Get-WmiObject -ComputerName |
| If ($OnlineTest -eq $FQDN) | If ($OnlineTest -eq $FQDN) | ||
| { | { | ||
| - | | + | |
| - | Write-Host " | + | |
| - | Write-Host | + | |
| - | Write-Host | + | |
| - | Add-Content -Path $LogFile -Value " | + | |
| Return $true | Return $true | ||
| } | } | ||
| Else | Else | ||
| { | { | ||
| - | | + | |
| - | Write-Host " | + | |
| - | Write-Host | + | |
| - | Write-Host | + | |
| - | Add-Content -Path $LogFile -Value " | + | |
| Return $false | Return $false | ||
| } | } | ||
| Ligne 203: | Ligne 267: | ||
| Function Run-Save | Function Run-Save | ||
| { | { | ||
| - | Param( | + | Param |
| - | [parameter(position=0)] | + | |
| - | | + | [string]$PC, |
| - | | + | [String]$User |
| - | | + | ) |
| - | ) | + | |
| - | # Récupération du chemin du profil utilisateur et formattage | + | # Récupération du chemin du profil utilisateur et formatage |
| - | $UserProfilePath = Get-UserLocalPath $PC $User | + | $UserProfilePath = Get-UserLocalPath |
| $UserProfilePath = $UserProfilePath.Replace(":"," | $UserProfilePath = $UserProfilePath.Replace(":"," | ||
| | | ||
| # Définitions des dossiers pour la copie | # Définitions des dossiers pour la copie | ||
| $Source = " | $Source = " | ||
| - | $Destination = " | + | $Destination = " |
| # Copie des fichiers | # Copie des fichiers | ||
| - | If ($v) | + | If ($ExtraInfo) |
| { | { | ||
| ROBOCOPY $Source $Destination /COPYALL /MIR /ZB /R:0 /W:0 | ROBOCOPY $Source $Destination /COPYALL /MIR /ZB /R:0 /W:0 | ||
| Ligne 232: | Ligne 295: | ||
| If (Test-Path $LogFile) | If (Test-Path $LogFile) | ||
| { | { | ||
| - | | + | |
| - | | + | |
| - | Write-Host " | + | |
| - | Write-Host | + | Add-Log -Line |
| - | | + | |
| - | Write-Host " | + | |
| - | Write-Host | + | |
| - | Write-Host | + | |
| - | Add-Content | + | |
| - | Add-Content -Path $LogFile -Value " | + | |
| } | } | ||
| Else | Else | ||
| { | { | ||
| - | $CheckTime = Get-Date -UFormat " | ||
| - | Write-Host " | ||
| - | Write-Host " | ||
| - | Write-Host " | ||
| - | $CheckTime = Get-Date -UFormat " | ||
| - | Write-Host " | ||
| - | Write-Host " | ||
| - | Write-Host " | ||
| - | $CheckTime = Get-Date -UFormat " | ||
| - | Write-Host " | ||
| - | Write-Host " | ||
| - | Write-Host " | ||
| New-Item -Path $LogFile > $null | New-Item -Path $LogFile > $null | ||
| - | Get-ChildItem –Path | + | |
| - | Add-Content -Path $LogFile -Value "Log de la sauvegarde journalière des dossiers utilisateurs." | + | |
| - | Add-Content -Path $LogFile -Value | + | Add-Log -Type "INFO" -Message |
| - | Add-Content -Path $LogFile -Value | + | Add-Log -Type "INFO" -Message |
| - | Add-Content | + | Add-Log -Line |
| - | Add-Content -Path $LogFile | + | |
| } | } | ||
| Ligne 270: | Ligne 314: | ||
| { | { | ||
| $TotalPC += 1 | $TotalPC += 1 | ||
| - | | + | |
| - | Write-Host " | + | |
| - | Write-Host | + | |
| - | Write-Host | + | |
| - | Add-Content -Path $LogFile -Value " | + | |
| | | ||
| # On teste si la machine est en ligne | # On teste si la machine est en ligne | ||
| Ligne 289: | Ligne 329: | ||
| { | { | ||
| $CheckTime = Get-Date -UFormat " | $CheckTime = Get-Date -UFormat " | ||
| - | Write-Host " | + | |
| - | Write-Host " | + | { |
| - | Write-Host " | + | |
| + | Write-Host " | ||
| + | Write-Host " | ||
| + | } | ||
| Add-Content -Path $LogFile -Value " | Add-Content -Path $LogFile -Value " | ||
| - | Run-Save $PC $User | + | |
| + | | ||
| Switch ($LASTEXITCODE) | Switch ($LASTEXITCODE) | ||
| { | { | ||
| 0 | 0 | ||
| { | { | ||
| - | | + | |
| - | Write-Host " | + | |
| - | Write-Host | + | |
| - | Write-Host | + | |
| - | Add-Content -Path $LogFile -Value " | + | |
| $PCSaved += 1 | $PCSaved += 1 | ||
| } | } | ||
| 1 | 1 | ||
| { | { | ||
| - | | + | |
| - | Write-Host " | + | |
| - | Write-Host | + | |
| - | Write-Host | + | |
| - | Add-Content -Path $LogFile -Value " | + | |
| $PCSaved += 1 | $PCSaved += 1 | ||
| } | } | ||
| 2 | 2 | ||
| { | { | ||
| - | | + | |
| - | Write-Host " | + | |
| - | Write-Host | + | |
| - | Write-Host | + | |
| - | Add-Content -Path $LogFile -Value " | + | |
| $PCWithWarn += 1 | $PCWithWarn += 1 | ||
| } | } | ||
| 3 | 3 | ||
| { | { | ||
| - | | + | |
| - | Write-Host " | + | |
| - | Write-Host | + | |
| - | Write-Host | + | |
| - | Add-Content -Path $LogFile -Value " | + | |
| $PCSaved += 1 | $PCSaved += 1 | ||
| } | } | ||
| 4 | 4 | ||
| { | { | ||
| - | | + | |
| - | Write-Host " | + | |
| - | Write-Host | + | |
| - | Write-Host | + | |
| - | Add-Content -Path $LogFile -Value " | + | |
| $PCWithWarn += 1 | $PCWithWarn += 1 | ||
| } | } | ||
| 5 | 5 | ||
| { | { | ||
| - | | + | |
| - | Write-Host " | + | |
| - | Write-Host | + | |
| - | Write-Host | + | |
| - | Add-Content -Path $LogFile -Value " | + | |
| $PCWithWarn += 1 | $PCWithWarn += 1 | ||
| } | } | ||
| 6 | 6 | ||
| { | { | ||
| - | | + | |
| - | Write-Host " | + | |
| - | Write-Host | + | |
| - | Write-Host | + | |
| - | Add-Content -Path $LogFile -Value " | + | |
| $PCWithWarn += 1 | $PCWithWarn += 1 | ||
| } | } | ||
| 7 | 7 | ||
| { | { | ||
| - | | + | |
| - | Write-Host " | + | |
| - | Write-Host | + | |
| - | Write-Host | + | |
| - | Add-Content -Path $LogFile -Value " | + | |
| $PCWithWarn += 1 | $PCWithWarn += 1 | ||
| } | } | ||
| 8 | 8 | ||
| { | { | ||
| - | | + | |
| - | Write-Host " | + | |
| - | Write-Host | + | |
| - | Write-Host | + | |
| - | Add-Content -Path $LogFile -Value " | + | |
| $PCWithError += 1 | $PCWithError += 1 | ||
| } | } | ||
| 9 | 9 | ||
| { | { | ||
| - | | + | |
| - | Write-Host " | + | |
| - | Write-Host | + | |
| - | Write-Host | + | |
| - | Add-Content -Path $LogFile -Value " | + | |
| $PCWithWarn += 1 | $PCWithWarn += 1 | ||
| } | } | ||
| 10 | 10 | ||
| { | { | ||
| - | | + | |
| - | Write-Host " | + | |
| - | Write-Host | + | |
| - | Write-Host | + | |
| - | Add-Content -Path $LogFile -Value " | + | |
| $PCWithError += 1 | $PCWithError += 1 | ||
| } | } | ||
| 11 | 11 | ||
| { | { | ||
| - | | + | |
| - | Write-Host " | + | |
| - | Write-Host | + | |
| - | Write-Host | + | |
| - | Add-Content -Path $LogFile -Value " | + | |
| $PCWithError += 1 | $PCWithError += 1 | ||
| } | } | ||
| 12 | 12 | ||
| { | { | ||
| - | | + | |
| - | Write-Host " | + | |
| - | Write-Host | + | |
| - | Write-Host | + | |
| - | Add-Content -Path $LogFile -Value " | + | |
| $PCWithError += 1 | $PCWithError += 1 | ||
| } | } | ||
| 13 | 13 | ||
| { | { | ||
| - | | + | |
| - | Write-Host " | + | |
| - | Write-Host | + | |
| - | Write-Host | + | |
| - | Add-Content -Path $LogFile -Value " | + | |
| $PCWithError += 1 | $PCWithError += 1 | ||
| } | } | ||
| 14 | 14 | ||
| { | { | ||
| - | | + | |
| - | Write-Host " | + | |
| - | Write-Host | + | |
| - | Write-Host | + | |
| - | Add-Content -Path $LogFile -Value " | + | |
| $PCWithError += 1 | $PCWithError += 1 | ||
| } | } | ||
| 15 | 15 | ||
| { | { | ||
| - | | + | |
| - | Write-Host " | + | |
| - | Write-Host | + | |
| - | Write-Host | + | |
| - | Add-Content -Path $LogFile -Value " | + | |
| $PCWithError += 1 | $PCWithError += 1 | ||
| } | } | ||
| 16 | 16 | ||
| { | { | ||
| - | | + | |
| - | Write-Host " | + | |
| - | Write-Host | + | |
| - | Write-Host | + | |
| - | Add-Content -Path $LogFile -Value " | + | |
| $PCWithError += 1 | $PCWithError += 1 | ||
| } | } | ||
| Ligne 459: | Ligne 435: | ||
| $ExitCode = " | $ExitCode = " | ||
| } | } | ||
| - | | + | |
| - | Write-Host " | + | |
| - | Write-Host " | + | |
| - | Write-Host " | + | |
| - | Add-Content -Path $LogFile | + | |
| $PCWithError += 1 | $PCWithError += 1 | ||
| } | } | ||
| } | } | ||
| - | | + | |
| - | Write-Host " | + | |
| - | Write-Host | + | |
| - | Write-Host | + | |
| - | Add-Content -Path $LogFile -Value " | + | |
| } | } | ||
| } | } | ||
| Ligne 482: | Ligne 450: | ||
| # Fin de la sauvegarde | # Fin de la sauvegarde | ||
| - | + | Add-Log -Line | |
| - | $CheckTime = Get-Date -UFormat " | + | Add-Log -Type " |
| - | Write-Host " | + | Add-Log -Line |
| - | Write-Host " | + | Add-Log -Type " |
| - | Write-Host | + | Add-Log -Type " |
| - | $CheckTime = Get-Date -UFormat " | + | |
| - | Write-Host " | + | |
| - | Write-Host | + | |
| - | Write-Host | + | |
| - | $CheckTime = Get-Date -UFormat " | + | |
| - | Write-Host " | + | |
| - | Write-Host | + | |
| - | Write-Host | + | |
| - | $CheckTime = Get-Date -UFormat " | + | |
| - | Write-Host " | + | |
| If ($PCOffline -gt 0) | If ($PCOffline -gt 0) | ||
| { | { | ||
| - | | + | |
| - | Write-Host | + | |
| } | } | ||
| Else | Else | ||
| { | { | ||
| - | | + | |
| - | Write-Host | + | |
| } | } | ||
| - | $CheckTime = Get-Date -UFormat " | ||
| - | Write-Host " | ||
| If ($PCWithWarn -gt 0) | If ($PCWithWarn -gt 0) | ||
| { | { | ||
| - | | + | |
| - | Write-Host | + | |
| } | } | ||
| Else | Else | ||
| { | { | ||
| - | | + | |
| - | Write-Host | + | |
| } | } | ||
| - | $CheckTime = Get-Date -UFormat " | ||
| - | Write-Host " | ||
| If ($PCWithError -gt 0) | If ($PCWithError -gt 0) | ||
| { | { | ||
| - | | + | |
| - | Write-Host | + | |
| } | } | ||
| Else | Else | ||
| { | { | ||
| - | | + | |
| - | Write-Host | + | |
| } | } | ||
| - | Add-Content -Path $LogFile -Value " | ||
| - | Add-Content -Path $LogFile -Value " | ||
| - | Add-Content -Path $LogFile -Value " | ||
| - | Add-Content -Path $LogFile -Value " | ||
| - | If ($PCOffline -gt 0) | ||
| - | { | ||
| - | Add-Content -Path $LogFile -Value " | ||
| - | } | ||
| - | Else | ||
| - | { | ||
| - | Add-Content -Path $LogFile -Value " | ||
| - | } | ||
| - | If ($PCWithWarn -gt 0) | ||
| - | { | ||
| - | Add-Content -Path $LogFile -Value " | ||
| - | } | ||
| - | Else | ||
| - | { | ||
| - | Add-Content -Path $LogFile -Value " | ||
| - | } | ||
| - | If ($PCWithError -gt 0) | ||
| - | { | ||
| - | Add-Content -Path $LogFile -Value " | ||
| - | } | ||
| - | Else | ||
| - | { | ||
| - | Add-Content -Path $LogFile -Value " | ||
| - | } | ||
| - | Add-Content -Path $LogFile -Value " | ||
| # Création d'un fichier de réponse pour un traitement par Nagios | # Création d'un fichier de réponse pour un traitement par Nagios | ||
| - | If ($n) | + | If ($Nagios) |
| { | { | ||
| # On vérifie la présence d'un ancien rapport et on le détruit | # On vérifie la présence d'un ancien rapport et on le détruit | ||
| - | $Report = " | ||
| If (Test-Path -Path $Report) | If (Test-Path -Path $Report) | ||
| { | { | ||
| Ligne 585: | Ligne 503: | ||
| # Affichage des logs | # Affichage des logs | ||
| - | | + | |
| - | | + | |
| - | Write-Host " | + | |
| - | Write-Host | + | |
| - | Add-Content -Path $LogFile -Value " | + | |
| - | Add-Content -Path $LogFile -Value " | + | |
| } | } | ||
| - | + | </sxh> | |
| - | </code> | + | |
| ===== Script d' | ===== Script d' | ||
| - | <code:ps> | + | <sxh powershell> |
| ############################################################################## | ############################################################################## | ||
| # # | # # | ||
| Ligne 614: | Ligne 527: | ||
| [int]$Critical = $Report.Critical | [int]$Critical = $Report.Critical | ||
| - | $Output = "" | + | $Output = '' |
| $ExitCode = 3 | $ExitCode = 3 | ||
| Ligne 641: | Ligne 554: | ||
| exit $ExitCode | exit $ExitCode | ||
| - | </code> | + | </sxh> |
| --- // | --- // | ||
| ~~DISCUSSION~~ | ~~DISCUSSION~~ | ||