none
Автоматизация WBADMIN & Powershell RRS feed

  • Вопрос

  • Добрый день.

    Только начал изучать Powershell. Сталкнулся с задачей:

    1) необходимо создать полный слепок системного тома

    2) переименовать созданную папку в формате "Get-Date -f dd.MM.yyyy"

    3) переместить этот архив в сетевое хранилище

    4) записать в лог, сохранить

    5) сверить, например, по 5 последним архивам и более старые удалить из сетевого хранилища

    6) отправить письмо администратору

    Для реализации сделал следующее:

    # подключаем оснастку Server Backup
    Add-PSSnapin Windows.Serverbackup

    # создаём задание бэкапа
    $profiles = New-WBPolicy

    # создаём и добавляем в задание бэкапа архивируемую папку
    $source = New-WBFileSpec -FileSpec "F:\WindowsImageBackup"
    Add-WBFileSpec -Policy $profiles -FileSpec $source

    # указываем локальный том, на который будет копироваться архив
    $target = New-WBBackupTarget -VolumePath "H:"
    Add-WBBackupTarget -Policy $profiles -Target $target

    # выполняем бэкап
    Start-WBBackup -Policy $profiles
    # проверяем код возврата с результатом выполнения бэкапа
    if ((Get-WBSummary).LastBackupResultHR -eq 0) {

        # переименовываем архив в более понятное имя
        $newname = "Profiles_$(Get-Date -f dd.MM.yyyy)"
        Ren H:\WindowsImageBackup -NewName $newname

        # копируем архив в сетевую папку
        copy  H:\$newname \\ivo5\ivo5shere\profiles

        # удаляем все архивы из сетевой папки, которые старше 7 дней
        dir \\ivo5\ivo5shere\profiles | ?{$_.lastwritetime -lt (Get-Date).AddDays(-5)} | del -Force

    else {
        # ругаемся, что бэкап не был завершён успешно
    }

    Большая просьба указать на ошибки и помочь разобраться с отправкой писем... Заранее благодарю!


    • Изменено Sivakov Constantine 3 августа 2016 г. 11:30 Опечатка в коде скрипта
    3 августа 2016 г. 11:29

Ответы

  • 1 оформляйте скрипты в скриптблоки (2я кнопка справа в окне редактирования) так проще их читать

    2 если хотите писать читаемый код лучше использовать командлеты а не их алиасы (хоть на работу это и не влияет)

    3 где ошибки то? Вы запускали написанное?

    4 отправка писем send-mailmessage, help по которому можно получить help send-mailmessage -full


    The opinion expressed by me is not an official position of Microsoft

    • Предложено в качестве ответа Kazun 3 августа 2016 г. 15:44
    • Помечено в качестве ответа Vector BCOModerator 13 августа 2016 г. 21:22
    3 августа 2016 г. 14:49
    Модератор