![]() |
Внимание, важное сообщение: Дорогие Друзья!
В ноябре далекого 2001 года мы решили создать сайт и форум, которые смогут помочь как начинающим, так и продвинутым пользователям разобраться в операционных системах. В 2004-2006г наш проект был одним из самых крупных ИТ ресурсов в рунете, на пике нас посещало более 300 000 человек в день! Наша документация по службам Windows и автоматической установке помогла огромному количеству пользователей и сисадминов. Мы с уверенностью можем сказать, что внесли большой вклад в развитие ИТ сообщества рунета. Но... время меняются, приоритеты тоже. И, к сожалению, пришло время сказать До встречи! После долгих дискуссий было принято решение закрыть наш проект. 1 августа форум переводится в режим Только чтение, а в начале сентября мы переведем рубильник в положение Выключен Огромное спасибо за эти 24 года, это было незабываемое приключение. Сказать спасибо и поделиться своей историей можно в данной теме. С уважением, ваш призрачный админ, BigMac... |
|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » PowerShell - [решено] скрипт для выявления невыполненных ежедневных бэкапов |
|
|
PowerShell - [решено] скрипт для выявления невыполненных ежедневных бэкапов
|
Пользователь Сообщения: 126 |
Друзья, помогите решить проблему, не могу сделать правильный вывод данных. Как вывести только названия тех папок, где не существуют файлы, которые будут заданы в условие (к примеру $_.LastWriteTime не являются вчерашней датой). Заранее спасибо.
|
|
Отправлено: 20:54, 10-09-2012 |
Новый участник Сообщения: 5
|
Профиль | Отправить PM | Цитировать там именно Out-String, опечатался в предыдущем сообщении...
Возможно нужен 3-й PowerShell? Пробую на 2-й версии |
Отправлено: 17:04, 20-09-2012 | #21 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Ветеран Сообщения: 1259
|
Профиль | Отправить PM | Цитировать Не требуется PowerShell V3,тут скобка пропущена:
$Body = @( $Style ### Условие: если нет указанных файлов по заданному фильтру - выводит в таблицу каталог где их нет ### if ($NotExist -gt $null) { "<font color=red>В каталогах нет обновлений</font>" $NotExist | ConvertTo-Html -Fragment @{Label="Каталог";e={$_.Name}}, @{Label="Последнее обновление";e={$_.LastWriteTime}} ### Условие: если все впорядке и файлы есть - выводит в таблицу список файлов и некоторые свойства файла ### if ($Exist -gt $null) { "<br><font color=green>$Host1 - Файлы обновленных бэкапов за $Yesterday</font>" $Exist | ConvertTo-Html -Fragment @{Label="Тип";e={$_.Extension}}, @{Label="Каталог файла";e={$_.Directory.Name}}, @{Label="Имя файла";e={$_.BaseName}}, @{Label="Размер Мб";e={"{0:N0}" -f ($_.Length/1mb)}} } }) | Out-String |
Отправлено: 17:10, 20-09-2012 | #22 |
Новый участник Сообщения: 5
|
Профиль | Отправить PM | Цитировать Спасибо!
|
Отправлено: 17:17, 20-09-2012 | #23 |
Пользователь Сообщения: 126
|
Профиль | Отправить PM | Цитировать Скобка не там пропущена, прошу прощения, неверно код вставил. Скобка пропущена в самом конце первого условия, на строчку выше второго условия.
Вот верный кусок: ### Условие: если нет указанных файлов по заданному фильтру - выводит в таблицу каталог где их нет ### if ($NotExist -gt $null) { "<font color=red>В каталогах нет обновлений</font>" $NotExist | ConvertTo-Html -Fragment @{Label="Каталог";e={$_.Name}}, @{Label="Последнее обновление";e={$_.LastWriteTime}} } ### Условие: если все впорядке и файлы есть - выводит в таблицу список файлов и некоторые свойства файла ### if ($Exist -gt $null) { "<br><font color=green>$Host1 - Файлы обновленных бэкапов за $Yesterday</font>" $Exist | ConvertTo-Html -Fragment @{Label="Тип";e={$_.Extension}}, @{Label="Каталог файла";e={$_.Directory.Name}}, @{Label="Имя файла";e={$_.BaseName}}, @{Label="Размер Мб";e={"{0:N0}" -f ($_.Length/1mb)}} } ) | Out-String |
Последний раз редактировалось rudimko, 21-09-2012 в 10:35. Отправлено: 20:03, 20-09-2012 | #24 |
Пользователь Сообщения: 126
|
Профиль | Отправить PM | Цитировать Еще раз о крике помощи
Имеем допотопный скрипт, который ищет файлы в каталогах по маске (за вчерашний день и за позавчерашний день): $Date = Get-Date $Yesterday = Get-Date $Date.AddDays(-1) -Format "dd/MM/yyyy" $YesterdayF = Get-Date $Yesterday -Format "yyyyMMdd" $BeforeYesterday = Get-Date $Date.AddDays(-2) -Format "dd/MM/yyyy" $BeforeYesterdayF = Get-Date $BeforeYesterday -Format "yyyyMMdd" $Path = "C:\test" $Exist = Get-ChildItem -Path $Path -Recurse -Include "*.*" | Where-Object {$_.Name -like "*$YesterdayF*"} $Exist = $Exist + (Get-ChildItem -Path $Path -Recurse -Include "*.*" | Where-Object {$_.Name -like "*$BeforeYesterdayF*"}) $Exist | Sort-Object -Property $_.Name | Format-Table @{Label="Каталог";e={$_.Directory.Name}}, @{Label="Имя";e={$_.Name}}, @{Label="Размер";e={"{0:N3}" -f ($_.Length/1mb)}} Цитата:
1. Каталог 2. Имя файла (вчерашний файл, если его нет, тогда позавчерашний) 3. Размер Позавчерашнего файла если он есть) 4. Размер Вчерашнего файла (если он есть) 5. Вывод отметок по условиям (ставить ОК: если имеется вчерашний файл и его размер не равен 0, если есть позавчерашний и вчерашний; ставить FAIL: если есть позавчерашний файл, а вчерашнего нет, если вчерашний файл меньше по размеру чем позавчерашний) Пример выходной таблички: Цитата:
|
||
Отправлено: 11:07, 21-09-2012 | #25 |
Ветеран Сообщения: 1259
|
Профиль | Отправить PM | Цитировать $Date = Get-Date $Yesterday = Get-Date $Date.AddDays(-1) -Format "dd/MM/yyyy" $YesterdayF = Get-Date $Yesterday -Format "yyyyMMdd" $BeforeYesterday = Get-Date $Date.AddDays(-2) -Format "dd/MM/yyyy" $BeforeYesterdayF = Get-Date $BeforeYesterday -Format "yyyyMMdd" $Path = "D:\test" $files = Get-ChildItem -Path $Path -Recurse | Where {$_.Name -match "$YesterdayF|$BeforeYesterdayF" -and !$_.PsIsContainer} | Group-Object {$_.Directory.Name} -AsString -AsHashtable $files.GetEnumerator() | Foreach { $value = $_.value if($value.Count -eq 1) { $size = $value[0].Length $name = $value[0].Name $fname = $_.Name if($name -match "$BeforeYesterdayF") { $Status = "Fail" $SizeBeforeYesterday = "{0:N3}" -f ($size/1mb) $SizeYesterday = "-" } else { if ($size) { $Status = "OK" } else { $Status = "Fail" } $SizeBeforeYesterday = "-" $SizeYesterday = "{0:N3}" -f ($size/1mb) } New-Object PsObject -Property @{ "Каталог" = $fname "Имя" = $name "Размер Позавчера" = $SizeBeforeYesterday "Размер Вчера" = $SizeYesterday "ОТМЕТКИ" = $Status } } else { $FileBefore = ($value -match "$BeforeYesterdayF")[0] $FileYesterday = ($value -match "$YesterdayF")[0] if (($FileYesterday.Length - $FileBefore.Length) -gt 0) { $Status = "OK" } else { $Status = "Fail" } New-Object PsObject -Property @{ "Каталог" = $_.Name "Имя" = $FileYesterday.Name "Размер Позавчера" = $("{0:N3}" -f ($FileBefore.Length/1mb)) "Размер Вчера" = $("{0:N3}" -f ($FileYesterday.Length/1mb)) "ОТМЕТКИ" = $Status } } } | Format-Table "Каталог","Имя","Размер Позавчера","Размер Вчера","ОТМЕТКИ" |
Последний раз редактировалось Kazun, 21-09-2012 в 12:47. Отправлено: 12:30, 21-09-2012 | #26 |
|
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
CMD/BAT - [решено] Вывод имени текущего пользователя | Sadowod | Скриптовые языки администрирования Windows | 24 | 27-12-2012 10:13 | |
Разное - какие файлы и папки я могу смело удалить из папки windows | fyt | Microsoft Windows 2000/XP | 6 | 05-01-2012 18:14 | |
Ошибка - Каракули в реестре "Синтаксическая ошибка в имени файла,имени папки или метке тома" | permas | Microsoft Windows 2000/XP | 2 | 20-02-2010 19:30 | |
Вывод размера папки в отдельный файл скриптом | Whiteee | Microsoft Windows NT/2000/2003 | 1 | 16-07-2008 14:06 | |
[решено] После интеграции SP2 в дистрибутиве отсутствуют некоторые файлы | bruder | Microsoft Windows 2000/XP | 6 | 03-03-2006 04:45 |
|