Question
Avancement script figé
- Mathieu
- Auteur du sujet
- Hors Ligne
- Nouveau membre
-
Réduire
Plus d'informations
- Messages : 5
- Remerciements reçus 0
il y a 8 ans 6 mois #24107
par Mathieu
Avancement script figé a été créé par Mathieu
Bonjour,
Après l'exécution de mon script de sauvegarde, powershell m'indique un pourcentage d'avancement de 1 % alors que celui-ci est à 82 % sur le logiciel de sauvegarde Windows Server Backup. Comme le démontre l'image ci-dessous :
Voici le script utilisé :
[code:1]# Script d'execution de Windows Serveur Backup
# Ce script permettra :
# - De vérifier la présence de Windows Serveur Backup sur l'ordinateur Hôte,
# - De vérifier si le disque de donnée D:\ est présent,
# - De vérifier si le disque de sauvegarde S:\ est présent,
# - Lancement de la sauvegarde
If (-not (Test-Path \"C:\Windows\Logs\WindowsServerBackup\"«»))
{
#Création du fichier \"WindowsServerBackup\", \"Logs\" et \"Execution\"
New-Item -ItemType Directory -Path \"C:\Windows\Logs\WindowsServerBackup\Logs\\" -name \"Execution\"
echo \"\"
echo \"Le dossier Windows Server Backup n'est pas présent !\"
echo \"\"
# Création de fichier de Logs dans WindowsServerBackup\Logs\Execution\EXECUTION_ERROR_WB.log
$fichier = \"C:\Windows\Logs\WindowsServerBackup\Logs\Execution\EXECUTION_ERROR_WB.log\"
$UserName = [ENVIRONMENT]::UserDomainName
$lines = \"\"
$line = Get-Date
$line1 = \"Par $UserName\"
$line2 = \"Le dossier Windows Server Backup n'est pas présent !\"
$line5 = \"LOG GENERE PAR : script_execution_powershell\"
Add-Content -Path $fichier -value $lines, $line, $line1, $line2, $line5
}else{
#Création du fichier \"WindowsServerBackup\", \"Logs\" et \"Execution\"
New-Item -ItemType Directory -Path \"C:\Windows\Logs\WindowsServerBackup\Logs\\" -name \"Execution\"
echo \"\"
echo \"Le dossier Windows Server Backup est présent !\"
echo \"\"
# Création de fichier de Logs dans WindowsServerBackup\Logs\Execution\EXECUTION_OK_WB.log
$fichier = \"C:\Windows\Logs\WindowsServerBackup\Logs\Execution\EXECUTION_OK_WB.log\"
$UserName = [ENVIRONMENT]::UserDomainName
$lines = \"\"
$line = Get-Date
$line1 = \"Par $UserName\"
$line2 = \"Le dossier Windows Server Backup est présent !\"
$line5 = \"LOG GENERE PAR : script_execution_powershell\"
Add-Content -Path $fichier -value $lines, $line, $line1, $line2, $line5
# Si Windows-Server-Backup Possède l'objet \"Installed\" Alors
if (Get-WindowsFeature Windows-Server-Backup | Where-Object(\"Installed\"«»))
{
echo \"\"
echo \"La fonctionnalité Windows Server Backup est présente !\"
echo \"\"
# Création de fichier de Logs dans WindowsServerBackup\Logs\Execution\EXECUTION_OK_WB.log
$fichier = \"C:\Windows\Logs\WindowsServerBackup\Logs\Execution\EXECUTION_OK_WB.log\"
$UserName = [ENVIRONMENT]::UserDomainName
$lines = \"\"
$line = Get-Date
$line1 = \"Par $UserName\"
$line2 = \"La fonctionnalité Windows Server Backup est présente !\"
$line5 = \"LOG GENERE PAR : script_execution_powershell\"
Add-Content -Path $fichier -value $lines, $line, $line1, $line2, $line5
# Vérification de la présence du disque S:
if (Get-PSDrive H)
{
echo \"\"
echo \"Le disque de donnée H: est présent !\"
echo \"\"
# Création de fichier de Logs dans WindowsServerBackup\Logs\Execution\EXECUTION_OK_WB.log
$fichier = \"C:\Windows\Logs\WindowsServerBackup\Logs\Execution\EXECUTION_OK_WB.log\"
$UserName = [ENVIRONMENT]::UserDomainName
$lines = \"\"
$line = Get-Date
$line1 = \"Par $UserName\"
$line2 = \"Le disque de donnée H: est présent !\"
$line5 = \"LOG GENERE PAR : script_execution_powershell\"
Add-Content -Path $fichier -value $lines, $line, $line1, $line2, $line5
$dataapplication = \"H:\Applications\"
$dataechange = \"H:\Echange\"
$datautilisateur = \"H:\Utilisateurs\"
If (-not (Test-Path $dataapplication))
{
echo \"\"
echo \"Le dossier Applications dans le lecteur H: n'est pas présent !\"
echo \"\"
# Création de fichier de Logs dans WindowsServerBackup\Logs\Execution\EXECUTION_ERROR_WB.log
$fichier = \"C:\Windows\Logs\WindowsServerBackup\Logs\Execution\EXECUTION_ERROR_WB.log\"
$UserName = [ENVIRONMENT]::UserDomainName
$lines = \"\"
$line = Get-Date
$line1 = \"Par $UserName\"
$line2 = \"Le dossier Applications dans le lecteur H: n'est pas présent !\"
$line5 = \"LOG GENERE PAR : script_execution_powershell\"
Add-Content -Path $fichier -value $lines, $line, $line1, $line2, $line5
}else{
echo \"\"
echo \"Le dossier Applications dans le lecteur H: est présent !\"
echo \"\"
# Création de fichier de Logs dans WindowsServerBackup\Logs\Execution\EXECUTION_OK_WB.log
$fichier = \"C:\Windows\Logs\WindowsServerBackup\Logs\Execution\EXECUTION_OK_WB.log\"
$UserName = [ENVIRONMENT]::UserDomainName
$lines = \"\"
$line = Get-Date
$line1 = \"Par $UserName\"
$line2 = \"Le dossier Applications dans le lecteur H: est présent !\"
$line5 = \"LOG GENERE PAR : script_execution_powershell\"
Add-Content -Path $fichier -value $lines, $line, $line1, $line2, $line5
If (-not (Test-Path $dataechange))
{
echo \"\"
echo \"Le dossier Echange dans le lecteur H: n'est pas présent !\"
echo \"\"
# Création de fichier de Logs dans WindowsServerBackup\Logs\Execution\EXECUTION_ERROR_WB.log
$fichier = \"C:\Windows\Logs\WindowsServerBackup\Logs\Execution\EXECUTION_ERROR_WB.log\"
$UserName = [ENVIRONMENT]::UserDomainName
$lines = \"\"
$line = Get-Date
$line1 = \"Par $UserName\"
$line2 = \"Le dossier Echange dans le lecteur D: n'est pas présent !\"
$line5 = \"LOG GENERE PAR : script_execution_powershell\"
Add-Content -Path $fichier -value $lines, $line, $line1, $line2, $line5
}else{
echo \"\"
echo \"Le dossier Echange dans le lecteur H: est présent !\"
echo \"\"
# Création de fichier de Logs dans WindowsServerBackup\Logs\Execution\EXECUTION_OK_WB.log
$fichier = \"C:\Windows\Logs\WindowsServerBackup\Logs\Execution\EXECUTION_OK_WB.log\"
$UserName = [ENVIRONMENT]::UserDomainName
$lines = \"\"
$line = Get-Date
$line1 = \"Par $UserName\"
$line2 = \"Le dossier Echange dans le lecteur D: est présent !\"
$line5 = \"LOG GENERE PAR : script_execution_powershell\"
Add-Content -Path $fichier -value $lines, $line, $line1, $line2, $line5
If (-not (Test-Path $datautilisateur))
{
echo \"\"
echo \"Le dossier Utilisateurs dans le lecteur H: n'est pas présent !\"
echo \"\"
# Création de fichier de Logs dans WindowsServerBackup\Logs\Execution\EXECUTION_ERROR_WB.log
$fichier = \"C:\Windows\Logs\WindowsServerBackup\Logs\Execution\EXECUTION_ERROR_WB.log\"
$UserName = [ENVIRONMENT]::UserDomainName
$lines = \"\"
$line = Get-Date
$line1 = \"Par $UserName\"
$line2 = \"Le dossier Utilisateurs dans le lecteur H: n'est pas présent !\"
$line5 = \"LOG GENERE PAR : script_execution_powershell\"
Add-Content -Path $fichier -value $lines, $line, $line1, $line2, $line5
}else{
echo \"\"
echo \"Le dossier Utilisateurs dans le lecteur H: est présent !\"
echo \"\"
# Création de fichier de Logs dans WindowsServerBackup\Logs\Execution\EXECUTION_OK_WB.log
$fichier = \"C:\Windows\Logs\WindowsServerBackup\Logs\Execution\EXECUTION_OK_WB.log\"
$UserName = [ENVIRONMENT]::UserDomainName
$lines = \"\"
$line = Get-Date
$line1 = \"Par $UserName\"
$line2 = \"Le dossier Utilisateur dans le lecteur D: est présent !\"
$line5 = \"LOG GENERE PAR : script_execution_powershell\"
Add-Content -Path $fichier -value $lines, $line, $line1, $line2, $line5
if (Get-PSDrive S)
{
echo \"\"
echo \"Le disque de sauvegarde S: est présent !\"
echo \"\"
# Création de fichier de Logs dans WindowsServerBackup\Logs\Execution\EXECUTION_OK_WB.log
$fichier = \"C:\Windows\Logs\WindowsServerBackup\Logs\Execution\EXECUTION_OK_WB.log\"
$UserName = [ENVIRONMENT]::UserDomainName
$lines = \"\"
$line = Get-Date
$line1 = \"Par $UserName\"
$line2 = \"Le disque de sauvegarde S: est présent !\"
$line5 = \"LOG GENERE PAR : script_execution_powershell\"
Add-Content -Path $fichier -value $lines, $line, $line1, $line2, $line5
Write-Host \"Démarrage de la sauvegarde en cours !\" -ForegroundColor Green
wbadmin start backup -backupTarget:«»S: -Include:H: -vssFull
if($?)
{
Write-Host \"La sauvegarde c'est déroulé correctement !\" -ForegroundColor Green
# Création de fichier de Logs dans WindowsServerBackup\Logs\Execution\EXECUTION_OK_WB.log
$fichier = \"C:\Windows\Logs\WindowsServerBackup\Logs\Execution\EXECUTION_OK_WB.log\"
$UserName = [ENVIRONMENT]::UserDomainName
$lines = \"\"
$line = Get-Date
$line1 = \"Par $UserName\"
$line2 = \"La sauvegarde c'est déroulé correctement !\"
$line5 = \"LOG GENERE PAR : script_execution_powershell\"
Add-Content -Path $fichier -value $lines, $line, $line1, $line2, $line5
}else{
Write-Host \"La sauvegarde ne c'est pas déroulé correctement !\" -ForegroundColor Green
# Création de fichier de Logs dans WindowsServerBackup\Logs\Execution\EXECUTION_OK_WB.log
$fichier = \"C:\Windows\Logs\WindowsServerBackup\Logs\Execution\EXECUTION_ERROR_WB.log\"
$UserName = [ENVIRONMENT]::UserDomainName
$lines = \"\"
$line = Get-Date
$line1 = \"Par $UserName\"
$line2 = \"La sauvegarde ne c'est pas déroulé correctement !\"
$line5 = \"LOG GENERE PAR : script_execution_powershell\"
Add-Content -Path $fichier -value $lines, $line, $line1, $line2, $line5
}
}else{
echo \"\"
echo \"Le disque de sauvegarde S: n'est pas présent !\"
echo \"\"
# Création de fichier de Logs dans WindowsServerBackup\Logs\Execution\EXECUTION_ERROR_WB.log
$fichier = \"C:\Windows\Logs\WindowsServerBackup\Logs\Execution\EXECUTION_ERROR_WB.log\"
$UserName = [ENVIRONMENT]::UserDomainName
$lines = \"\"
$line = Get-Date
$line1 = \"Par $UserName\"
$line2 = \"Le disque de sauvegarde S: n'est pas présent !\"
$line5 = \"LOG GENERE PAR : script_execution_powershell\"
Add-Content -Path $fichier -value $lines, $line, $line1, $line2, $line5
}
}
}
}
}else{
echo \"\"
echo \"Le disque de donnée H: n'est pas présent !\"
echo \"\"
# Création de fichier de Logs dans WindowsServerBackup\Logs\Execution\EXECUTION_ERROR_WB.log
$fichier = \"C:\Windows\Logs\WindowsServerBackup\Logs\Execution\EXECUTION_ERROR_WB.log\"
$UserName = [ENVIRONMENT]::UserDomainName
$lines = \"\"
$line = Get-Date
$line1 = \"Par $UserName\"
$line2 = \"Le disque de donnée H: n'est pas présent !\"
$line5 = \"LOG GENERE PAR : script_execution_powershell\"
Add-Content -Path $fichier -value $lines, $line, $line1, $line2, $line5
}
}else{
echo \"\"
echo \"La fonctionnalité Windows Server Backup n'est pas présente !\"
echo \"\"
# Création de fichier de Logs dans WindowsServerBackup\Logs\Execution\EXECUTION_ERROR_WB.log
$fichier = \"C:\Windows\Logs\WindowsServerBackup\Logs\Execution\EXECUTION_ERROR_WB.log\"
$UserName = [ENVIRONMENT]::UserDomainName
$lines = \"\"
$line = Get-Date
$line1 = \"Par $UserName\"
$line2 = \"La fonctionnalité Windows Server Backup n'est pas présente !\"
$line5 = \"LOG GENERE PAR : script_execution_powershell\"
Add-Content -Path $fichier -value $lines, $line, $line1, $line2, $line5
}
}
Sleep 10000[/code:1]
Auriez-vous une idée de ce qui pourrais bloquer l'avancement du script ?
Merci beaucoup.
LeMaath<br><br>Message édité par: LeMath, à: 25/08/17 09:29
Après l'exécution de mon script de sauvegarde, powershell m'indique un pourcentage d'avancement de 1 % alors que celui-ci est à 82 % sur le logiciel de sauvegarde Windows Server Backup. Comme le démontre l'image ci-dessous :
Voici le script utilisé :
[code:1]# Script d'execution de Windows Serveur Backup
# Ce script permettra :
# - De vérifier la présence de Windows Serveur Backup sur l'ordinateur Hôte,
# - De vérifier si le disque de donnée D:\ est présent,
# - De vérifier si le disque de sauvegarde S:\ est présent,
# - Lancement de la sauvegarde
If (-not (Test-Path \"C:\Windows\Logs\WindowsServerBackup\"«»))
{
#Création du fichier \"WindowsServerBackup\", \"Logs\" et \"Execution\"
New-Item -ItemType Directory -Path \"C:\Windows\Logs\WindowsServerBackup\Logs\\" -name \"Execution\"
echo \"\"
echo \"Le dossier Windows Server Backup n'est pas présent !\"
echo \"\"
# Création de fichier de Logs dans WindowsServerBackup\Logs\Execution\EXECUTION_ERROR_WB.log
$fichier = \"C:\Windows\Logs\WindowsServerBackup\Logs\Execution\EXECUTION_ERROR_WB.log\"
$UserName = [ENVIRONMENT]::UserDomainName
$lines = \"\"
$line = Get-Date
$line1 = \"Par $UserName\"
$line2 = \"Le dossier Windows Server Backup n'est pas présent !\"
$line5 = \"LOG GENERE PAR : script_execution_powershell\"
Add-Content -Path $fichier -value $lines, $line, $line1, $line2, $line5
}else{
#Création du fichier \"WindowsServerBackup\", \"Logs\" et \"Execution\"
New-Item -ItemType Directory -Path \"C:\Windows\Logs\WindowsServerBackup\Logs\\" -name \"Execution\"
echo \"\"
echo \"Le dossier Windows Server Backup est présent !\"
echo \"\"
# Création de fichier de Logs dans WindowsServerBackup\Logs\Execution\EXECUTION_OK_WB.log
$fichier = \"C:\Windows\Logs\WindowsServerBackup\Logs\Execution\EXECUTION_OK_WB.log\"
$UserName = [ENVIRONMENT]::UserDomainName
$lines = \"\"
$line = Get-Date
$line1 = \"Par $UserName\"
$line2 = \"Le dossier Windows Server Backup est présent !\"
$line5 = \"LOG GENERE PAR : script_execution_powershell\"
Add-Content -Path $fichier -value $lines, $line, $line1, $line2, $line5
# Si Windows-Server-Backup Possède l'objet \"Installed\" Alors
if (Get-WindowsFeature Windows-Server-Backup | Where-Object(\"Installed\"«»))
{
echo \"\"
echo \"La fonctionnalité Windows Server Backup est présente !\"
echo \"\"
# Création de fichier de Logs dans WindowsServerBackup\Logs\Execution\EXECUTION_OK_WB.log
$fichier = \"C:\Windows\Logs\WindowsServerBackup\Logs\Execution\EXECUTION_OK_WB.log\"
$UserName = [ENVIRONMENT]::UserDomainName
$lines = \"\"
$line = Get-Date
$line1 = \"Par $UserName\"
$line2 = \"La fonctionnalité Windows Server Backup est présente !\"
$line5 = \"LOG GENERE PAR : script_execution_powershell\"
Add-Content -Path $fichier -value $lines, $line, $line1, $line2, $line5
# Vérification de la présence du disque S:
if (Get-PSDrive H)
{
echo \"\"
echo \"Le disque de donnée H: est présent !\"
echo \"\"
# Création de fichier de Logs dans WindowsServerBackup\Logs\Execution\EXECUTION_OK_WB.log
$fichier = \"C:\Windows\Logs\WindowsServerBackup\Logs\Execution\EXECUTION_OK_WB.log\"
$UserName = [ENVIRONMENT]::UserDomainName
$lines = \"\"
$line = Get-Date
$line1 = \"Par $UserName\"
$line2 = \"Le disque de donnée H: est présent !\"
$line5 = \"LOG GENERE PAR : script_execution_powershell\"
Add-Content -Path $fichier -value $lines, $line, $line1, $line2, $line5
$dataapplication = \"H:\Applications\"
$dataechange = \"H:\Echange\"
$datautilisateur = \"H:\Utilisateurs\"
If (-not (Test-Path $dataapplication))
{
echo \"\"
echo \"Le dossier Applications dans le lecteur H: n'est pas présent !\"
echo \"\"
# Création de fichier de Logs dans WindowsServerBackup\Logs\Execution\EXECUTION_ERROR_WB.log
$fichier = \"C:\Windows\Logs\WindowsServerBackup\Logs\Execution\EXECUTION_ERROR_WB.log\"
$UserName = [ENVIRONMENT]::UserDomainName
$lines = \"\"
$line = Get-Date
$line1 = \"Par $UserName\"
$line2 = \"Le dossier Applications dans le lecteur H: n'est pas présent !\"
$line5 = \"LOG GENERE PAR : script_execution_powershell\"
Add-Content -Path $fichier -value $lines, $line, $line1, $line2, $line5
}else{
echo \"\"
echo \"Le dossier Applications dans le lecteur H: est présent !\"
echo \"\"
# Création de fichier de Logs dans WindowsServerBackup\Logs\Execution\EXECUTION_OK_WB.log
$fichier = \"C:\Windows\Logs\WindowsServerBackup\Logs\Execution\EXECUTION_OK_WB.log\"
$UserName = [ENVIRONMENT]::UserDomainName
$lines = \"\"
$line = Get-Date
$line1 = \"Par $UserName\"
$line2 = \"Le dossier Applications dans le lecteur H: est présent !\"
$line5 = \"LOG GENERE PAR : script_execution_powershell\"
Add-Content -Path $fichier -value $lines, $line, $line1, $line2, $line5
If (-not (Test-Path $dataechange))
{
echo \"\"
echo \"Le dossier Echange dans le lecteur H: n'est pas présent !\"
echo \"\"
# Création de fichier de Logs dans WindowsServerBackup\Logs\Execution\EXECUTION_ERROR_WB.log
$fichier = \"C:\Windows\Logs\WindowsServerBackup\Logs\Execution\EXECUTION_ERROR_WB.log\"
$UserName = [ENVIRONMENT]::UserDomainName
$lines = \"\"
$line = Get-Date
$line1 = \"Par $UserName\"
$line2 = \"Le dossier Echange dans le lecteur D: n'est pas présent !\"
$line5 = \"LOG GENERE PAR : script_execution_powershell\"
Add-Content -Path $fichier -value $lines, $line, $line1, $line2, $line5
}else{
echo \"\"
echo \"Le dossier Echange dans le lecteur H: est présent !\"
echo \"\"
# Création de fichier de Logs dans WindowsServerBackup\Logs\Execution\EXECUTION_OK_WB.log
$fichier = \"C:\Windows\Logs\WindowsServerBackup\Logs\Execution\EXECUTION_OK_WB.log\"
$UserName = [ENVIRONMENT]::UserDomainName
$lines = \"\"
$line = Get-Date
$line1 = \"Par $UserName\"
$line2 = \"Le dossier Echange dans le lecteur D: est présent !\"
$line5 = \"LOG GENERE PAR : script_execution_powershell\"
Add-Content -Path $fichier -value $lines, $line, $line1, $line2, $line5
If (-not (Test-Path $datautilisateur))
{
echo \"\"
echo \"Le dossier Utilisateurs dans le lecteur H: n'est pas présent !\"
echo \"\"
# Création de fichier de Logs dans WindowsServerBackup\Logs\Execution\EXECUTION_ERROR_WB.log
$fichier = \"C:\Windows\Logs\WindowsServerBackup\Logs\Execution\EXECUTION_ERROR_WB.log\"
$UserName = [ENVIRONMENT]::UserDomainName
$lines = \"\"
$line = Get-Date
$line1 = \"Par $UserName\"
$line2 = \"Le dossier Utilisateurs dans le lecteur H: n'est pas présent !\"
$line5 = \"LOG GENERE PAR : script_execution_powershell\"
Add-Content -Path $fichier -value $lines, $line, $line1, $line2, $line5
}else{
echo \"\"
echo \"Le dossier Utilisateurs dans le lecteur H: est présent !\"
echo \"\"
# Création de fichier de Logs dans WindowsServerBackup\Logs\Execution\EXECUTION_OK_WB.log
$fichier = \"C:\Windows\Logs\WindowsServerBackup\Logs\Execution\EXECUTION_OK_WB.log\"
$UserName = [ENVIRONMENT]::UserDomainName
$lines = \"\"
$line = Get-Date
$line1 = \"Par $UserName\"
$line2 = \"Le dossier Utilisateur dans le lecteur D: est présent !\"
$line5 = \"LOG GENERE PAR : script_execution_powershell\"
Add-Content -Path $fichier -value $lines, $line, $line1, $line2, $line5
if (Get-PSDrive S)
{
echo \"\"
echo \"Le disque de sauvegarde S: est présent !\"
echo \"\"
# Création de fichier de Logs dans WindowsServerBackup\Logs\Execution\EXECUTION_OK_WB.log
$fichier = \"C:\Windows\Logs\WindowsServerBackup\Logs\Execution\EXECUTION_OK_WB.log\"
$UserName = [ENVIRONMENT]::UserDomainName
$lines = \"\"
$line = Get-Date
$line1 = \"Par $UserName\"
$line2 = \"Le disque de sauvegarde S: est présent !\"
$line5 = \"LOG GENERE PAR : script_execution_powershell\"
Add-Content -Path $fichier -value $lines, $line, $line1, $line2, $line5
Write-Host \"Démarrage de la sauvegarde en cours !\" -ForegroundColor Green
wbadmin start backup -backupTarget:«»S: -Include:H: -vssFull
if($?)
{
Write-Host \"La sauvegarde c'est déroulé correctement !\" -ForegroundColor Green
# Création de fichier de Logs dans WindowsServerBackup\Logs\Execution\EXECUTION_OK_WB.log
$fichier = \"C:\Windows\Logs\WindowsServerBackup\Logs\Execution\EXECUTION_OK_WB.log\"
$UserName = [ENVIRONMENT]::UserDomainName
$lines = \"\"
$line = Get-Date
$line1 = \"Par $UserName\"
$line2 = \"La sauvegarde c'est déroulé correctement !\"
$line5 = \"LOG GENERE PAR : script_execution_powershell\"
Add-Content -Path $fichier -value $lines, $line, $line1, $line2, $line5
}else{
Write-Host \"La sauvegarde ne c'est pas déroulé correctement !\" -ForegroundColor Green
# Création de fichier de Logs dans WindowsServerBackup\Logs\Execution\EXECUTION_OK_WB.log
$fichier = \"C:\Windows\Logs\WindowsServerBackup\Logs\Execution\EXECUTION_ERROR_WB.log\"
$UserName = [ENVIRONMENT]::UserDomainName
$lines = \"\"
$line = Get-Date
$line1 = \"Par $UserName\"
$line2 = \"La sauvegarde ne c'est pas déroulé correctement !\"
$line5 = \"LOG GENERE PAR : script_execution_powershell\"
Add-Content -Path $fichier -value $lines, $line, $line1, $line2, $line5
}
}else{
echo \"\"
echo \"Le disque de sauvegarde S: n'est pas présent !\"
echo \"\"
# Création de fichier de Logs dans WindowsServerBackup\Logs\Execution\EXECUTION_ERROR_WB.log
$fichier = \"C:\Windows\Logs\WindowsServerBackup\Logs\Execution\EXECUTION_ERROR_WB.log\"
$UserName = [ENVIRONMENT]::UserDomainName
$lines = \"\"
$line = Get-Date
$line1 = \"Par $UserName\"
$line2 = \"Le disque de sauvegarde S: n'est pas présent !\"
$line5 = \"LOG GENERE PAR : script_execution_powershell\"
Add-Content -Path $fichier -value $lines, $line, $line1, $line2, $line5
}
}
}
}
}else{
echo \"\"
echo \"Le disque de donnée H: n'est pas présent !\"
echo \"\"
# Création de fichier de Logs dans WindowsServerBackup\Logs\Execution\EXECUTION_ERROR_WB.log
$fichier = \"C:\Windows\Logs\WindowsServerBackup\Logs\Execution\EXECUTION_ERROR_WB.log\"
$UserName = [ENVIRONMENT]::UserDomainName
$lines = \"\"
$line = Get-Date
$line1 = \"Par $UserName\"
$line2 = \"Le disque de donnée H: n'est pas présent !\"
$line5 = \"LOG GENERE PAR : script_execution_powershell\"
Add-Content -Path $fichier -value $lines, $line, $line1, $line2, $line5
}
}else{
echo \"\"
echo \"La fonctionnalité Windows Server Backup n'est pas présente !\"
echo \"\"
# Création de fichier de Logs dans WindowsServerBackup\Logs\Execution\EXECUTION_ERROR_WB.log
$fichier = \"C:\Windows\Logs\WindowsServerBackup\Logs\Execution\EXECUTION_ERROR_WB.log\"
$UserName = [ENVIRONMENT]::UserDomainName
$lines = \"\"
$line = Get-Date
$line1 = \"Par $UserName\"
$line2 = \"La fonctionnalité Windows Server Backup n'est pas présente !\"
$line5 = \"LOG GENERE PAR : script_execution_powershell\"
Add-Content -Path $fichier -value $lines, $line, $line1, $line2, $line5
}
}
Sleep 10000[/code:1]
Auriez-vous une idée de ce qui pourrais bloquer l'avancement du script ?
Merci beaucoup.
LeMaath<br><br>Message édité par: LeMath, à: 25/08/17 09:29
Connexion ou Créer un compte pour participer à la conversation.
- Arnaud Petitjean
-
- Hors Ligne
- Modérateur
-
il y a 8 ans 6 mois #24109
par Arnaud Petitjean
MVP PowerShell et créateur de ce magnifique forum
Auteur de 6 livres PowerShell aux éditions ENI
Fondateur de la société Start-Scripting
Besoin d'une formation PowerShell ?
Réponse de Arnaud Petitjean sur le sujet Re:Avancement script figé
Bonjour,
Malheureusement ce n'est pas la faute de PowerShell mais plutôt de l'outil de backup...
A mon avis, il n'y a pas grand chose à faire.
Arnaud
Malheureusement ce n'est pas la faute de PowerShell mais plutôt de l'outil de backup...
A mon avis, il n'y a pas grand chose à faire.
Arnaud
MVP PowerShell et créateur de ce magnifique forum
Auteur de 6 livres PowerShell aux éditions ENI
Fondateur de la société Start-Scripting
Besoin d'une formation PowerShell ?
Connexion ou Créer un compte pour participer à la conversation.
- Mathieu
- Auteur du sujet
- Hors Ligne
- Nouveau membre
-
Réduire
Plus d'informations
- Messages : 5
- Remerciements reçus 0
il y a 8 ans 6 mois #24113
par Mathieu
Réponse de Mathieu sur le sujet Re:Avancement script figé
Arnaud écrit:
Bonjour,
Pourquoi ce problème viendrais plutôt de l'outil de sauvegarde (Windows Server Backup) que de PowerShell ?
Si le problème était inversé, c'est-à-dire que le pourcentage de sauvegarde était inférieur sur l'interface de backup et que le pourcentage était nettement plus élevé sur PouwerShell j'aurais bien évidement mis la faute sur le l'outil de sauvegarde.
Mais ici, Windows Server Backup est un programme mais aussi une fonctionnalité Windows Server qui gère très bien les lignes de commande WBAdmin.
Merci pour l'aide en tout cas
LeMath
Bonjour,
Malheureusement ce n'est pas la faute de PowerShell mais plutôt de l'outil de backup...
A mon avis, il n'y a pas grand chose à faire.
Arnaud
Bonjour,
Pourquoi ce problème viendrais plutôt de l'outil de sauvegarde (Windows Server Backup) que de PowerShell ?
Si le problème était inversé, c'est-à-dire que le pourcentage de sauvegarde était inférieur sur l'interface de backup et que le pourcentage était nettement plus élevé sur PouwerShell j'aurais bien évidement mis la faute sur le l'outil de sauvegarde.
Mais ici, Windows Server Backup est un programme mais aussi une fonctionnalité Windows Server qui gère très bien les lignes de commande WBAdmin.
Merci pour l'aide en tout cas
LeMath
Connexion ou Créer un compte pour participer à la conversation.
- Philippe
- Hors Ligne
- Modérateur
-
Réduire
Plus d'informations
- Messages : 1778
- Remerciements reçus 21
il y a 8 ans 6 mois #24129
par Philippe
Réponse de Philippe sur le sujet Re:Avancement script figé
salut LeMath
vu que tu a une solution en cours sur le forum de développez, je te propose d'utilisé ce fil pour corriger quelques incohérence dans ton script
ça va un peu m'occuper et me changer les idées
- d'abord dans le premier bloc if, tu écris un log dans un dossier pour indiquer que ce même dossier n'existe pas !!
je te laisse trouver une solution en fonction de ton infrastructure !
- comme je trouver que la répétition de certaine ligne était très lourde :
j'ai supprimer les echo pour un write-host de line2 qui contient le même message
j'ai supprimer les lignes d'initialisation de variable identique et les aient regroupé en début de script, en plus ça simplifie les modifications des variables
au final j'ai fais une fonction pour les logs/messages console
- j'ai aussi supprimer les if en cascade qui je sais bouge beaucoup en phase de test et qui est sont source d'erreur de lecture de script et de débogage ! j'ai opter pour suite de if avec un flag ($ok) pour le contrôle de l'exécution final !
autre avantage, tu a toutes les erreurs possibles dès la première exécution !
c'est aussi plus simple pour rajouter d'autre contrôle
- le sleep 10000 en fin de script, c'est pour quoi faire ???????
bon voila pour cette première épuration.
a toi de voir si tu en veux
le nouveau code :
[code:1]
# Script d'execution de Windows Serveur Backup
# Ce script permettra :
# - De vérifier la présence de Windows Serveur Backup sur l'ordinateur Hôte,
# - De vérifier si le disque de donnée D:\ est présent,
# - De vérifier si le disque de sauvegarde S:\ est présent,
# - Lancement de la sauvegarde
$dossierlog = \"C:\Windows\Logs\WindowsServerBackup\"
$fichierOK = \"$dossierlog\Logs\Execution\EXECUTION_OK_WB.log\"
$fichierERROR = \"$dossierlog\Logs\Execution\EXECUTION_ERROR_WB.log\"
$UserName = $env:USERNAME # [ENVIRONMENT]::UserDomainName ==> nom du domaine ???
$lines = \"\"
$line1 = \"Par $UserName\"
$line5 = \"LOG GENERE PAR : script_execution_powershell\"
$nr = \"`n`r\" # nouvelle ligne
$dataapplication = \"H:\Applications\"
$dataechange = \"H:\Echange\"
$datautilisateur = \"H:\Utilisateurs\"
function Write-log {
param ([string]$fichier, # fichier log
[string]$ls, # ligne vide
[string]$l1, # nom utilisateur
[string]$l2, # message
[string]$l5, # origine du log
[string]$color) # couleur du message sur la console
$l = Get-Date
write-host $l2 -ForegroundColor $color
# Add-Content -Path $fichier -value $ls, $l, $l1, $l2, $l5
}
$ok = 1
If (Test-Path $dossierlog) {
#Création du fichier \"WindowsServerBackup\", \"Logs\" et \"Execution\"
New-Item -ItemType Directory -Path \"$dossierlog\Logs\\" -name \"Execution\"
# Création de fichier de Logs dans WindowsServerBackup\Logs\Execution\EXECUTION_OK_WB.log
$line2 = $nr + \"Le dossier Windows Server Backup est présent !\" + $nr
Write-log $fichierOK $lines $line1 $line2 $line5 \"white\"
} else {
$ok = 0
#Création du fichier \"WindowsServerBackup\", \"Logs\" et \"Execution\"
New-Item -ItemType Directory -Path \"$dossierlog\Logs\\" -name \"Execution\" # ===> y a pas une erreur si le dossier n'existe pas ????
# pour info new-item va créé toutes arborescences si elle n'existe pas
# Création de fichier de Logs dans WindowsServerBackup\Logs\Execution\EXECUTION_ERROR_WB.log
$line2 = $nr + \"Le dossier Windows Server Backup n'est pas présent !\" + $nr
Write-log $fichierERROR $lines $line1 $line2 $line5 \"Red\" # creation d'un log ERREUR dans un dossier qui n'existe pas ?????
}
# Si Windows-Server-Backup Possède l'objet \"Installed\" Alors
if (Get-WindowsFeature Windows-Server-Backup | Where-Object(\"Installed\"«»)) {
# Création de fichier de Logs dans WindowsServerBackup\Logs\Execution\EXECUTION_OK_WB.log
$line2 = $nr + \"La fonctionnalité Windows Server Backup est présente !\" + $nr
Write-log $fichierOK $lines $line1 $line2 $line5 \"white\"
} else {
$ok = 0
# Création de fichier de Logs dans WindowsServerBackup\Logs\Execution\EXECUTION_ERROR_WB.log
$line = Get-Date
$line2 = $nr+\"La fonctionnalité Windows Server Backup n'est pas présente !\"+$nr
Write-log $fichierERROR $lines $line1 $line2 $line5 \"white\"
}
# Vérification de la présence du disque H:
if (Get-PSDrive H) {
# Création de fichier de Logs dans WindowsServerBackup\Logs\Execution\EXECUTION_OK_WB.log
$line2 = $nr+\"Le disque de donnée H: est présent !\"+$nr
Write-log $fichierOK $lines $line1 $line2 $line5 \"white\"
} else {
$ok = 0
# Création de fichier de Logs dans WindowsServerBackup\Logs\Execution\EXECUTION_ERROR_WB.log
$line = Get-Date
$line2 = $nr+\"Le disque de donnée H: n'est pas présent !\"+$nr
Write-log $fichierERROR $lines $line1 $line2 $line5 \"white\"
}
If (Test-Path $dataapplication) {
# Création de fichier de Logs dans WindowsServerBackup\Logs\Execution\EXECUTION_OK_WB.log
$line2 = $nr+\"Le dossier Applications dans le lecteur H: est présent !\"+$nr
Write-log $fichierOK $lines $line1 $line2 $line5 \"white\"
} else {
$ok = 0
# Création de fichier de Logs dans WindowsServerBackup\Logs\Execution\EXECUTION_ERROR_WB.log
$line2 = $nr+\"Le dossier Applications dans le lecteur H: n'est pas présent !\"+$nr
Write-log $fichierERROR $lines $line1 $line2 $line5 \"white\"
}
If (Test-Path $dataechange) {
# Création de fichier de Logs dans WindowsServerBackup\Logs\Execution\EXECUTION_OK_WB.log
$line2 = $nr+\"Le dossier Echange dans le lecteur D: est présent !\"+$nr
Write-log $fichierOK $lines $line1 $line2 $line5 \"white\"
} else {
$ok = 0
# Création de fichier de Logs dans WindowsServerBackup\Logs\Execution\EXECUTION_ERROR_WB.log
$line2 = $nr+\"Le dossier Echange dans le lecteur D: n'est pas présent !\"+$nr
Write-log $fichierERROR $lines $line1 $line2 $line5 \"white\"
}
If (Test-Path $datautilisateur) {
# Création de fichier de Logs dans WindowsServerBackup\Logs\Execution\EXECUTION_OK_WB.log
$line2 = $nr+\"Le dossier Utilisateur dans le lecteur D: est présent !\"+$nr
Write-log $fichierOK $lines $line1 $line2 $line5 \"white\"
} else {
$ok = 0
# Création de fichier de Logs dans WindowsServerBackup\Logs\Execution\EXECUTION_ERROR_WB.log
$line2 = $nr+\"Le dossier Utilisateurs dans le lecteur H: n'est pas présent !\"+$nr
Write-log $fichierERROR $lines $line1 $line2 $line5 \"white\"
}
# Vérification de la présence du disque S:
if (Get-PSDrive S) {
# Création de fichier de Logs dans WindowsServerBackup\Logs\Execution\EXECUTION_OK_WB.log
$line2 = $nr+\"Le disque de sauvegarde S: est présent !\"+$nr
Write-log $fichierOK $lines $line1 $line2 $line5 \"white\"
} else {
$ok = 0
# Création de fichier de Logs dans WindowsServerBackup\Logs\Execution\EXECUTION_ERROR_WB.log
$line2 = $nr+\"Le disque de sauvegarde S: n'est pas présent !\"+$nr
Write-log $fichierERROR $lines $line1 $line2 $line5 \"white\"
}
if ($ok) {
Write-Host \"Démarrage de la sauvegarde en cours !\" -ForegroundColor Green
wbadmin start backup -backupTarget:«»S: -Include:H: -vssFull
if($?) {
# Création de fichier de Logs dans WindowsServerBackup\Logs\Execution\EXECUTION_OK_WB.log
$line2 = \"La sauvegarde c'est déroulé correctement !\"
Write-log $fichierOK $lines $line1 $line2 $line5 \"Green\"
} else {
# Création de fichier de Logs dans WindowsServerBackup\Logs\Execution\EXECUTION_OK_WB.log
$line2 = \"La sauvegarde ne c'est pas déroulé correctement !\"
Write-log $fichierERROR $lines $line1 $line2 $line5 \"Red\"
}
}
[/code:1]
vu que tu a une solution en cours sur le forum de développez, je te propose d'utilisé ce fil pour corriger quelques incohérence dans ton script
ça va un peu m'occuper et me changer les idées
- d'abord dans le premier bloc if, tu écris un log dans un dossier pour indiquer que ce même dossier n'existe pas !!
je te laisse trouver une solution en fonction de ton infrastructure !
- comme je trouver que la répétition de certaine ligne était très lourde :
j'ai supprimer les echo pour un write-host de line2 qui contient le même message
j'ai supprimer les lignes d'initialisation de variable identique et les aient regroupé en début de script, en plus ça simplifie les modifications des variables
au final j'ai fais une fonction pour les logs/messages console
- j'ai aussi supprimer les if en cascade qui je sais bouge beaucoup en phase de test et qui est sont source d'erreur de lecture de script et de débogage ! j'ai opter pour suite de if avec un flag ($ok) pour le contrôle de l'exécution final !
autre avantage, tu a toutes les erreurs possibles dès la première exécution !
c'est aussi plus simple pour rajouter d'autre contrôle
- le sleep 10000 en fin de script, c'est pour quoi faire ???????
bon voila pour cette première épuration.
a toi de voir si tu en veux
le nouveau code :
[code:1]
# Script d'execution de Windows Serveur Backup
# Ce script permettra :
# - De vérifier la présence de Windows Serveur Backup sur l'ordinateur Hôte,
# - De vérifier si le disque de donnée D:\ est présent,
# - De vérifier si le disque de sauvegarde S:\ est présent,
# - Lancement de la sauvegarde
$dossierlog = \"C:\Windows\Logs\WindowsServerBackup\"
$fichierOK = \"$dossierlog\Logs\Execution\EXECUTION_OK_WB.log\"
$fichierERROR = \"$dossierlog\Logs\Execution\EXECUTION_ERROR_WB.log\"
$UserName = $env:USERNAME # [ENVIRONMENT]::UserDomainName ==> nom du domaine ???
$lines = \"\"
$line1 = \"Par $UserName\"
$line5 = \"LOG GENERE PAR : script_execution_powershell\"
$nr = \"`n`r\" # nouvelle ligne
$dataapplication = \"H:\Applications\"
$dataechange = \"H:\Echange\"
$datautilisateur = \"H:\Utilisateurs\"
function Write-log {
param ([string]$fichier, # fichier log
[string]$ls, # ligne vide
[string]$l1, # nom utilisateur
[string]$l2, # message
[string]$l5, # origine du log
[string]$color) # couleur du message sur la console
$l = Get-Date
write-host $l2 -ForegroundColor $color
# Add-Content -Path $fichier -value $ls, $l, $l1, $l2, $l5
}
$ok = 1
If (Test-Path $dossierlog) {
#Création du fichier \"WindowsServerBackup\", \"Logs\" et \"Execution\"
New-Item -ItemType Directory -Path \"$dossierlog\Logs\\" -name \"Execution\"
# Création de fichier de Logs dans WindowsServerBackup\Logs\Execution\EXECUTION_OK_WB.log
$line2 = $nr + \"Le dossier Windows Server Backup est présent !\" + $nr
Write-log $fichierOK $lines $line1 $line2 $line5 \"white\"
} else {
$ok = 0
#Création du fichier \"WindowsServerBackup\", \"Logs\" et \"Execution\"
New-Item -ItemType Directory -Path \"$dossierlog\Logs\\" -name \"Execution\" # ===> y a pas une erreur si le dossier n'existe pas ????
# pour info new-item va créé toutes arborescences si elle n'existe pas
# Création de fichier de Logs dans WindowsServerBackup\Logs\Execution\EXECUTION_ERROR_WB.log
$line2 = $nr + \"Le dossier Windows Server Backup n'est pas présent !\" + $nr
Write-log $fichierERROR $lines $line1 $line2 $line5 \"Red\" # creation d'un log ERREUR dans un dossier qui n'existe pas ?????
}
# Si Windows-Server-Backup Possède l'objet \"Installed\" Alors
if (Get-WindowsFeature Windows-Server-Backup | Where-Object(\"Installed\"«»)) {
# Création de fichier de Logs dans WindowsServerBackup\Logs\Execution\EXECUTION_OK_WB.log
$line2 = $nr + \"La fonctionnalité Windows Server Backup est présente !\" + $nr
Write-log $fichierOK $lines $line1 $line2 $line5 \"white\"
} else {
$ok = 0
# Création de fichier de Logs dans WindowsServerBackup\Logs\Execution\EXECUTION_ERROR_WB.log
$line = Get-Date
$line2 = $nr+\"La fonctionnalité Windows Server Backup n'est pas présente !\"+$nr
Write-log $fichierERROR $lines $line1 $line2 $line5 \"white\"
}
# Vérification de la présence du disque H:
if (Get-PSDrive H) {
# Création de fichier de Logs dans WindowsServerBackup\Logs\Execution\EXECUTION_OK_WB.log
$line2 = $nr+\"Le disque de donnée H: est présent !\"+$nr
Write-log $fichierOK $lines $line1 $line2 $line5 \"white\"
} else {
$ok = 0
# Création de fichier de Logs dans WindowsServerBackup\Logs\Execution\EXECUTION_ERROR_WB.log
$line = Get-Date
$line2 = $nr+\"Le disque de donnée H: n'est pas présent !\"+$nr
Write-log $fichierERROR $lines $line1 $line2 $line5 \"white\"
}
If (Test-Path $dataapplication) {
# Création de fichier de Logs dans WindowsServerBackup\Logs\Execution\EXECUTION_OK_WB.log
$line2 = $nr+\"Le dossier Applications dans le lecteur H: est présent !\"+$nr
Write-log $fichierOK $lines $line1 $line2 $line5 \"white\"
} else {
$ok = 0
# Création de fichier de Logs dans WindowsServerBackup\Logs\Execution\EXECUTION_ERROR_WB.log
$line2 = $nr+\"Le dossier Applications dans le lecteur H: n'est pas présent !\"+$nr
Write-log $fichierERROR $lines $line1 $line2 $line5 \"white\"
}
If (Test-Path $dataechange) {
# Création de fichier de Logs dans WindowsServerBackup\Logs\Execution\EXECUTION_OK_WB.log
$line2 = $nr+\"Le dossier Echange dans le lecteur D: est présent !\"+$nr
Write-log $fichierOK $lines $line1 $line2 $line5 \"white\"
} else {
$ok = 0
# Création de fichier de Logs dans WindowsServerBackup\Logs\Execution\EXECUTION_ERROR_WB.log
$line2 = $nr+\"Le dossier Echange dans le lecteur D: n'est pas présent !\"+$nr
Write-log $fichierERROR $lines $line1 $line2 $line5 \"white\"
}
If (Test-Path $datautilisateur) {
# Création de fichier de Logs dans WindowsServerBackup\Logs\Execution\EXECUTION_OK_WB.log
$line2 = $nr+\"Le dossier Utilisateur dans le lecteur D: est présent !\"+$nr
Write-log $fichierOK $lines $line1 $line2 $line5 \"white\"
} else {
$ok = 0
# Création de fichier de Logs dans WindowsServerBackup\Logs\Execution\EXECUTION_ERROR_WB.log
$line2 = $nr+\"Le dossier Utilisateurs dans le lecteur H: n'est pas présent !\"+$nr
Write-log $fichierERROR $lines $line1 $line2 $line5 \"white\"
}
# Vérification de la présence du disque S:
if (Get-PSDrive S) {
# Création de fichier de Logs dans WindowsServerBackup\Logs\Execution\EXECUTION_OK_WB.log
$line2 = $nr+\"Le disque de sauvegarde S: est présent !\"+$nr
Write-log $fichierOK $lines $line1 $line2 $line5 \"white\"
} else {
$ok = 0
# Création de fichier de Logs dans WindowsServerBackup\Logs\Execution\EXECUTION_ERROR_WB.log
$line2 = $nr+\"Le disque de sauvegarde S: n'est pas présent !\"+$nr
Write-log $fichierERROR $lines $line1 $line2 $line5 \"white\"
}
if ($ok) {
Write-Host \"Démarrage de la sauvegarde en cours !\" -ForegroundColor Green
wbadmin start backup -backupTarget:«»S: -Include:H: -vssFull
if($?) {
# Création de fichier de Logs dans WindowsServerBackup\Logs\Execution\EXECUTION_OK_WB.log
$line2 = \"La sauvegarde c'est déroulé correctement !\"
Write-log $fichierOK $lines $line1 $line2 $line5 \"Green\"
} else {
# Création de fichier de Logs dans WindowsServerBackup\Logs\Execution\EXECUTION_OK_WB.log
$line2 = \"La sauvegarde ne c'est pas déroulé correctement !\"
Write-log $fichierERROR $lines $line1 $line2 $line5 \"Red\"
}
}
[/code:1]
Connexion ou Créer un compte pour participer à la conversation.
Temps de génération de la page : 0.056 secondes
- Vous êtes ici :
-
Accueil
-
forum
-
PowerShell
-
Entraide pour les débutants
- Avancement script figé