Question mise en page de log

Plus d'informations
il y a 13 ans 2 mois #13731 par heshima
mise en page de log a été créé par heshima
bonjour,

Je suis en train de mettre en place un Script pour supprimer des fichiers dans une arborescence de répertoire.Je le mettrai par la suite sur un serveur avec une tâche planifié.

mon soucis est que le fichier log mis en place repertoriant les fichiers supprimés et leurs arborescence est illisible. il m'affiche tout sur la même ligne. comment puis e faire pour que une entrée = une ligne.

en vous remerciant.

ci-dessous mon code :

#================== curseur sur le dossier Scan ==============

cd c:\users\#######\Desktop\test

#================== création fichier log =====================

$logFile = \"c:\users\#########\Desktop\"


Start-transcript -path $logFile

#================== création Variable =========================

$date = Get-Date -displayhint date
$i = 0

#================== création Tableau =========================
$array = @()

$item = Get-ChildItem -Include *.* -Recurse
$array += $item

$array += \"fin\"


#================== Suppression ==============================


while ($array[$i] -ne \"fin\")
{

$Nrem = (get-item $array[$i]).name

if ($Nrem -eq \"_REGLES_DE_BASE.PDF\")
{
Write-Host \"pas de copie possible pour\" , $array[$i]
}
else
{
Write-Host $array[$i]

rmdir $array[$i]
}

$i++
}

#=================== Arret fichier log ======================

Stop-transcript

#==========================================================================
# SETTINGS ENVOI DU MAIL : Les répertoires à scanner.
#==========================================================================
$expediteur = \"#####@###.###\"
$destinataire = \"#####@###.###\"
$serveur = \"###########.intranet\"
$PJ = $logFile
$objet = \"suppression de fichiers \" + [System.DateTime]::Now
$texte = \"Vous trouverez en fichier joint le fichier de log spécifiant les objets supprimés par le script\"

#==========================================================================
# SCRIPT ENVOI DU MAIL : Les répertoires à scanner.
#==========================================================================
$message = new-object System.Net.Mail.MailMessage $expediteur, $destinataire, $objet, $texte

$attachment = new-object System.Net.Mail.Attachment $PJ
$message.Attachments.Add($attachment)
$client = new-object System.Net.Mail.SmtpClient $serveur
$client.Credentials = [System.Net.CredentialCache]:: DefaultNetworkCredentials


$client.Send($message)
#==========================================================================
#FIN DU SCRIPT
#==========================================================================

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

Plus d'informations
il y a 13 ans 2 mois #13733 par Laurent Dardenne
Réponse de Laurent Dardenne sur le sujet Re:mise en page de log
Salut,
essaie avec ceci :
[code:1]
$oldOFS,$OFS=$OFS,\"`r`n\"
$attachment = new-object System.Net.Mail.Attachment $PJ
$OFS=$oldOFS
...

[/code:1]
Sinon modifie la création de la PJ comme indiqué ici (une ligne de code C# à adapter).

Tutoriels PowerShell

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

Plus d'informations
il y a 13 ans 2 mois #13734 par heshima
Réponse de heshima sur le sujet Re:mise en page de log
je viens de tester il me met une erreur sur la ligne :

$client.Send($message)

\"
Runtime error
exception lors de l'appel de \"SEND\" avec \"1\" argument(s) : \"échec d'envoi du courrier\"
\"
Pièces jointes :

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

Plus d'informations
il y a 13 ans 2 mois #13736 par Laurent Dardenne
Réponse de Laurent Dardenne sur le sujet Re:mise en page de log
:whistle:
Un dernier essai :
[code:1]
$oldOFS,$OFS=$OFS,\"`r`n\"
$attachment = new-object System.Net.Mail.Attachment \"$PJ\"
$OFS=$oldOFS
[/code:1]

Tutoriels PowerShell

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

Plus d'informations
il y a 13 ans 2 mois #13740 par heshima
Réponse de heshima sur le sujet Re:mise en page de log
il me remet la même erreur :s
Du coup, au lieu de passer par du Log je fait un export csv.

donc je retrouve bien ma mise en page mais j'obtiens toujours le même problème.

[code:1]#================== curseur sur le dossier Scan ==============

cd c:\users\######\Desktop\test

#================== création fichier log =====================

#$logFile = \"c:\users\#######\Desktop\test\"


#Start-transcript -path $logFile

#================== création Variable =========================

$date = Get-Date -displayhint date
$i = 0

#================== création Tableau =========================
$array = @()

$item = Get-ChildItem -Include *.pdf -Recurse
$array += $item

$array += \"fin\"


#================== Suppression ==============================


while ($array[$i] -ne \"fin\"«»)
{

$Nrem = (get-item $array[$i]).name

$moncsv = $array | select name | export-csv c:\users\#####\Desktop\test\Export_suppress_Scan.csv

if ($Nrem -eq \"_REGLES_DE_BASE.PDF\"«»)
{
Write-Host \"pas de suppression possible pour\" , $array[$i]
}
else
{
Write-Host $array[$i]

rmdir $array[$i]
}

$i++
}

#=================== Arret fichier log ======================

# Stop-transcript

#==========================================================================
# SETTINGS ENVOI DU MAIL : Les répertoires à scanner.
#==========================================================================
$expediteur = \"######@#####.###\"
$destinataire = \"#####@#####.###\"
$serveur = \"#######.intranet\"
$PJ = $moncsv
$objet = \"suppression de fichiers \" + [System.DateTime]::Now
$texte = \"Vous trouverez en fichier joint le fichier de log spécifiant les objets supprimés par le script\"

#==========================================================================
# SCRIPT ENVOI DU MAIL : Les répertoires à scanner.
#==========================================================================
$message = new-object System.Net.Mail.MailMessage $expediteur, $destinataire, $objet, $texte

#$attachment = new-object System.Net.Mail.Attachment $PJ
#$oldOFS,$OFS=$OFS,\"`r`n\"
$attachment = new-object System.Net.Mail.Attachment \"$PJ\"
#$OFS = $oldOFS

$message.Attachments.Add($attachment)
$client = new-object System.Net.Mail.SmtpClient $serveur
$client.Credentials = [System.Net.CredentialCache]::«»DefaultNetworkCredentials


$client.Send($message)[/code:1]

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

Plus d'informations
il y a 13 ans 2 mois #13745 par Laurent Dardenne
Réponse de Laurent Dardenne sur le sujet Re:mise en page de log
Je ne pourrais aller plus loin, côté test.
Il se peut que le texte ne contienne que des lignes avec des line feed \"`n\" sans retour chariot \"`r`n\" ...

Si tu crées un fichier avec Notepad et que tu l'envois en PJ, as-tu le même comportement ?

Tutoriels PowerShell

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

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