<?xml version="1.0" encoding="utf-8"?>
<rss xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:pingback="http://madskills.com/public/xml/rss/module/pingback/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:dc="http://purl.org/dc/elements/1.1/" version="2.0">
  <channel>
    <title>Vadims Podans's blog - PowerShell | Server Backup</title>
    <link>http://www.sysadmins.lv/</link>
    <description>PowerShell powered</description>
    <image>
      <url>http://www.sysadmins.lv/images/imgusr/bilde.jpg</url>
      <title>Vadims Podans's blog - PowerShell | Server Backup</title>
      <link>http://www.sysadmins.lv/</link>
    </image>
    <language>en-us</language>
    <copyright>Vadims Podāns</copyright>
    <lastBuildDate>Wed, 14 Oct 2009 20:29:30 GMT</lastBuildDate>
    <generator>newtelligence dasBlog 2.3.9074.18820</generator>
    <managingEditor>vpodans@sysadmins.lv</managingEditor>
    <webMaster>vpodans@sysadmins.lv</webMaster>
    <item>
      <trackback:ping>http://www.sysadmins.lv/Trackback.aspx?guid=89438ea9-9bec-4070-8d81-f355a2215a8c</trackback:ping>
      <pingback:server>http://www.sysadmins.lv/pingback.aspx</pingback:server>
      <pingback:target>http://www.sysadmins.lv/PermaLink,guid,89438ea9-9bec-4070-8d81-f355a2215a8c.aspx</pingback:target>
      <dc:creator>Camelot</dc:creator>
      <wfw:comment>http://www.sysadmins.lv/CommentView,guid,89438ea9-9bec-4070-8d81-f355a2215a8c.aspx</wfw:comment>
      <wfw:commentRss>http://www.sysadmins.lv/SyndicationService.asmx/GetEntryCommentsRss?guid=89438ea9-9bec-4070-8d81-f355a2215a8c</wfw:commentRss>
      <slash:comments>6</slash:comments>
      <title>Windows Server 2008 R2 и Windows Backup (часть 2)</title>
      <guid isPermaLink="false">http://www.sysadmins.lv/PermaLink,guid,89438ea9-9bec-4070-8d81-f355a2215a8c.aspx</guid>
      <link>http://www.sysadmins.lv/PermaLink,guid,89438ea9-9bec-4070-8d81-f355a2215a8c.aspx</link>
      <pubDate>Wed, 14 Oct 2009 20:29:30 GMT</pubDate>
      <description>&lt;div&gt;&lt;p&gt;В предыдущей части бэкапа в Windows Server 2008 R2 (&lt;a href="http://www.sysadmins.lv/PermaLink,guid,ffb3aa89-0bc0-4de0-9eaf-5866e813afec.aspx"&gt;Windows Server 2008 R2 и Windows Backup (часть 1)&lt;/a&gt;) мы рассмотрели основные моменты создания бэкапа средствами PowerShell. Сегодня мы рассмотрим вопросы самого процесса бэкапа и о его хранении.&lt;/p&gt;  &lt;h1 align="center"&gt;Проверка успешности бэкапа&lt;/h1&gt;  &lt;p&gt;Когда процесс бэкапа закончится, можно посмотреть его статус:&lt;/p&gt;  &lt;div style="width: 935px"&gt;   &lt;blockquote&gt;     &lt;pre style="background-color: #000040; font: 9pt consolas, lucida console"&gt;&lt;font color="#c0c0c0"&gt;&lt;span&gt;&lt;p&gt;&lt;font color="#00ff00"&gt;[↑]&lt;/font&gt; [Administrator] Get-WBSummary


NextBackupTime                  : 0001.01.01. 0:00:00
&lt;font color="#ffffff"&gt;&lt;strong&gt;NumberOfVersions                : 5&lt;/strong&gt;&lt;/font&gt;
LastSuccessfulBackupTime        : 2009.10.07. 14:39:42
LastSuccessfulBackupTargetPath  : \\?\Volume{ca6dbf07-14ad-11de-937f-806e6f6e6963}
LastSuccessfulBackupTargetLabel : Camelot Share-1
LastBackupTime                  : 2009.10.07. 14:39:42
LastBackupTarget                : E:
DetailedMessage                 :
&lt;font color="#ffffff"&gt;&lt;strong&gt;LastBackupResultHR              : 0&lt;/strong&gt;&lt;/font&gt;
LastBackupResultDetailedHR      : 0
CurrentOperationStatus          : NoOperationInProgress&lt;/p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/pre&gt;
  &lt;/blockquote&gt;
&lt;/div&gt;

&lt;p&gt;Здесь вы увидите основные сведения о результатах бэкапа. Свойство &lt;strong&gt;LastBackupResultHR&lt;/strong&gt; содержит код возврата. Если это 0, то всё хорошо. Если это не 0, то бэкап не был выполнен удачно. А вот свойство &lt;strong&gt;NumberOfVersions&lt;/strong&gt; показывает сколько уже копий бэкапа содержится в текущем архиве. Более подробно этот момент будет рассмотрен ниже.&lt;/p&gt;

&lt;h1 align="center"&gt;Процесс создания и хранения бэкапа&lt;/h1&gt;

&lt;p&gt;При выполнении бэкапа происходит несколько вещей:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;
    &lt;div align="justify"&gt;В корне диска назначения бэкапа создаётся структура папок: &lt;font color="#008000"&gt;&amp;lt;путь до диска или сетевой папки&amp;gt;\WindowsImageBackup\&amp;lt;имя компьютера&amp;gt;&lt;/font&gt;&lt;/div&gt;
  &lt;/li&gt;

  &lt;li&gt;
    &lt;div align="justify"&gt;После окончания бэкапа система делает теневую копию этого тома (кроме сетевых папок) тома, на котором хранится бэкап.&lt;/div&gt;
  &lt;/li&gt;

  &lt;li&gt;
    &lt;div align="justify"&gt;Обновляется каталог бэкапов.&lt;/div&gt;
  &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Если это сетевая папка, то в пути &lt;font color="#0000ff"&gt;\\Server\BackupShare\WindowsImageBackup&lt;/font&gt; создаст папку для каждого компьютера и в ней будет хранить бэкап соответствующего компьютера. При этом последующие операции бэкапа будут копировать архив в эту же папку.&amp;#160; Во времена ntbackup.exe мы могли выбирать метод выполнения бэкапа — с использованием VSS или без (это не относилось к SystemState бэкапам), а теперь этот вопрос решён однозначно — VSS используется всегда. Это обусловлено ещё тем, что &lt;em&gt;Server Backup использует VSS для ведения истории бэкапов&lt;/em&gt;, что исключает путаницу в архивных копиях. Внимательные читатели могут заметить, что внутри папки бэкапа есть VHD файл (по одному VHD на каждый архивируемый том), который содержит актуальное состояние бэкапа. И тут появляется интересная вещь: каждый новый бэкап копируется в один VHD файл — а куда же деваются предыдущие копии? На самом деле все они хранятся в этом VHD файле, но скрыты за теневыми копиями, которые создаются при каждой операции бэкапа и закрепляются за архивом:&lt;/p&gt;

&lt;div style="width: 935px"&gt;
  &lt;blockquote&gt;
    &lt;pre style="background-color: #000040; font: 9pt consolas, lucida console"&gt;&lt;font color="#c0c0c0"&gt;&lt;span&gt;&lt;p&gt;&lt;font color="#00ff00"&gt;[↑]&lt;/font&gt; [Administrator] Get-WBBackupSet


VersionId        : 10/07/2009-10:49
BackupTime       : 2009.10.07. 13:49:41
BackupTarget     : E:
RecoverableItems : Volumes, Files
Volume           : {System (C:)}
Application      : {}
VssBackupOption  : VssCopyBackup
SnapshotId       : 8d6aa8ef-bb24-4ffc-93da-08831bc4ae88

VersionId        : 10/07/2009-11:15
BackupTime       : 2009.10.07. 14:15:36
BackupTarget     : E:
RecoverableItems : Volumes, Files
Volume           : {System (C:)}
Application      : {}
VssBackupOption  : VssCopyBackup
SnapshotId       : ab2c6d39-3447-4c9b-b072-f03d746045c4

&amp;lt;...&amp;gt;&lt;/p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/pre&gt;
  &lt;/blockquote&gt;
&lt;/div&gt;

&lt;p&gt;Команда &lt;strong&gt;Get-WBBackupSet&lt;/strong&gt; показывает историю бэкапов системы и &lt;strong&gt;ID&lt;/strong&gt; номер теневой копии, которая содержит файлы архива на момет выполнения конкретного задания бэкапа. При восстановлении из бэкапа консоль MMC считывает эти копии и позволяет восстановить файлы на любой момент времени выполнения бэкапа. Чтобы дать более понятное представление об этом, покажу простой пример:&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;Выполняется первый бэкап №1. &lt;/li&gt;

  &lt;li&gt;В BackupTarget создаётся папка с архивом и в VHD файл записываются данные, которые мы архивируем; &lt;/li&gt;

  &lt;li&gt;В BackupTarget создаётся теневая копия, которая так же содержит эти файлы и закрепляется за этим бэкапом; &lt;/li&gt;

  &lt;li&gt;Время бэкапа и ID теневой копии записывается в каталог бэкапа; &lt;/li&gt;

  &lt;li&gt;Выполняется следующий бэкап этого же задания под № 2. &lt;/li&gt;

  &lt;li&gt;В BackupTarget уже ничего не создаётся, а новые данные добавляются в VHD файл, скрывая данные из бэкапа №1; &lt;/li&gt;

  &lt;li&gt;В BackupTarget создаётся теневая копия, которая так же содержит новые данные и закрепляется за этим бэкапом (№2); &lt;/li&gt;

  &lt;li&gt;Время бэкапа и ID теневой копии записывается в каталог бэкапа. &lt;/li&gt;

  &lt;li&gt;повторяются пункты 5-8. &lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Несмотря на то, что при непосредственном просмотре VHD файла мы видим только данные сохранённые после последней операции бэкапа, в нём по прежнему хранятся и все предыдущие копии, которые система различает по теневым копиям, которые закреплены за каждым бэкапом. Именно здесь теневые копии играют огромную роль в хранении истории бэкапа. И пока эти теневые копии живы, мы имеем доступ к предыдущим версиям файлов внутри VHD архива. Это даёт следующие преимущества:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;больше нет кучи файлов архивов, которые нужно самому собирать в какое-то хранилище и как-то идентифицировать; &lt;/li&gt;

  &lt;li&gt;для восстановления файлов и томов не обязательно наличие самого бэкапа. Ведь теневая копия, которая закрепляется за этим бэкапом тоже может использоваться для восстановления. &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;В большинстве случаев это решение будет являться достаточным для любых операций восстановления. Единственное критичное место здесь будет наличие этих теневых копий. Это может вызвать трудности только при повреждении теневых копий на архивном томе. Но обычно это уже будет означать потерю всех бэкапов. Такие дела.&lt;/p&gt;

&lt;h1 align="center"&gt;Как долго хранятся бэкапы на архивном томе?&lt;/h1&gt;

&lt;p&gt;Хранятся они там сколь угодно долго, пока есть свободное место. Когда свободное место заканчивается, то Server Backup автоматически пытается отыскать себе место. Если у нас выполняются только полные бэкапы, то наиболее старые версии архивов просто удаляются. Если у нас комбинируются полные бэкапы с инкрементальными/дифференциальными, то берётся наиболее старый архив и в него вписываются инкрементальные/дифференциальные архивы, которые были выполнены в промежутках между полными бэкапами до тех пор, пока не освободится достаточно для нового бэкапа места. Таким образом обеспечивается сохранность наиболее новых архивов с удалением более старых. Такая схема автоматической ротации так же будет востребована в большинстве случаев. Для экономии места Server Backup для запланированного задания автоматически делает комбинирование полных и инкрементальных бэкапов. Каждые 2 недели выполняется полный бэкап и ежедневно в промежутках между полными будет выполняться только инкрементальное архивирование.&lt;/p&gt;

&lt;p&gt;Такая автонастройка режимов для запланированных бэкапов и авторотация будет достаточно эффективна и проста в сегменте SOHO/SMB, не отвлекая на себя слишком много внимания администратора. От администратора потребуется только создание задания и организация отказоустойчивости тома с архивами.&lt;/p&gt;

&lt;h1 align="center"&gt;Совмещение нескольких заданий и индивидуальная ротация архивов&lt;/h1&gt;

&lt;p&gt;Разработчики Server Backup сделали всё, чтобы упростить процесс выполнения бэкапа в стандартных случаях SOHO/SMB. Но когда появляются особые условия, то тут начинаются свои сложности, хотя это всё относительно преодолимо. Например, вы создали несколько заданий бэкапов, которые отдельно что-то архивируют в одну и ту же точку. Но к каждому заданию предъявляются свои требования по сроку хранения бэкапа.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Пример:&lt;/strong&gt; это файл-сервер и вы архивируете папку с документами пользователей ежедневно и следует хранить только 7 последние копии. Другое задание архивирует инсталляционные файлы вашей сети раз в неделю и требуется наличие только 4 последних копий. Так же все копии должны копироваться в сетевую папку или на съёмный диск на случай катастрофы и/или &lt;a href="http://lurkmore.ru/%D0%90%D0%B4_%D0%B8_%D0%B8%D0%B7%D1%80%D0%B0%D0%B8%D0%BB%D1%8C" target="_blank"&gt;ада и Израиля&lt;/a&gt;. В такой ситуации мы потеряем возможность использования авторотации архивов и прочих плюшек. Давайте посмотрим, как будет выглядеть примерный скрипт:&lt;/p&gt;

&lt;blockquote&gt;
  &lt;pre&gt;&lt;span style="color: #008000"&gt;#&lt;/span&gt;&lt;span style="color: #008000"&gt; подключаем оснастку Server Backup&lt;/span&gt;&lt;span style="color: #008000"&gt;
&lt;/span&gt;&lt;span style="color: #5f9ea0; font-weight: bold"&gt;Add-PSSnapin&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #800000"&gt;Windows.Serverbackup&lt;/span&gt;&lt;span style="color: #000000"&gt;
&lt;/span&gt;&lt;span style="color: #008000"&gt;#&lt;/span&gt;&lt;span style="color: #008000"&gt; создаём задание бэкапа&lt;/span&gt;&lt;span style="color: #008000"&gt;
&lt;/span&gt;&lt;span style="color: #800080"&gt;$profiles&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #ff0000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #5f9ea0; font-weight: bold"&gt;New-WBPolicy&lt;/span&gt;&lt;span style="color: #000000"&gt;
&lt;/span&gt;&lt;span style="color: #008000"&gt;#&lt;/span&gt;&lt;span style="color: #008000"&gt; создаём и добавляем в задание бэкапа архивируемую папку&lt;/span&gt;&lt;span style="color: #008000"&gt;
&lt;/span&gt;&lt;span style="color: #800080"&gt;$source&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #ff0000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #5f9ea0; font-weight: bold"&gt;New-WBFileSpec&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="font-style: italic; color: #5f9ea0"&gt;-FileSpec&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #800000"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #800000"&gt;D:\Users&lt;/span&gt;&lt;span style="color: #800000"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000"&gt;
&lt;/span&gt;&lt;span style="color: #5f9ea0; font-weight: bold"&gt;Add-WBFileSpec&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="font-style: italic; color: #5f9ea0"&gt;-Policy&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #800080"&gt;$profiles&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="font-style: italic; color: #5f9ea0"&gt;-FileSpec&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #800080"&gt;$source&lt;/span&gt;&lt;span style="color: #000000"&gt;
&lt;/span&gt;&lt;span style="color: #008000"&gt;#&lt;/span&gt;&lt;span style="color: #008000"&gt; указываем локальный том, на который будет копироваться архив&lt;/span&gt;&lt;span style="color: #008000"&gt;
&lt;/span&gt;&lt;span style="color: #800080"&gt;$target&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #ff0000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #5f9ea0; font-weight: bold"&gt;New-WBBackupTarget&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="font-style: italic; color: #5f9ea0"&gt;-VolumePath&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #800000"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #800000"&gt;E:&lt;/span&gt;&lt;span style="color: #800000"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000"&gt;
&lt;/span&gt;&lt;span style="color: #5f9ea0; font-weight: bold"&gt;Add-WBBackupTarget&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="font-style: italic; color: #5f9ea0"&gt;-Policy&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #800080"&gt;$profiles&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="font-style: italic; color: #5f9ea0"&gt;-Target&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #800080"&gt;$target&lt;/span&gt;&lt;span style="color: #000000"&gt;
&lt;/span&gt;&lt;span style="color: #008000"&gt;#&lt;/span&gt;&lt;span style="color: #008000"&gt; выполняем бэкап&lt;/span&gt;&lt;span style="color: #008000"&gt;
&lt;/span&gt;&lt;span style="color: #5f9ea0; font-weight: bold"&gt;Start-WBBackup&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="font-style: italic; color: #5f9ea0"&gt;-Policy&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #800080"&gt;$profiles&lt;/span&gt;&lt;span style="color: #000000"&gt;
&lt;/span&gt;&lt;span style="color: #008000"&gt;#&lt;/span&gt;&lt;span style="color: #008000"&gt; проверяем код возврата с результатом выполнения бэкапа&lt;/span&gt;&lt;span style="color: #008000"&gt;
&lt;/span&gt;&lt;span style="color: #0000ff"&gt;if&lt;/span&gt;&lt;span style="color: #000000"&gt; ((&lt;/span&gt;&lt;span style="color: #5f9ea0; font-weight: bold"&gt;Get-WBSummary&lt;/span&gt;&lt;span style="color: #000000"&gt;).LastBackupResultHR &lt;/span&gt;&lt;span style="color: #ff0000"&gt;-eq&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #000000"&gt;0&lt;/span&gt;&lt;span style="color: #000000"&gt;) {
    &lt;/span&gt;&lt;span style="color: #008000"&gt;#&lt;/span&gt;&lt;span style="color: #008000"&gt; переименовываем архив в более понятное имя&lt;/span&gt;&lt;span style="color: #008000"&gt;
&lt;/span&gt;&lt;span style="color: #000000"&gt;    &lt;/span&gt;&lt;span style="color: #800080"&gt;$newname&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #ff0000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #800000"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #800000"&gt;Profiles_$(Get-Date -f dd.MM.yyyy)&lt;/span&gt;&lt;span style="color: #800000"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000"&gt;
    &lt;/span&gt;&lt;span style="color: #5f9ea0; font-weight: bold"&gt;Ren&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #800000"&gt;E:\WindowsImageBackup&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="font-style: italic; color: #5f9ea0"&gt;-NewName&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #800080"&gt;$newname&lt;/span&gt;&lt;span style="color: #000000"&gt;
    &lt;/span&gt;&lt;span style="color: #008000"&gt;#&lt;/span&gt;&lt;span style="color: #008000"&gt; копируем архив в сетевую папку&lt;/span&gt;&lt;span style="color: #008000"&gt;
&lt;/span&gt;&lt;span style="color: #000000"&gt;    &lt;/span&gt;&lt;span style="color: #5f9ea0; font-weight: bold"&gt;copy&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #800000"&gt;e:\$newname&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #800000"&gt;\\server\backups\profiles&lt;/span&gt;&lt;span style="color: #000000"&gt;
    &lt;/span&gt;&lt;span style="color: #008000"&gt;#&lt;/span&gt;&lt;span style="color: #008000"&gt; удаляем все архивы из сетевой папки, которые старше 7 дней&lt;/span&gt;&lt;span style="color: #008000"&gt;
&lt;/span&gt;&lt;span style="color: #000000"&gt;    &lt;/span&gt;&lt;span style="color: #5f9ea0; font-weight: bold"&gt;dir&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #800000"&gt;\\server\backups\profiles&lt;/span&gt;&lt;span style="color: #000000"&gt; | ?{&lt;/span&gt;&lt;span style="color: #800080"&gt;$_&lt;/span&gt;&lt;span style="color: #000000"&gt;.lastwritetime &lt;/span&gt;&lt;span style="color: #ff0000"&gt;-lt&lt;/span&gt;&lt;span style="color: #000000"&gt; (&lt;/span&gt;&lt;span style="color: #5f9ea0; font-weight: bold"&gt;Get-Date&lt;/span&gt;&lt;span style="color: #000000"&gt;).AddDays(&lt;/span&gt;&lt;span style="color: #ff0000"&gt;-&lt;/span&gt;&lt;span style="color: #000000"&gt;7&lt;/span&gt;&lt;span style="color: #000000"&gt;)} | &lt;/span&gt;&lt;span style="color: #5f9ea0; font-weight: bold"&gt;del&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="font-style: italic; color: #5f9ea0"&gt;-Force&lt;/span&gt;&lt;span style="color: #000000"&gt;
} &lt;/span&gt;&lt;span style="color: #0000ff"&gt;else&lt;/span&gt;&lt;span style="color: #000000"&gt; {
    &lt;/span&gt;&lt;span style="color: #008000"&gt;#&lt;/span&gt;&lt;span style="color: #008000"&gt; ругаемся, что бэкап не был завершён успешно&lt;/span&gt;&lt;span style="color: #008000"&gt;
&lt;/span&gt;&lt;span style="color: #000000"&gt;}&lt;/span&gt;&lt;/pre&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;font color="#00afff"&gt;&lt;/font&gt;&lt;/p&gt;

&lt;p&gt;И уже этот файл отдельно зашедулить в &lt;strong&gt;Task Scheduler&lt;/strong&gt;. В такой ситуации дополнительных шагов не требуется, т.к. пока живы теневые копии, вы можете восстанавливать файлы из них (наличие самого архива не требуется). А если теневых копий уже не осталось (например, том с архивами был отформатирован), то для восстановления данных просто копируете папку с архивом в корень любого тома с именем &lt;strong&gt;WindowsImageBackup&lt;/strong&gt; и тогда этот архив будет определён системой как пригодный для восстановления. Так вы можете делать несколько раздельных заданий с индивидуальным расписанием бэкапа и ротацией.&lt;/p&gt;

&lt;p&gt;Если ротация архивов в сетевой папке достаточно проста и укладывается в одну строчку, то с локальными архивами придётся подключать утилиты CMD, а именно — &lt;strong&gt;diskshadow.exe&lt;/strong&gt;! Вам нужно внутри diskshadow выполнить &lt;font color="#0000ff"&gt;Delete Shadows ID {GUID}&lt;/font&gt;, где &lt;strong&gt;GUID&lt;/strong&gt; — &lt;strong&gt;ID&lt;/strong&gt; теневой копии, которая закреплена за конкретным бэкапом и его можно получить из вывода &lt;strong&gt;Get-WBBackupSet&lt;/strong&gt; (свойство &lt;strong&gt;SnapshotID&lt;/strong&gt;)&lt;/p&gt;

&lt;div style="width: 935px"&gt;
  &lt;blockquote&gt;
    &lt;pre style="background-color: #000040; font: 9pt consolas, lucida console"&gt;&lt;font color="#c0c0c0"&gt;&lt;span&gt;&lt;p&gt;&lt;font color="#00ff00"&gt;[↑]&lt;/font&gt; [Administrator] diskshadow
Microsoft DiskShadow version 1.0
Copyright (C) 2007 Microsoft Corporation
On computer:  CAMELOT,  2009.10.13. 22:18:05


DISKSHADOW&amp;gt; delete shadows ID {8d6aa8ef-bb24-4ffc-93da-08831bc4ae88}
Deleting shadow copy {8d6aa8ef-bb24-4ffc-93da-08831bc4ae88}...

1 shadow copy deleted.

DISKSHADOW&amp;gt;&lt;/p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/pre&gt;
  &lt;/blockquote&gt;
&lt;/div&gt;

&lt;p&gt;Вот таким образом можно удалять старые теневые копии архивов по одиночке. При удалении теневой копии при следующей операции бэкапа будет обновлён каталог бэкапов. Чтобы удалить все предыдущие архивы кроме текущего внутри diskshadow нужно выполнить:&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;&lt;font color="#0000ff"&gt;Delete Shadows Oldest E:&lt;/font&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;где &lt;strong&gt;E:&lt;/strong&gt; — путь к тому с архивами.&lt;/p&gt;

&lt;p&gt;Сами данные из VHD файла будут удалены только при следующей операции бэкапа. Однако, это не относится к архивам, которые содержат &lt;strong&gt;SystemState&lt;/strong&gt;. Для ротации архивов SystemState придётся воспользоваться уже другой утилитой — &lt;strong&gt;wbadmin.exe&lt;/strong&gt;:&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;&lt;font color="#0000ff"&gt;wbadmin delete systemstatebackup –version: datetime&lt;/font&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;где datetime — дата и время выполнения бэкапа. Эту дату можно получить так же из вывода командлета &lt;strong&gt;Get-WBBackupSet&lt;/strong&gt; (свойство &lt;strong&gt;VersionID&lt;/strong&gt;). Чтобы удалить все бэкапы SystemState, кроме текущего следует выполнить:&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;&lt;font color="#0000ff"&gt;wbadmin delete systemstatebackup –backuptarget:E: –deleteoldest&lt;/font&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;и для удаления всех наиболее старых архивов SystemState с сохранением N копий выполнить:&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;&lt;font color="#0000ff"&gt;wbadmin delete systemstatebackup –keepversions:N&lt;/font&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;где &lt;strong&gt;N&lt;/strong&gt; — количество копий SystemState, которые должны быть сохранены.&lt;/p&gt;

&lt;p&gt;Исходя из изученного нами материала можно сделать такую вещь: локально хранить стандартный архив с несколькими заданиями бэкапа, а в сетевой папке каждый тип архива отдельно и применять к ним раздельную ротацию. Единственное, что мне пришло на ум — использовать CSV файл для каталогизации теневых копий. Вот как это примерно выглядит:&lt;/p&gt;

&lt;blockquote&gt;
  &lt;pre&gt;&lt;span style="color: #008000"&gt;#&lt;/span&gt;&lt;span style="color: #008000"&gt; подключаем оснастку Server Backup&lt;/span&gt;&lt;span style="color: #008000"&gt;
&lt;/span&gt;&lt;span style="color: #5f9ea0; font-weight: bold"&gt;Add-PSSnapin&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #800000"&gt;Windows.Serverbackup&lt;/span&gt;&lt;span style="color: #000000"&gt;
&lt;/span&gt;&lt;span style="color: #008000"&gt;#&lt;/span&gt;&lt;span style="color: #008000"&gt; создаём задание бэкапа&lt;/span&gt;&lt;span style="color: #008000"&gt;
&lt;/span&gt;&lt;span style="color: #800080"&gt;$profiles&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #ff0000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #5f9ea0; font-weight: bold"&gt;New-WBPolicy&lt;/span&gt;&lt;span style="color: #000000"&gt;
&lt;/span&gt;&lt;span style="color: #008000"&gt;#&lt;/span&gt;&lt;span style="color: #008000"&gt; создаём и добавляем в задание бэкапа архивируемую папку&lt;/span&gt;&lt;span style="color: #008000"&gt;
&lt;/span&gt;&lt;span style="color: #800080"&gt;$source&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #ff0000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #5f9ea0; font-weight: bold"&gt;New-WBFileSpec&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="font-style: italic; color: #5f9ea0"&gt;-FileSpec&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #800000"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #800000"&gt;D:\Users&lt;/span&gt;&lt;span style="color: #800000"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000"&gt;
&lt;/span&gt;&lt;span style="color: #5f9ea0; font-weight: bold"&gt;Add-WBFileSpec&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="font-style: italic; color: #5f9ea0"&gt;-Policy&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #800080"&gt;$profiles&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="font-style: italic; color: #5f9ea0"&gt;-FileSpec&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #800080"&gt;$source&lt;/span&gt;&lt;span style="color: #000000"&gt;
&lt;/span&gt;&lt;span style="color: #008000"&gt;#&lt;/span&gt;&lt;span style="color: #008000"&gt; указываем локальный том, на который будет копироваться архив&lt;/span&gt;&lt;span style="color: #008000"&gt;
&lt;/span&gt;&lt;span style="color: #800080"&gt;$target&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #ff0000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #5f9ea0; font-weight: bold"&gt;New-WBBackupTarget&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="font-style: italic; color: #5f9ea0"&gt;-VolumePath&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #800000"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #800000"&gt;E:&lt;/span&gt;&lt;span style="color: #800000"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000"&gt;
&lt;/span&gt;&lt;span style="color: #5f9ea0; font-weight: bold"&gt;Add-WBBackupTarget&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="font-style: italic; color: #5f9ea0"&gt;-Policy&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #800080"&gt;$profiles&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="font-style: italic; color: #5f9ea0"&gt;-Target&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #800080"&gt;$target&lt;/span&gt;&lt;span style="color: #000000"&gt;
&lt;/span&gt;&lt;span style="color: #008000"&gt;#&lt;/span&gt;&lt;span style="color: #008000"&gt; выполняем бэкап&lt;/span&gt;&lt;span style="color: #008000"&gt;
&lt;/span&gt;&lt;span style="color: #5f9ea0; font-weight: bold"&gt;Start-WBBackup&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="font-style: italic; color: #5f9ea0"&gt;-Policy&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #800080"&gt;$profiles&lt;/span&gt;&lt;span style="color: #000000"&gt;
&lt;/span&gt;&lt;span style="color: #008000"&gt;#&lt;/span&gt;&lt;span style="color: #008000"&gt; проверяем код возврата с результатом выполнения бэкапа&lt;/span&gt;&lt;span style="color: #008000"&gt;
&lt;/span&gt;&lt;span style="color: #0000ff"&gt;if&lt;/span&gt;&lt;span style="color: #000000"&gt; ((&lt;/span&gt;&lt;span style="color: #5f9ea0; font-weight: bold"&gt;Get-WBSummary&lt;/span&gt;&lt;span style="color: #000000"&gt;).LastBackupResultHR &lt;/span&gt;&lt;span style="color: #ff0000"&gt;-eq&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #000000"&gt;0&lt;/span&gt;&lt;span style="color: #000000"&gt;) {
    &lt;/span&gt;&lt;span style="color: #008000"&gt;#&lt;/span&gt;&lt;span style="color: #008000"&gt; переименовываем архив в более понятное имя&lt;/span&gt;&lt;span style="color: #008000"&gt;
&lt;/span&gt;&lt;span style="color: #000000"&gt;    &lt;/span&gt;&lt;span style="color: #800080"&gt;$newname&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #ff0000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #800000"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #800000"&gt;Profiles_$(Get-Date -f dd.MM.yyyy)&lt;/span&gt;&lt;span style="color: #800000"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000"&gt;
    &lt;/span&gt;&lt;span style="color: #5f9ea0; font-weight: bold"&gt;Ren&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #800000"&gt;E:\WindowsImageBackup&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="font-style: italic; color: #5f9ea0"&gt;-NewName&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #800080"&gt;$newname&lt;/span&gt;&lt;span style="color: #000000"&gt;
    &lt;/span&gt;&lt;span style="color: #008000"&gt;#&lt;/span&gt;&lt;span style="color: #008000"&gt; копируем архив в сетевую папку&lt;/span&gt;&lt;span style="color: #008000"&gt;
&lt;/span&gt;&lt;span style="color: #000000"&gt;    &lt;/span&gt;&lt;span style="color: #5f9ea0; font-weight: bold"&gt;copy&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #800000"&gt;e:\$newname&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #800000"&gt;\\server\backups\profiles&lt;/span&gt;&lt;span style="color: #000000"&gt;
    &lt;/span&gt;&lt;span style="color: #008000"&gt;#&lt;/span&gt;&lt;span style="color: #008000"&gt; удаляем все архивы из сетевой папки, которые старше 7 дней&lt;/span&gt;&lt;span style="color: #008000"&gt;
&lt;/span&gt;&lt;span style="color: #000000"&gt;    &lt;/span&gt;&lt;span style="color: #5f9ea0; font-weight: bold"&gt;dir&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #800000"&gt;\\server\backups\profiles&lt;/span&gt;&lt;span style="color: #000000"&gt; | ?{&lt;/span&gt;&lt;span style="color: #800080"&gt;$_&lt;/span&gt;&lt;span style="color: #000000"&gt;.lastwritetime &lt;/span&gt;&lt;span style="color: #ff0000"&gt;-lt&lt;/span&gt;&lt;span style="color: #000000"&gt; (&lt;/span&gt;&lt;span style="color: #5f9ea0; font-weight: bold"&gt;Get-Date&lt;/span&gt;&lt;span style="color: #000000"&gt;).AddDays(&lt;/span&gt;&lt;span style="color: #ff0000"&gt;-&lt;/span&gt;&lt;span style="color: #000000"&gt;7&lt;/span&gt;&lt;span style="color: #000000"&gt;)} | &lt;/span&gt;&lt;span style="color: #5f9ea0; font-weight: bold"&gt;del&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="font-style: italic; color: #5f9ea0"&gt;-Force&lt;/span&gt;&lt;span style="color: #000000"&gt;
    &lt;/span&gt;&lt;span style="color: #008000"&gt;#&lt;/span&gt;&lt;span style="color: #008000"&gt; читаем наш собственный каталог бэкапов&lt;/span&gt;&lt;span style="color: #008000"&gt;
&lt;/span&gt;&lt;span style="color: #000000"&gt;    &lt;/span&gt;&lt;span style="color: #800080"&gt;$csv&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #ff0000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #5f9ea0; font-weight: bold"&gt;Import-Csv&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #800000"&gt;E:\ProfileBackup.csv&lt;/span&gt;&lt;span style="color: #000000"&gt;
    &lt;/span&gt;&lt;span style="color: #008000"&gt;#&lt;/span&gt;&lt;span style="color: #008000"&gt; и считаем сколько там записей&lt;/span&gt;&lt;span style="color: #008000"&gt;
&lt;/span&gt;&lt;span style="color: #000000"&gt;    &lt;/span&gt;&lt;span style="color: #800080"&gt;$count&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #ff0000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #800080"&gt;$csv&lt;/span&gt;&lt;span style="color: #000000"&gt;.count
    &lt;/span&gt;&lt;span style="color: #008000"&gt;#&lt;/span&gt;&lt;span style="color: #008000"&gt; если записей больше 7, то считаем сколько лишних архивов нужно удалить.&lt;/span&gt;&lt;span style="color: #008000"&gt;
&lt;/span&gt;&lt;span style="color: #000000"&gt;    &lt;/span&gt;&lt;span style="color: #008000"&gt;#&lt;/span&gt;&lt;span style="color: #008000"&gt; если меньше 7 записей, то ничего удалять не надо и просто добавляем новую запись&lt;/span&gt;&lt;span style="color: #008000"&gt;
&lt;/span&gt;&lt;span style="color: #000000"&gt;    &lt;/span&gt;&lt;span style="color: #0000ff"&gt;if&lt;/span&gt;&lt;span style="color: #000000"&gt; (&lt;/span&gt;&lt;span style="color: #800080"&gt;$count&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #ff0000"&gt;-gt&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #000000"&gt;7&lt;/span&gt;&lt;span style="color: #000000"&gt;) {
        &lt;/span&gt;&lt;span style="color: #800080"&gt;$old&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #ff0000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #800080"&gt;$count&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #ff0000"&gt;-&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #000000"&gt;7&lt;/span&gt;&lt;span style="color: #000000"&gt;
        &lt;/span&gt;&lt;span style="color: #008000"&gt;#&lt;/span&gt;&lt;span style="color: #008000"&gt; генерируем случайное имя для скрипта, который будет использоваться в diskshadow&lt;/span&gt;&lt;span style="color: #008000"&gt;
&lt;/span&gt;&lt;span style="color: #000000"&gt;        &lt;/span&gt;&lt;span style="color: #800080"&gt;$file&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #ff0000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt; [&lt;/span&gt;&lt;span style="color: #008080"&gt;System.IO.Path&lt;/span&gt;&lt;span style="color: #000000"&gt;]::&lt;/span&gt;&lt;span style="color: #8b4513"&gt;GetRandomFileName&lt;/span&gt;&lt;span style="color: #000000"&gt;()
        &lt;/span&gt;&lt;span style="color: #008000"&gt;#&lt;/span&gt;&lt;span style="color: #008000"&gt; выбираем все лишние архивы и пропускаем их по конвейеру на удаление&lt;/span&gt;&lt;span style="color: #008000"&gt;
&lt;/span&gt;&lt;span style="color: #000000"&gt;        &lt;/span&gt;&lt;span style="color: #800080"&gt;$csv&lt;/span&gt;&lt;span style="color: #000000"&gt; | &lt;/span&gt;&lt;span style="color: #5f9ea0; font-weight: bold"&gt;sort&lt;/span&gt;&lt;span style="color: #000000"&gt; | &lt;/span&gt;&lt;span style="color: #5f9ea0; font-weight: bold"&gt;select&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="font-style: italic; color: #5f9ea0"&gt;-First&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #800080"&gt;$old&lt;/span&gt;&lt;span style="color: #000000"&gt; | &lt;/span&gt;&lt;span style="color: #5f9ea0; font-weight: bold"&gt;%&lt;/span&gt;&lt;span style="color: #000000"&gt;{
            &lt;/span&gt;&lt;span style="color: #008000"&gt;#&lt;/span&gt;&lt;span style="color: #008000"&gt; записываем команду во временный файл&lt;/span&gt;&lt;span style="color: #008000"&gt;
&lt;/span&gt;&lt;span style="color: #000000"&gt;            &lt;/span&gt;&lt;span style="color: #800000"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #800000"&gt;delete shadows ID {$($_.SnapshotID)}&lt;/span&gt;&lt;span style="color: #800000"&gt;&amp;quot;&lt;/span&gt;&lt;span style="color: #000000"&gt; &amp;gt; &lt;/span&gt;&lt;span style="color: #800080"&gt;$Env:TEMP&lt;/span&gt;&lt;span style="color: #000000"&gt;\&lt;/span&gt;&lt;span style="color: #800080"&gt;$file&lt;/span&gt;&lt;span style="color: #000000"&gt;
            &lt;/span&gt;&lt;span style="color: #008000"&gt;#&lt;/span&gt;&lt;span style="color: #008000"&gt; и запускаем diskshadow в режиме скрипта&lt;/span&gt;&lt;span style="color: #008000"&gt;
&lt;/span&gt;&lt;span style="color: #000000"&gt;            diskshadow -s &lt;/span&gt;&lt;span style="color: #800080"&gt;$Env:TEMP&lt;/span&gt;&lt;span style="color: #000000"&gt;\&lt;/span&gt;&lt;span style="color: #800080"&gt;$file&lt;/span&gt;&lt;span style="color: #000000"&gt;
        }
        &lt;/span&gt;&lt;span style="color: #5f9ea0; font-weight: bold"&gt;del&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #800080"&gt;$Env:TEMP&lt;/span&gt;&lt;span style="color: #000000"&gt;\&lt;/span&gt;&lt;span style="color: #800080"&gt;$file&lt;/span&gt;&lt;span style="color: #000000"&gt;
    }
    &lt;/span&gt;&lt;span style="color: #008000"&gt;#&lt;/span&gt;&lt;span style="color: #008000"&gt; считываем данные о последнем бэкапе&lt;/span&gt;&lt;span style="color: #008000"&gt;
&lt;/span&gt;&lt;span style="color: #000000"&gt;    &lt;/span&gt;&lt;span style="color: #800080"&gt;$current&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #ff0000"&gt;=&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #5f9ea0; font-weight: bold"&gt;Get-WBBackupSet&lt;/span&gt;&lt;span style="color: #000000"&gt; | &lt;/span&gt;&lt;span style="color: #5f9ea0; font-weight: bold"&gt;select&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="font-style: italic; color: #5f9ea0"&gt;-Last&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #000000"&gt;1&lt;/span&gt;&lt;span style="color: #000000"&gt;  | &lt;/span&gt;&lt;span style="color: #5f9ea0; font-weight: bold"&gt;select&lt;/span&gt;&lt;span style="color: #000000"&gt; VersionID, &lt;/span&gt;&lt;span style="color: #800000"&gt;SnapshotId&lt;/span&gt;&lt;span style="color: #000000"&gt;
    &lt;/span&gt;&lt;span style="color: #008000"&gt;#&lt;/span&gt;&lt;span style="color: #008000"&gt; и добавляем его в массив объектов действующих бэкапов&lt;/span&gt;&lt;span style="color: #008000"&gt;
&lt;/span&gt;&lt;span style="color: #000000"&gt;    &lt;/span&gt;&lt;span style="color: #800080"&gt;$csv&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #ff0000"&gt;+=&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #800080"&gt;$current&lt;/span&gt;&lt;span style="color: #000000"&gt;
    &lt;/span&gt;&lt;span style="color: #008000"&gt;#&lt;/span&gt;&lt;span style="color: #008000"&gt; чтобы не было путаницы, снова сортируем объекты и пишем обратно в CSV файл&lt;/span&gt;&lt;span style="color: #008000"&gt;
&lt;/span&gt;&lt;span style="color: #000000"&gt;    &lt;/span&gt;&lt;span style="color: #800080"&gt;$csv&lt;/span&gt;&lt;span style="color: #000000"&gt; | &lt;/span&gt;&lt;span style="color: #5f9ea0; font-weight: bold"&gt;sort&lt;/span&gt;&lt;span style="color: #000000"&gt; | &lt;/span&gt;&lt;span style="color: #5f9ea0; font-weight: bold"&gt;select&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="font-style: italic; color: #5f9ea0"&gt;-Last&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #000000"&gt;7&lt;/span&gt;&lt;span style="color: #000000"&gt; | &lt;/span&gt;&lt;span style="color: #5f9ea0; font-weight: bold"&gt;Export-Csv&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #800000"&gt;E:\ProfileBackup.csv&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="font-style: italic; color: #5f9ea0"&gt;-NoTypeInformation&lt;/span&gt;&lt;span style="color: #000000"&gt;
} &lt;/span&gt;&lt;span style="color: #0000ff"&gt;else&lt;/span&gt;&lt;span style="color: #000000"&gt; {
    &lt;/span&gt;&lt;span style="color: #008000"&gt;#&lt;/span&gt;&lt;span style="color: #008000"&gt; ругаемся, что бэкап не был завершён успешно&lt;/span&gt;&lt;span style="color: #008000"&gt;
&lt;/span&gt;&lt;span style="color: #000000"&gt;}&lt;/span&gt;&lt;/pre&gt;
&lt;/blockquote&gt;

&lt;p&gt;В принципе, это только один вариант реализации подобной задачи и не обвешена никакими проверками. Однако, учитывая, что данный код публикуется на правах &lt;strong&gt;ТЗ&lt;/strong&gt; (&lt;strong&gt;ТЗ&lt;/strong&gt; — &lt;em&gt;Тайное Знание&lt;/em&gt;), поэтому может использоваться как шаблон алгоритма такой кастомной ротации. Данный скрипт только демонстрирует логику, которой вы можете воспользоваться и подпилить под свои условия самостоятельно.&lt;/p&gt;

&lt;p&gt;Вот и всё, наверное, что я хотел рассказать про бэкап в Windows Server 2008 R2. В Windows 7 нет командлетов для бэкапа,&amp;#160; поэтому свои хотелки придётся реализовывать только средствами CMD (&lt;strong&gt;wbadmin&lt;/strong&gt;, &lt;strong&gt;vssadmin&lt;/strong&gt;, &lt;strong&gt;diskshadow&lt;/strong&gt;). И это будет значительно сложнее, чем вариант с командлетами повершела.&lt;/p&gt;&lt;img width="0" height="0" src="http://www.sysadmins.lv/aggbug.ashx?id=89438ea9-9bec-4070-8d81-f355a2215a8c"/&gt;&lt;br/&gt;&lt;hr/&gt;PowerShell Powered - http://www.sysadmins.lv&lt;/div&gt;</description>
      <comments>http://www.sysadmins.lv/CommentView,guid,89438ea9-9bec-4070-8d81-f355a2215a8c.aspx</comments>
      <category>PowerShell</category>
      <category>PowerShell / Server Backup</category>
    </item>
    <item>
      <trackback:ping>http://www.sysadmins.lv/Trackback.aspx?guid=ffb3aa89-0bc0-4de0-9eaf-5866e813afec</trackback:ping>
      <pingback:server>http://www.sysadmins.lv/pingback.aspx</pingback:server>
      <pingback:target>http://www.sysadmins.lv/PermaLink,guid,ffb3aa89-0bc0-4de0-9eaf-5866e813afec.aspx</pingback:target>
      <dc:creator>Camelot</dc:creator>
      <wfw:comment>http://www.sysadmins.lv/CommentView,guid,ffb3aa89-0bc0-4de0-9eaf-5866e813afec.aspx</wfw:comment>
      <wfw:commentRss>http://www.sysadmins.lv/SyndicationService.asmx/GetEntryCommentsRss?guid=ffb3aa89-0bc0-4de0-9eaf-5866e813afec</wfw:commentRss>
      <slash:comments>1</slash:comments>
      <title>Windows Server 2008 R2 и Windows Backup (часть 1)</title>
      <guid isPermaLink="false">http://www.sysadmins.lv/PermaLink,guid,ffb3aa89-0bc0-4de0-9eaf-5866e813afec.aspx</guid>
      <link>http://www.sysadmins.lv/PermaLink,guid,ffb3aa89-0bc0-4de0-9eaf-5866e813afec.aspx</link>
      <pubDate>Wed, 07 Oct 2009 20:43:07 GMT</pubDate>
      <description>&lt;div&gt;&lt;p&gt;2 недели назад я выступал на рижском &lt;strong&gt;IT Pro&lt;/strong&gt; с темой бэкапа в &lt;strong&gt;Windows Server 2008 R2&lt;/strong&gt; с помощью &lt;strong&gt;PowerShell&lt;/strong&gt;. Доклад получится немного скомканный и на ряд вопров из зала я не смог ответить, т.к. эти вопросы требуют достаточно много времени на формулировку ответа. Поэтому я здесь подниму этот вопрос снова и постараюсь ответить на неотвеченные вопросы.&lt;/p&gt;  &lt;p&gt;Я думаю, что уже все знают про отсутствие &lt;strong&gt;ntbackup.exe&lt;/strong&gt; в системах начиная с Windows Server 2008. Его теперь заменяет отдельный системный компонент &lt;strong&gt;Windows Backup&lt;/strong&gt; (или &lt;strong&gt;Server Backup&lt;/strong&gt;) и, который, устанавливается как компонент сервера в оснастке &lt;strong&gt;Server Manager&lt;/strong&gt;. Первая версия Server Backup была достаточно грубой и примитивной. Она позволяла бэкапить только тома целиком блочным методом без возможности выбора отдельных файлов и папок. Блочный метод работает на уровень ниже, чем файловая система, поэтому никакой речи о файлах быть не могло. Так же ему требовался выделенный том под хранение бэкапа и при инициализации тома под бэкапы, он форматировался. Бэкап &lt;strong&gt;SystemState&lt;/strong&gt; производился отдельно и его нельзя было включить в состав бэкапа отдельного тома. Иными словами, первая версия была непотребна чуть более чем полностью, поэтому в отношении него говорить просто не о чем.&lt;/p&gt;  &lt;p&gt;С выходом Windows Server 2008 R2 ситуация немного улучшилась. После тысяч жалоб от покупателей и срачей на форумах в новой системе добавился бэкап на уровне файловой системы (как и ntbackup), сохранив и улучшив первоначальную версию Server Backup. Новая версия бэкапа отличается следующими характеристиками по сравнению с первой версией:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Добавлена возможность бэкапа файлов и папок &lt;/li&gt;    &lt;li&gt;Добавлена возможность комбинирования объектов бэкапа. Например, к бэкапу отдельных папок и файлов можно добавлять бэкап SystemState &lt;/li&gt;    &lt;li&gt;Теперь можно делать инкрементальный бэкап для SystemState (включено по умолчанию) &lt;/li&gt;    &lt;li&gt;Улучшенная поддержка PowerShell &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Как и раньше, командлеты для Server Backup поставляются в виде отдельной оснастки, которая подключается командой:&lt;/p&gt;  &lt;blockquote&gt;   &lt;pre&gt;&lt;span style="color: #5f9ea0; font-weight: bold"&gt;Add-PSSnapin&lt;/span&gt;&lt;span style="color: #000000"&gt; &lt;/span&gt;&lt;span style="color: #800000"&gt;Windows.ServerBackup&lt;/span&gt;&lt;/pre&gt;
&lt;/blockquote&gt;

&lt;p&gt;И все командлеты для бэкапа будут иметь префикс &lt;strong&gt;WB&lt;/strong&gt; (от Windows Backup):&lt;/p&gt;

&lt;div style="width: 935px"&gt;
  &lt;blockquote&gt;
    &lt;pre style="background-color: #000040; font: 9pt consolas, lucida console"&gt;&lt;font color="#c0c0c0"&gt;&lt;span&gt;&lt;p&gt;&lt;font color="#00ff00"&gt;[↑]&lt;/font&gt; [Administrator] Add-PSSnapin windows.serverbackup
&lt;font color="#00ff00"&gt;[↑]&lt;/font&gt; [Administrator] gcm *-wb*

CommandType     Name                                                Definition
-----------     ----                                                ----------
Cmdlet          Add-WBBackupTarget                                  Add-WBBackupTarget [-Policy] &lt;wbpolicy&gt; [-Target...
Cmdlet          Add-WBBareMetalRecovery                             Add-WBBareMetalRecovery [-Policy] &lt;wbpolicy&gt; [-V...
Cmdlet          Add-WBFileSpec                                      Add-WBFileSpec [-Policy] &lt;wbpolicy&gt; [-FileSpec] ...
Cmdlet          Add-WBSystemState                                   Add-WBSystemState [-Policy] &lt;wbpolicy&gt; [-Verbose...
Cmdlet          Add-WBVolume                                        Add-WBVolume [-Policy] &lt;wbpolicy&gt; [-Volume] &lt;wbv...&gt;&lt;wbpolicy cmdlet get-wbbackuptarget [-Policy]&gt;&lt;wbbackuptarget... get-wbbackupset [[-BackupTarget]&gt; [-Verbos...
Cmdlet          Get-WBBareMetalRecovery                             Get-WBBareMetalRecovery [-Policy] &lt;wbpolicy&gt; [-V...
Cmdlet          Get-WBDisk                                          Get-WBDisk [-Verbose] [-Debug] [-ErrorAction &lt;ac...&gt;&lt;wbpolicy cmdlet [-Policy] Get-WBFileSpec&gt; [-Ve...
Cmdlet          Get-WBJob                                           Get-WBJob [[-Previous] &lt;uint32&gt;] [-Verbose] [-De...
Cmdlet          Get-WBPolicy                                        Get-WBPolicy [-Editable] [-Verbose] [-Debug] [-E...
Cmdlet          Get-WBSchedule                                      Get-WBSchedule [-Policy] &lt;wbpolicy&gt; [-Verbose] [...
Cmdlet          Get-WBSummary                                       Get-WBSummary [-Verbose] [-Debug] [-ErrorAction ...
Cmdlet          Get-WBSystemState                                   Get-WBSystemState [-Policy] &lt;wbpolicy&gt; [-Verbose...
Cmdlet          Get-WBVolume                                        Get-WBVolume [-Disk] &lt;wbdisk&gt; [-Verbose] [-Debug...
Cmdlet          Get-WBVssBackupOptions                              Get-WBVssBackupOptions [-Policy] &lt;wbpolicy&gt; [-Ve...
Cmdlet          New-WBBackupTarget                                  New-WBBackupTarget [-Disk] &lt;wbdisk&gt; [[-Label] &lt;s... cmdlet&gt;&lt;string  [] New-WBFileSpec [-FileSpec]&gt; [-NonRecur...
Cmdlet          New-WBPolicy                                        New-WBPolicy [-Verbose] [-Debug] [-ErrorAction &amp;lt;...
Cmdlet          Remove-WBBackupTarget                               Remove-WBBackupTarget [-Policy] &lt;wbpolicy&gt; [-Tar...
Cmdlet          Remove-WBBareMetalRecovery                          Remove-WBBareMetalRecovery [-Policy] &lt;wbpolicy&gt; ...
Cmdlet          Remove-WBFileSpec                                   Remove-WBFileSpec [-Policy] &lt;wbpolicy&gt; [-FileSpe...
Cmdlet          Remove-WBPolicy                                     Remove-WBPolicy [[-Policy] &lt;wbpolicy&gt;] [-All] [-...
Cmdlet          Remove-WBSystemState                                Remove-WBSystemState [-Policy] &lt;wbpolicy&gt; [-Verb...
Cmdlet          Remove-WBVolume                                     Remove-WBVolume [-Policy] &lt;wbpolicy&gt; [-Volume] &amp;lt;...
Cmdlet          Set-WBPolicy                                        Set-WBPolicy [-Policy] &lt;wbpolicy&gt; [-Force] [-Ver...
Cmdlet          Set-WBSchedule                                      Set-WBSchedule [-Policy] &lt;wbpolicy&gt; [-Schedule] ...
Cmdlet          Set-WBVssBackupOptions                              Set-WBVssBackupOptions [-Policy] &lt;wbpolicy&gt; [-Vs...
Cmdlet          Start-WBBackup                                      Start-WBBackup [-Policy] &lt;wbpolicy&gt; [-Async] [-F...


&lt;font color="#00ff00"&gt;[↑]&lt;/font&gt; [Administrator]&lt;/p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/pre&gt;
  &lt;/blockquote&gt;
&lt;/div&gt;

&lt;p&gt;Мы видим достаточно приличное количество командлетов и часть из них мы используем для работы. Все задания бэкапов в ServerBackup являются политиками бэкапа. Следовательно, командлетом &lt;strong&gt;New-WBPolicy&lt;/strong&gt; мы будем создавать каждое задание бэкапа:&lt;/p&gt;

&lt;div style="width: 935px"&gt;
  &lt;blockquote&gt;
    &lt;pre style="background-color: #000040; font: 9pt consolas, lucida console"&gt;&lt;font color="#c0c0c0"&gt;&lt;span&gt;&lt;p&gt;&lt;font color="#00ff00"&gt;[↑]&lt;/font&gt; [Administrator] $pol = New-WBPolicy
&lt;font color="#00ff00"&gt;[↑]&lt;/font&gt; [Administrator] $pol


Schedule            :
BackupTargets       :
VolumesToBackup     :
FilesSpecsToBackup  :
FilesSpecsToExclude :
BMR                 : False
SystemState         : False
VssBackupOptions    : VssCopyBackup



&lt;font color="#00ff00"&gt;[↑]&lt;/font&gt; [Administrator]&lt;/p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/pre&gt;
  &lt;/blockquote&gt;
&lt;/div&gt;

&lt;p&gt;Мы создали объект новой политики бэкапа, который имеет ряд свойств. Эти свойства по названиям уже отражают своё назначение. Давайте сначала выберем объекты бэкапа. Например, добавим какую-нибудь папку, которую мы захотим бэкапить. Новые объекты бэкапа создаются в 2 этапа:&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;Создание самого объекта командой &lt;strong&gt;New-WBFileSpec&lt;/strong&gt; &lt;/li&gt;

  &lt;li&gt;Добавление этого объекта в политику бэкапа командой &lt;strong&gt;Add-WBFileSpec&lt;/strong&gt; &lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Будь то отдельная папка или отдельный том. Это не относится только к &lt;strong&gt;Bare Metal Recovery&lt;/strong&gt; (полный бэкап системного тома, SystemState и всех системных файлов) и к самому SystemState. Они могут сразу добавляться в политику.&lt;/p&gt;

&lt;div style="width: 935px"&gt;
  &lt;blockquote&gt;
    &lt;pre style="background-color: #000040; font: 9pt consolas, lucida console"&gt;&lt;font color="#c0c0c0"&gt;&lt;span&gt;&lt;p&gt;&lt;font color="#00ff00"&gt;[↑]&lt;/font&gt; [Administrator] $source1 = New-WBFileSpec -FileSpec &amp;quot;C:\Users&amp;quot;
&lt;font color="#00ff00"&gt;[↑]&lt;/font&gt; [Administrator] $source1 | ft -a

FilePath  FileName IsRecursive IsIncludeSpec
--------  -------- ----------- -------------
C:\Users\ *               True          True


&lt;font color="#00ff00"&gt;[↑]&lt;/font&gt; [Administrator] $exclusion = New-WBFileSpec -FileSpec &amp;quot;C:\Users\vpodans&amp;quot; -Exclude
&lt;font color="#00ff00"&gt;[↑]&lt;/font&gt; [Administrator] $exclusion | ft -a

FilePath          FileName IsRecursive IsIncludeSpec
--------          -------- ----------- -------------
C:\Users\vpodans\ *               True         False


&lt;font color="#00ff00"&gt;[↑]&lt;/font&gt; [Administrator] $source2 = New-WBFileSpec -FileSpec &amp;quot;D:\Users&amp;quot; -NonRecursive
&lt;font color="#00ff00"&gt;[↑]&lt;/font&gt; [Administrator] $source2 | ft -a

FilePath  FileName IsRecursive IsIncludeSpec
--------  -------- ----------- -------------
D:\Users\ *              False          True


&lt;font color="#00ff00"&gt;[↑]&lt;/font&gt; [Administrator] $source1, $source2, $exclusion | Add-WBFileSpec -Policy $pol
&lt;font color="#00ff00"&gt;[↑]&lt;/font&gt; [Administrator] $pol


Schedule            :
BackupTargets       :
VolumesToBackup     :
FilesSpecsToBackup  : {C:\Users\*, D:\Users\*}
FilesSpecsToExclude : {C:\Users\vpodans\*}
BMR                 : False
SystemState         : False
VssBackupOptions    : VssCopyBackup



&lt;font color="#00ff00"&gt;[↑]&lt;/font&gt; [Administrator]&lt;/p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/pre&gt;
  &lt;/blockquote&gt;
&lt;/div&gt;

&lt;p&gt;Первой командой мы задали бэкап всей папки &lt;strong&gt;C:\Users&lt;/strong&gt;. Второй командой мы посмотрели объект этой точки. Как видно из таблички, эта папка будет бэкапить полностью включая все подпапки. Но я не хочу бэкапить папку профиля одного из пользователей. Для этого в командлете &lt;strong&gt;New-WBFileSpec&lt;/strong&gt; есть ключ &lt;strong&gt;–Exclude&lt;/strong&gt;, который исключит эту папку из бэкапа. В следующей строке это видно по состоянию свойства &lt;strong&gt;IsIncludeSpec = $false&lt;/strong&gt;. И чтобы исключить рекурсивную обработку папки (т.е. нам нужно бэкапить содержимое только текущей папки не трогая подпапки совсем) для неё достаточно указать ключ &lt;strong&gt;–NonRecursive&lt;/strong&gt;. под каждую категорию вы можете добавлять пути для бэкапа через запятую в одной команде. Но для каждой категории надо писать новую команду. В конце мы видим, что наша политика уже обросла какими-то данными. Если мы захотим сюда добавить ещё бэкап целого тома или физического диска, то нам уже придётся работать с командлетами &lt;strong&gt;Get/Add-WBDisk&lt;/strong&gt; и &lt;strong&gt;Get/Add-WBVolume&lt;/strong&gt;:&lt;/p&gt;

&lt;div style="width: 935px"&gt;
  &lt;blockquote&gt;
    &lt;pre style="background-color: #000040; font: 9pt consolas, lucida console"&gt;&lt;font color="#c0c0c0"&gt;&lt;span&gt;&lt;p&gt;&lt;font color="#00ff00"&gt;[↑]&lt;/font&gt; [Administrator] Get-WBDisk


DiskName       : WDC WD3200JS-00PDB0 ATA Device
DiskNumber     : 1
DiskId         : d5fae841-0000-0000-0000-000000000000
TotalSpace     : 320072933376
FreeSpace      : 3591163904
Volumes        : {New Volume (S:\VM\Core), Camelot Share-2 (F:)}
ContainsBackup : False
BackupVolumeId : 00000000-0000-0000-0000-000000000000
Properties     : Dynamic, ValidTarget

&amp;lt;...&amp;gt;
&lt;font color="#00ff00"&gt;[↑]&lt;/font&gt; [Administrator] $disk = Get-WBDisk | ?{$_.disknumber -eq 1}
&lt;font color="#00ff00"&gt;[↑]&lt;/font&gt; [Administrator] Get-WBVolume -Disk $disk


VolumeLabel : New Volume
MountPath   : S:\VM\Core
MountPoint  : \\?\Volume{06d04bb0-1949-11de-a731-001fd08fc2f1}
FileSystem  : NTFS
Property    : ValidSource
FreeSpace   : 2133585920
TotalSpace  : 18875416576

VolumeLabel : Camelot Share-2
MountPath   : F:
MountPoint  : \\?\Volume{62bda1e6-b515-4102-b03f-40b7896ab0f3}
FileSystem  : NTFS
Property    : ValidSource
FreeSpace   : 1453031424
TotalSpace  : 301192970240



&lt;font color="#00ff00"&gt;[↑]&lt;/font&gt; [Administrator]&lt;/p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/pre&gt;
  &lt;/blockquote&gt;
&lt;/div&gt;

&lt;p&gt;Командлет &lt;strong&gt;Get-WBDisk&lt;/strong&gt; отобразит нам все физические диски, которые подключены к системе (с учётом аппаратного рейда, разумеется). Если захотим добавить этот диск в бэкап, то отфильтровываем через &lt;strong&gt;Where-Object&lt;/strong&gt; (или просто вопросительный знак) и добавляем его в политику командой &lt;strong&gt;Add-WBDisk&lt;/strong&gt;. Get-WBDisk нам так же потребуется и для просмотра логических томов, поскольку &lt;strong&gt;Get-WBVolume&lt;/strong&gt; в качестве аргумента принимает только объекты, полученные от команды Get-WBDisk. Т.е. сначала выбираем диск и только потом просматриваем нужные тома. И отфильтровав нужный том добавляем в политику, например:&lt;/p&gt;

&lt;div style="width: 935px"&gt;
  &lt;blockquote&gt;
    &lt;pre style="background-color: #000040; font: 9pt consolas, lucida console"&gt;&lt;font color="#c0c0c0"&gt;&lt;span&gt;&lt;p&gt;&lt;font color="#00ff00"&gt;[↑]&lt;/font&gt; [Administrator] Get-WBVolume -Disk $disk


VolumeLabel : New Volume
MountPath   : S:\VM\Core
MountPoint  : \\?\Volume{06d04bb0-1949-11de-a731-001fd08fc2f1}
FileSystem  : NTFS
Property    : ValidSource
FreeSpace   : 2133585920
TotalSpace  : 18875416576

VolumeLabel : Camelot Share-2
MountPath   : F:
MountPoint  : \\?\Volume{62bda1e6-b515-4102-b03f-40b7896ab0f3}
FileSystem  : NTFS
Property    : ValidSource
FreeSpace   : 1453031424
TotalSpace  : 301192970240



&lt;font color="#00ff00"&gt;[↑]&lt;/font&gt; [Administrator] $volume = Get-WBVolume -Disk $disk | ?{$_.volumelabel -eq &amp;quot;new volume&amp;quot;}
&lt;font color="#00ff00"&gt;[↑]&lt;/font&gt; [Administrator] Add-WBVolume -Policy $pol -Volume $volume


VolumeLabel : New Volume
MountPath   : S:\VM\Core
MountPoint  : \\?\Volume{06d04bb0-1949-11de-a731-001fd08fc2f1}
FileSystem  : NTFS
Property    : ValidSource
FreeSpace   : 2133585920
TotalSpace  : 18875416576



&lt;font color="#00ff00"&gt;[↑]&lt;/font&gt; [Administrator] $pol


Schedule            :
BackupTargets       :
VolumesToBackup     : {New Volume (S:\VM\Core)}
FilesSpecsToBackup  : {C:\Users\*, D:\Users\*}
FilesSpecsToExclude : {C:\Users\vpodans\*}
BMR                 : False
SystemState         : False
VssBackupOptions    : VssCopyBackup



&lt;font color="#00ff00"&gt;[↑]&lt;/font&gt; [Administrator]&lt;/p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/pre&gt;
  &lt;/blockquote&gt;
&lt;/div&gt;

&lt;p&gt;Если я вдруг не захочу уже бэкапить добавленный том, то его можно спокойно удалить (фактически командами Remove-WB* можно удалить что угодной из политики):&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;&lt;font color="#0000ff"&gt;Remove-WBVolume -Policy $pol -Volume $volume&lt;/font&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Теперь настало время выбрать точки, в которые мы будем копировать наш бэкап. Точки назначения добавляются в бэкап тоже задаются в 2 этапа:&lt;/p&gt;

&lt;ol&gt;
  &lt;li&gt;&lt;strong&gt;New-WBBackupTarget&lt;/strong&gt; — создаёт объект точки назначения бэкапа &lt;/li&gt;

  &lt;li&gt;&lt;strong&gt;Add-WBBackupTarget&lt;/strong&gt; — добавляет эту точку в политику бэкапа &lt;/li&gt;
&lt;/ol&gt;

&lt;div style="width: 935px"&gt;
  &lt;blockquote&gt;
    &lt;pre style="background-color: #000040; font: 9pt consolas, lucida console"&gt;&lt;font color="#c0c0c0"&gt;&lt;span&gt;&lt;p&gt;&lt;font color="#00ff00"&gt;[↑]&lt;/font&gt; [Administrator] $target = New-WBBackupTarget -VolumePath &amp;quot;F:&amp;quot;
&lt;font color="#00ff00"&gt;[↑]&lt;/font&gt; [Administrator] $target = New-WBBackupTarget -VolumePath &amp;quot;E:&amp;quot;
&lt;font color="#00ff00"&gt;[↑]&lt;/font&gt; [Administrator] Add-WBBackupTarget -Policy $pol -Target $target


Label                  : Camelot Share-1
WBDisk                 :
WBVolume               : Camelot Share-1 (E:)
Path                   : \\?\Volume{ca6dbf07-14ad-11de-937f-806e6f6e6963}
TargetType             : Volume
InheritAcl             : False
PreserveExistingBackup : False



&lt;font color="#00ff00"&gt;[↑]&lt;/font&gt; [Administrator] $pol


Schedule            :
BackupTargets       : {E:}
VolumesToBackup     : {}
FilesSpecsToBackup  : {C:\Users\*, D:\Users\*}
FilesSpecsToExclude : {C:\Users\vpodans\*}
BMR                 : False
SystemState         : False
VssBackupOptions    : VssCopyBackup



&lt;font color="#00ff00"&gt;[↑]&lt;/font&gt; [Administrator]&lt;/p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/pre&gt;
  &lt;/blockquote&gt;
&lt;/div&gt;

&lt;p&gt;Вы так же можете указать бэкап сразу в сеть. Для этого в команде &lt;strong&gt;New-WBBackupTarget&lt;/strong&gt; вместо параметра &lt;strong&gt;–VolumePath&lt;/strong&gt; использовать параметр &lt;strong&gt;–NetworkPath&lt;/strong&gt; и за ним уже указывать UNC путь к сетевой папке. Однако, следует учесть несколько нюансов:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;При бэкапе в сеть исходный размер копируемых данных неизвестен, в связи с чем будет катастрофически расти фрагментация в сетевой папке &lt;/li&gt;

  &lt;li&gt;В сети вы можете поддерживать только одну актуальную копию бэкапа. Последующие бэкапы в эту же папку будут перезаписывать предыдущие архивы &lt;/li&gt;

  &lt;li&gt;Вы не можете одновременно делать бэкап на локальный том или диск и в сеть. &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;&lt;font color="#ff0000"&gt;Примечание:&lt;/font&gt;&lt;/strong&gt; хелп заявляет, что бэкап можно одновременно копировать на несколько томов/дисков. Мне ещё неизвестна полностью природа всего происходящего и только могу констатировать факт, что физически бэкап копируется только на первый указанный том или диск.&lt;/p&gt;

&lt;p&gt;Теперь у нас есть 2 варианта: начать выполнение бэкапа немедленно, или регистрация нашей политике в системе для периодического выполнения в автоматическом режиме (по внутреннему шедулеру). В первом случае достаточно выполнить команду:&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;&lt;font color="#0000ff"&gt;Start-WBBackup –Policy $pol&lt;/font&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;или зашедулить командой &lt;strong&gt;Set-WBSchedule&lt;/strong&gt;:&lt;/p&gt;

&lt;div style="width: 935px"&gt;
  &lt;blockquote&gt;
    &lt;pre style="background-color: #000040; font: 9pt consolas, lucida console"&gt;&lt;font color="#c0c0c0"&gt;&lt;span&gt;&lt;p&gt;&lt;font color="#00ff00"&gt;[↑]&lt;/font&gt; [Administrator] Set-WBSchedule -Policy $pol -Schedule &amp;quot;10.08.2009 21:00&amp;quot;

tresdiena, 2009. gada 7. oktobri 21:00:00


&lt;font color="#00ff00"&gt;[↑]&lt;/font&gt; [Administrator] $pol


Schedule            : {2009.10.07. 21:00:00}
BackupTargets       : {E:}
VolumesToBackup     : {}
FilesSpecsToBackup  : {C:\Users\*, D:\Users\*}
FilesSpecsToExclude : {C:\Users\vpodans\*}
BMR                 : False
SystemState         : False
VssBackupOptions    : VssCopyBackup



&lt;font color="#00ff00"&gt;[↑]&lt;/font&gt; [Administrator] Set-WBPolicy –Policy $pol&lt;/p&gt;&lt;/span&gt;&lt;/font&gt;&lt;/pre&gt;
  &lt;/blockquote&gt;
&lt;/div&gt;

&lt;p&gt;И командой Set-WBPolicy наша политика регистрируется в системе. Шедулинг следует указывать в следующей форме:&lt;/p&gt;

&lt;blockquote&gt;
  &lt;p&gt;&lt;font color="#008000"&gt;Month.Day.Year Hours:Minutes&lt;/font&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;И теперь каждый день в 21:00 будет выполняться наше задание.&lt;/p&gt;

&lt;p&gt;Сегодня мы рассмотрели основные моменты создания политики бэкапа в Windows Server 2008 R2 с использованием PowerShell. В следующей (или следующих) рассмотрим вопросы управления этими политиками и вопросы каталогизации/ротации архивов.&lt;/p&gt;&lt;img width="0" height="0" src="http://www.sysadmins.lv/aggbug.ashx?id=ffb3aa89-0bc0-4de0-9eaf-5866e813afec"/&gt;&lt;br/&gt;&lt;hr/&gt;PowerShell Powered - http://www.sysadmins.lv&lt;/div&gt;</description>
      <comments>http://www.sysadmins.lv/CommentView,guid,ffb3aa89-0bc0-4de0-9eaf-5866e813afec.aspx</comments>
      <category>PowerShell</category>
      <category>PowerShell / Server Backup</category>
    </item>
  </channel>
</rss>