Bonjour,
Il y a quelques jour mon patron ma demandé de créer un script powershell pour sauvegarder les logs... problème => je n'y connais rien en script !!! (voila ce que c'est de passer pour le geek de service ^^)
J'me suis pas démonté j'ai commencais à faire des recherches sur le net mais... je commence un peu à désespérer ^^ rien ne fonctionne !
Voila ce que j'ai réussi à faire pour l'instant :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63
|
Param(
$LogsArchive = "X:\BACKUP_LOGS\LOGS_ARCHIVE",
$List_SVR = "X:\BACKUP_LOGS\SCRIPTS\LISTE_SVR.txt"
)
Function Test-ComputerConnection
{
ForEach($Computer in $Computers)
{
$Result = Get-WmiObject -Class win32_pingstatus -Filter "address='$computer'"
If($Result.Statuscode -eq 0)
{
#if($computer.length -ge 1)
# {
Write-Host "- $Computer... OK"
Get-BackUpFolder
# } #end if (suppr ghost)
} #end if
else { "- $computer injoignable" }
} #end Foreach
} #end Test-ComputerConnection
Function Get-BackUpFolder
{
$Folder1 = $computer
$Folder2 = "{0:yyyy}" -f [DateTime]::now
$Folder3 = "{0:MMMM}" -f [DateTime]::now
$Folder4 = "{0:dd}" -f [DateTime]::now
New-Item "$LogsArchive\$folder1\$folder2\$folder3\$folder4" -type Directory -force | out-Null
If(!(Test-Path "\\$computer\c$\LogFolder\$folder"))
{
New-Item "\\$computer\c$\LogFolder\$folder" -type Directory -force | out-Null
} #end if
Backup-EventLogs($Folder)
} #end Get-BackUpFolder
Function Backup-EventLogs
{
$Eventlogs = Get-WmiObject -Class Win32_NTEventLogFile -ComputerName $computer
Foreach($log in $EventLogs)
{
$path = "\\{0}\c$\LogFolder\$folder\{1}.evt" -f $Computer,$log.LogFileName
$ErrBackup = ($log.BackupEventLog($path)).ReturnValue
Copy-EventLogsToArchive -path $path -Folder $Folder
} #end foreach log
} #end Backup-EventLogs
Function Copy-EventLogsToArchive($path, $folder)
{
Copy-Item -path $path -dest "$LogsArchive\$folder1\$folder2\$folder3\$folder4" -force
remove-item -path "\\$computer\c$\LogFolder\*.evt"
} # end Copy-EventLogsToArchive
If($List_SVR) { $Computers = Get-Content -path $List_SVR; Test-ComputerConnection; exit } |
Pour le lancer j'ai créé une tache planifié sur mon serveur qui exectute tous les jours le .bat suivant :
1 2 3
| C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe -executionpolicy bypass -file X:\BACKUP_LOGS\SCRIPTS\SCRIPT_SVG_LOGS_SVR.ps1
pause |
Quelqu'un pourrait-il m'aider ? où ai-je merdé ? d'apres powershell le problème viendrait de la ligne 58
Copy-Item -path $path -dest "$LogsArchive\$folder1\$folder2\$folder3\$folder4" -force
Merci d'avance, cordialement.
Partager