/
Logoner
/
archive_control
Обзор
Документация
Войти
/
Logoner
/
archive_control
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
Check-File_v2.ps1
71 строка
3 KB
Logoner
upload files
28 дек 2024, 13:52
28 дек 2024, 13:52
dc41705
Код
Авторство
О чём код?
# Указываем путь к сетевой папке $networkPath = "\\SRV\Archives" # Путь для лог-файла $logFile = "C:\dir_z_log.txt" # Удаление старого лог-файла, если он существует if (Test-Path $logFile) { Remove-Item $logFile } # Создаем новый пустой лог-файл New-Item -Path $logFile -ItemType File | Out-Null # Получаем список всех папок в сетевом каталоге $folders = Get-ChildItem -Path $networkPath -Directory foreach ($folder in $folders) { # Получаем полный путь до папки $fullFolderPath = Join-Path -Path $networkPath -ChildPath $folder.Name # Получаем самый свежий архив в папке $latestArchive = Get-ChildItem -Path $fullFolderPath -Filter *.zip | Sort-Object LastWriteTime -Descending | Select-Object -First 1 if ($latestArchive) { # Проверка даты создания архива $archiveAgeInDays = ((Get-Date) - $latestArchive.LastWriteTime).TotalDays if ($archiveAgeInDays -gt 10) { Add-Content -Path $logFile -Value "Warning!: Архив в папке '$($folder.Name)' устарел. Последний архив был создан $(($latestArchive.LastWriteTime).ToString('dd-MM-yyyy'))." } # Проверка размера архива if ($latestArchive.Length -lt 2048) { # 2 КБ Add-Content -Path $logFile -Value "Warning!: Размер архива в папке '$($folder.Name)' подозрительно мал. Размер файла: $($latestArchive.Length) байт." } } else { # Если архивов нет, то записываем предупреждение об этом Add-Content -Path $logFile -Value "Warning!: В папке '$($folder.Name)' отсутствуют архивы." } } # Форматируем текущую дату в формате 'dd-MM-yyyy' $currentDate = (Get-Date).ToString("dd-MM-yyyy") # Формируем тему письма с текущей датой $subject = "Archives of Users - office $currentDate" # Параметры для отправки почты $smtpServer = "mail.hosting.server.ru" $smtpPort = 587 $fromAddress = "kontrol@mail.ru" $toAddress = "admin@mail.ru" # замените на нужный email получателя $body = "Пожалуйста, ознакомьтесь с результатами проверки архивации." # основной текст письма $username = "kontrol@mail.ru" $password = ConvertTo-SecureString "MyPa$$w0rd" -AsPlainText -Force $credentials = New-Object System.Management.Automation.PSCredential($username, $password) # Отправляем лог по почте Send-MailMessage ` -From $fromAddress ` -To $toAddress ` -Subject $subject ` -Body $body ` -Attachments $logFile ` -SmtpServer $smtpServer ` -Port $smtpPort ` -UseSsl ` -Credential $credentials