TMG 2010 - Резервное копирование Array Configuration с PowerShell

imageОзадачившись вопросом автоматизации регулярного выполнения резервного копирования настроек Forefront TMG 2010 нашёл ряд интересных материалов, в том числе статью, описывающую процедуру настройки взаимодействия DPM сервера и DPM агента, установленного на сервере TMG - The Microsoft MVP Award Program Blog > How DPM 2010 Could Protect Forefront TMG 2010 with a Minimum Opening of Feeds. Учитывая то что в моём случае сервера TMG являются виртуальными и периодически подвергаются резервному копированию в виде VM на сервер DPM, нет особого смысла в установке агента DPM непосредственно внутрь этих виртуальных машин. Поэтому я решил ограничиться созданием на регулярной основе резервных копий конфигурации массива TMG. Из консоли TMG эта процедура вызывается из меню действий или контекстного меню на конкретном массиве – Export (Back Up)

<p>&#160;</p>    <p><a href="http://blog.it-kb.ru/wp-content/uploads/2012/02/image33.png"><font size="2"><img style="display:block;float:none;margin:0 auto;" title="image" alt="image" src="http://blog.it-kb.ru/wp-content/uploads/2012/02/image_thumb33.png" width="392" height="230" /></font></a></p>    <p><font size="2"></font></p>    <p><font size="2">Мастер сохранения конфигурации довольно прост и в моём примере используется с включенными настройками сохранения опциональной информации о введённых в TMG учетных данных и настроек безопасности. </font></p>    <p><font size="2"></font></p>    <p><a href="http://blog.it-kb.ru/wp-content/uploads/2012/02/image34.png"><font size="2"><u></u><img style="display:block;float:none;margin:0 auto;" title="image" alt="image" src="http://blog.it-kb.ru/wp-content/uploads/2012/02/image_thumb34.png" width="517" height="399" /></font></a></p>    <p><font size="2"></font></p>    <p><font size="2">После изучения примеров автоматизации этой процедуры экспорта настроек и некоторых экспериментов получился PowerShell скрипт, который регулярно запускается на одном из TMG серверов, являющихся членом массива и сохраняет с аналогичными настройками безопасности данные конфигурации на файловый сервер. Если в процессе выполнения экспорта происходит ошибка – скрипт отсылает администратору письмо-уведомление. Дополнительно скрипт отслеживает наличие устаревших файлов экспорта и удаляет их.&#160;&#160; </font></p>    <p><font size="2"></font></p>    <blockquote>     <p style="line-height:normal;margin:0;" class="MsoNormal"><span><font face="Courier New"><font color="#008000" size="2"># Блок переменных для экспорта</font></font></span></p>      <p style="line-height:normal;margin:0;" class="MsoNormal"><span><font face="Courier New"><font color="#008000" size="2"># $gvExportDir - Путь к каталогу на файловом сервере в котором будут создаваться экспортируемые файлы</font></font></span></p>      <p style="line-height:normal;margin:0;" class="MsoNormal"><span><font face="Courier New"><font color="#008000" size="2"># $gvExportOptData - Константа определяющая опции экспорта. Подробнее http://msdn.microsoft.com/en-us/library/ms826700.aspx</font></font></span></p>      <p style="line-height:normal;margin:0;" class="MsoNormal"><span><font face="Courier New"><font color="#008000" size="2"># $gvPassword - Пароль для криптования информации об учетных данных, сохранённых в TMG</font></font></span></p>      <p style="line-height:normal;margin:0;" class="MsoNormal"><span lang="EN-US"><font face="Courier New"><font color="#008000" size="2">#</font></font></span></p>      <p style="line-height:normal;margin:0;" class="MsoNormal"><font size="2"><font face="Courier New"><span lang="EN-US"><font color="#800080">$gvExportDir</font></span><span lang="EN-US"> </span><span lang="EN-US"><font color="#ff0000">=</font></span><span lang="EN-US"> </span><span lang="EN-US"><font color="#800000">&quot;\FSTMG-Array-Config$&quot;</font></span></font><span lang="EN-US"></span></font></p>      <p style="line-height:normal;margin:0;" class="MsoNormal"><font face="Courier New"><font size="2"><span><font color="#800080">$gvExportOptData</font></span><span> </span><span><font color="#ff0000">=</font></span><span> 15</span></font></font></p>      <p style="line-height:normal;margin:0;" class="MsoNormal"><font size="2"><font face="Courier New"><span><font color="#800080">$gvPassword</font></span><span> </span><span><font color="#ff0000">=</font></span><span> </span><span><font color="#800000">&quot;12345678&quot;</font></span></font><span></span></font></p>      <p style="line-height:normal;margin:0;" class="MsoNormal"><span><font face="Courier New"><font color="#008000" size="2">#</font></font></span></p>      <p style="line-height:normal;margin:0;" class="MsoNormal"><span><font face="Courier New"><font color="#008000" size="2"># Блок переменных для уведомлений по электронной почте в случае проблем экспорта</font></font></span></p>      <p style="line-height:normal;margin:0;" class="MsoNormal"><span><font face="Courier New"><font color="#008000" size="2"># $gvEmailFrom - Email адрес отправителя</font></font></span></p>      <p style="line-height:normal;margin:0;" class="MsoNormal"><span><font face="Courier New"><font color="#008000" size="2"># $gvEmailTo - Email адрес получателя (например адрес группы рассылки для Администраторов TMG)</font></font></span></p>      <p style="line-height:normal;margin:0;" class="MsoNormal"><span><font face="Courier New"><font color="#008000" size="2"># $gvSMTPServer - FQDN имя почтового сервера</font></font></span></p>      <p style="line-height:normal;margin:0;" class="MsoNormal"><span><font face="Courier New"><font color="#008000" size="2">#</font></font></span></p>      <p style="line-height:normal;margin:0;" class="MsoNormal"><font size="2"><font face="Courier New"><span lang="EN-US"><font color="#800080">$gvEmailFrom</font></span><span lang="EN-US"> </span><span lang="EN-US"><font color="#ff0000">=</font></span><span lang="EN-US"> </span><span lang="EN-US"><font color="#800000">&quot;TMG-Config-Backup@holding.com&quot;</font></span></font><span lang="EN-US"></span></font></p>      <p style="line-height:normal;margin:0;" class="MsoNormal"><font size="2"><font face="Courier New"><span lang="EN-US"><font color="#800080">$gvEmailTo</font></span><span lang="EN-US"> </span><span lang="EN-US"><font color="#ff0000">=</font></span><span lang="EN-US"> </span><span lang="EN-US"><font color="#800000">&quot;DST-TMG-Administrators@holding.com&quot;</font></span></font><span lang="EN-US"></span></font></p>      <p style="line-height:normal;margin:0;" class="MsoNormal"><font size="2"><font face="Courier New"><span><font color="#800080">$gvSMTPServer</font></span><span> </span><span><font color="#ff0000">=</font></span><span> </span><span><font color="#800000">&quot;Mail.holding.com&quot;</font></span></font><span></span></font></p>      <p style="line-height:normal;margin:0;" class="MsoNormal"><span><font face="Courier New"><font color="#008000" size="2">#</font></font></span></p>      <p style="line-height:normal;margin:0;" class="MsoNormal"><span><font face="Courier New"><font color="#008000" size="2"># Блок переменных для удаления устаревших файлов экспорта</font></font></span></p>      <p style="line-height:normal;margin:0;" class="MsoNormal"><span><font face="Courier New"><font color="#008000" size="2"># $gvDelOldFiles - Признак необходимости удаления устаревших файлов</font></font></span></p>      <p style="line-height:normal;margin:0;" class="MsoNormal"><span><font face="Courier New"><font color="#008000" size="2"># $gvDelPeriod - Период хранения файлов экспорта в днях.</font></font></span></p>      <p style="line-height:normal;margin:0;" class="MsoNormal"><span><font face="Courier New"><font color="#008000" size="2">#</font></font></span></p>      <p style="line-height:normal;margin:0;" class="MsoNormal"><font size="2"><font face="Courier New"><span><font color="#800080">$gvDelOldFiles</font></span><span> </span><span><font color="#ff0000">=</font></span><span> </span><span><font color="#800080">$True</font></span></font><span></span></font></p>      <p style="line-height:normal;margin:0;" class="MsoNormal"><font face="Courier New"><font size="2"><span><font color="#800080">$gvDelPeriod</font></span><span> </span><span><font color="#ff0000">=</font></span><span> 10</span></font></font></p>      <p style="line-height:normal;margin:0;" class="MsoNormal"><span><font face="Courier New"><font color="#008000" size="2">#</font></font></span></p>      <p style="line-height:normal;margin:0;" class="MsoNormal"><span><font face="Courier New"><font color="#008000" size="2"># Блок экспорта конфигураций всех обнаруженных массивов TMG</font></font></span></p>      <p style="line-height:normal;margin:0;" class="MsoNormal"><span lang="EN-US"><font face="Courier New"><font color="#008000" size="2">#</font></font></span></p>      <p style="line-height:normal;margin:0;" class="MsoNormal"><font size="2"><font face="Courier New"><span lang="EN-US"><font color="#800080">$vFPC</font></span><span lang="EN-US"> </span><span lang="EN-US"><font color="#ff0000">=</font></span><span lang="EN-US"> </span><b><span lang="EN-US"><font color="#5f9ea0">New-Object</font></span></b><span lang="EN-US"> </span><i><span lang="EN-US"><font color="#5f9ea0">-comObject</font></span></i><span lang="EN-US"> </span><span lang="EN-US"><font color="#800000">FPC.root</font></span></font><span lang="EN-US"></span></font></p>      <p style="line-height:normal;margin:0;" class="MsoNormal"><font face="Courier New"><font size="2"><span lang="EN-US"><font color="#800080">$vArrays</font></span><span lang="EN-US"> </span><span lang="EN-US"><font color="#ff0000">=</font></span><span lang="EN-US"> </span><span lang="EN-US"><font color="#800080">$vFPC</font></span><span lang="EN-US">.Arrays</span></font></font></p>      <p style="line-height:normal;margin:0;" class="MsoNormal"><font face="Courier New"><font size="2"><span lang="EN-US"><font color="#0000ff">Foreach</font></span><span lang="EN-US"> (</span><span lang="EN-US"><font color="#800080">$vArray</font></span><span lang="EN-US"> </span><span lang="EN-US"><font color="#0000ff">in</font></span><span lang="EN-US"> </span><span lang="EN-US"><font color="#800080">$vArrays</font></span><span lang="EN-US">)</span></font></font></p>      <p style="line-height:normal;margin:0;" class="MsoNormal"><span lang="EN-US"><font size="2" face="Courier New">{</font></span></p>      <p style="line-height:normal;margin:0;" class="MsoNormal"><font face="Courier New"><font size="2"><span lang="EN-US"><span>&#160;&#160;&#160;&#160;&#160; </span></span><b><span lang="EN-US"><font color="#5f9ea0">write-host</font></span></b><span lang="EN-US"> </span><span lang="EN-US"><font color="#800000">&quot;Find array:&quot;</font></span><span lang="EN-US"> </span><span lang="EN-US"><font color="#800080">$vArray</font></span><span lang="EN-US">.Name</span></font></font></p>      <p style="line-height:normal;margin:0;" class="MsoNormal"><font size="2"><font face="Courier New"><span lang="EN-US"><span>&#160;&#160;&#160;&#160;&#160; </span></span><span lang="EN-US"><font color="#800080">$vDate</font></span><span lang="EN-US"> </span><span lang="EN-US"><font color="#ff0000">=</font></span><span lang="EN-US"> </span><b><span lang="EN-US"><font color="#5f9ea0">Get-Date</font></span></b><span lang="EN-US"><span> </span></span><i><span lang="EN-US"><font color="#5f9ea0">-uformat</font></span></i><span lang="EN-US"> </span><span lang="EN-US"><font color="#800000">&quot;%Y_%m_%d_%H_%M_%S&quot;</font></span></font><span lang="EN-US"></span></font></p>      <p style="line-height:normal;margin:0;" class="MsoNormal"><font size="2"><font face="Courier New"><span lang="EN-US"><span>&#160; </span><span>&#160;&#160;&#160; </span></span><span lang="EN-US"><font color="#800080">$vFName</font></span><span lang="EN-US"> </span><span lang="EN-US"><font color="#ff0000">=</font></span><span lang="EN-US"> </span><span lang="EN-US"><font color="#800080">$vArray</font></span><span lang="EN-US">.Name </span><span lang="EN-US"><font color="#ff0000">+</font></span><span lang="EN-US"> </span><span lang="EN-US"><font color="#800000">&quot;_&quot;</font></span><span lang="EN-US"> </span><span lang="EN-US"><font color="#ff0000">+</font></span><span lang="EN-US"> </span><span lang="EN-US"><font color="#800080">$vDate</font></span><span lang="EN-US"> </span><span lang="EN-US"><font color="#ff0000">+</font></span><span lang="EN-US"> </span><span lang="EN-US"><font color="#800000">&quot;.xml&quot;</font></span></font><span lang="EN-US"></span></font></p>      <p style="line-height:normal;margin:0;" class="MsoNormal"><font face="Courier New"><font size="2"><span lang="EN-US"><span>&#160;&#160;&#160;&#160;&#160; </span></span><span lang="EN-US"><font color="#800080">$vFPath</font></span><span lang="EN-US"> </span><span lang="EN-US"><font color="#ff0000">=</font></span><span lang="EN-US"> </span><span lang="EN-US"><font color="#800080">$gvExportDir</font></span><span lang="EN-US"> </span><span lang="EN-US"><font color="#ff0000">+</font></span><span lang="EN-US"> </span><span lang="EN-US"><font color="#800000">&quot;&quot;</font></span><span lang="EN-US"> </span><span lang="EN-US"><font color="#ff0000">+</font></span><span lang="EN-US"> </span><span lang="EN-US"><font color="#800080">$vFName</font></span><span lang="EN-US"> </span></font></font></p>      <p style="line-height:normal;margin:0;" class="MsoNormal"><font size="2"><font face="Courier New"><span lang="EN-US"><span>&#160;&#160;&#160;&#160;&#160; </span></span><span lang="EN-US"><font color="#800080">$vComment</font></span><span lang="EN-US"> </span><span lang="EN-US"><font color="#ff0000">=</font></span><span lang="EN-US"> </span><span lang="EN-US"><font color="#800000">&quot;Exported by PowerShell&quot;</font></span></font><span lang="EN-US"></span></font></p>      <p style="line-height:normal;margin:0;" class="MsoNormal"><font face="Courier New"><font size="2"><span lang="EN-US"><span>&#160;&#160;&#160;&#160;&#160; </span></span><b><span lang="EN-US"><font color="#5f9ea0">write-host</font></span></b><span lang="EN-US"> </span><span lang="EN-US"><font color="#800000">&quot;Export configuration for array:&quot;</font></span><span lang="EN-US"> </span><span lang="EN-US"><font color="#800080">$vArray</font></span><span lang="EN-US">.Name</span></font></font></p>      <p style="line-height:normal;margin:0;" class="MsoNormal"><font size="2"><font face="Courier New"><span lang="EN-US"><span>&#160;&#160;&#160;&#160;&#160; </span></span><b><span lang="EN-US"><font color="#5f9ea0">write-host</font></span></b><span lang="EN-US"> </span><span lang="EN-US"><font color="#800000">&quot;Path:&quot;</font></span><span lang="EN-US"> </span><span lang="EN-US"><font color="#800080">$vFPath</font></span></font><span lang="EN-US"></span></font></p>      <p style="line-height:normal;margin:0;" class="MsoNormal"><font face="Courier New"><font size="2"><span lang="EN-US"><span>&#160;&#160;&#160;&#160;&#160; </span></span><span lang="EN-US"><font color="#800080">$vArray</font></span><span lang="EN-US">.ExportToFile(</span><span lang="EN-US"><font color="#800080">$vFPath</font></span><span lang="EN-US">, </span><span lang="EN-US"><font color="#800080">$gvExportOptData</font></span><span lang="EN-US">, </span><span lang="EN-US"><font color="#800080">$gvPassword</font></span><span lang="EN-US">, </span><span lang="EN-US"><font color="#800080">$vComment</font></span><span lang="EN-US">)</span></font></font></p>      <p style="line-height:normal;margin:0;" class="MsoNormal"><font face="Courier New"><font size="2"><span lang="EN-US"><span>&#160;&#160;&#160;&#160;&#160; </span></span><span lang="EN-US"><font color="#0000ff">If</font></span><span lang="EN-US"> (</span><span lang="EN-US"><font color="#800080">$Error</font></span><span lang="EN-US">){</span></font></font></p>      <p style="line-height:normal;margin:0;" class="MsoNormal"><font size="2"><font face="Courier New"><span lang="EN-US"><span>&#160; </span><span>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span></span><b><span lang="EN-US"><font color="#5f9ea0">write-host</font></span></b><span lang="EN-US"> </span><span lang="EN-US"><font color="#800000">&quot;Export failed, send e-mail to Administrators...&quot;</font></span></font><span lang="EN-US"></span></font></p>      <p style="line-height:normal;margin:0;" class="MsoNormal"><font size="2"><font face="Courier New"><span lang="EN-US"><span>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span></span><span lang="EN-US"><font color="#800080">$vEmailSubj</font></span><span lang="EN-US"> </span><span lang="EN-US"><font color="#ff0000">=</font></span><span lang="EN-US"> </span><span lang="EN-US"><font color="#800000">&quot;Error exporting TMG Configuration&quot;</font></span></font><span lang="EN-US"></span></font></p>      <p style="line-height:normal;margin:0;" class="MsoNormal"><font size="2"><font face="Courier New"><span lang="EN-US"><span>&#160; </span><span>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span></span><span lang="EN-US"><font color="#800080">$vEmailBody</font></span><span lang="EN-US"> </span><span lang="EN-US"><font color="#ff0000">=</font></span><span lang="EN-US"> </span><span lang="EN-US"><font color="#800000">&quot;&lt;font face='Tahoma' color='#000000' size='2'&gt;Error exporting configuration for array: &lt;/font&gt;&quot;</font></span><span lang="EN-US"> </span><span lang="EN-US"><font color="#ff0000">+</font></span><span lang="EN-US"> </span><b><span lang="EN-US"><font color="#5f9ea0">`</font></span></b></font><span lang="EN-US"></span></font></p>      <p style="line-height:normal;margin:0;" class="MsoNormal"><font size="2"><font face="Courier New"><span lang="EN-US"><span>&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span></span><span lang="EN-US"><font color="#800000">&quot;&lt;font face='Tahoma' color='#0000A0' size='2'&gt;&lt;strong&gt;&quot;</font></span><span lang="EN-US"> </span><span lang="EN-US"><font color="#ff0000">+</font></span><span lang="EN-US"> </span><b><span lang="EN-US"><font color="#5f9ea0">`</font></span></b></font><span lang="EN-US"></span></font></p>      <p style="line-height:normal;margin:0;" class="MsoNormal"><font size="2"><font face="Courier New"><span lang="EN-US"><span>&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span></span><span lang="EN-US"><font color="#800080">$vArray</font></span><span lang="EN-US">.Name </span><span lang="EN-US"><font color="#ff0000">+</font></span><span lang="EN-US"> </span><span lang="EN-US"><font color="#800000">&quot;&lt;/strong&gt;&lt;/font&gt;&lt;/br&gt;&lt;/br&gt;&quot;</font></span><span lang="EN-US"><span>&#160; </span></span><span lang="EN-US"><font color="#ff0000">+</font></span><span lang="EN-US"> </span><b><span lang="EN-US"><font color="#5f9ea0">`</font></span></b></font><span lang="EN-US"></span></font></p>      <p style="line-height:normal;margin:0;" class="MsoNormal"><font size="2"><font face="Courier New"><span lang="EN-US"><span>&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span></span><span lang="EN-US"><font color="#800000">&quot;&lt;font face='Tahoma' color='#000000' size='2'&gt;File for exporting: &lt;/font&gt;&quot;</font></span><span lang="EN-US"> </span><span lang="EN-US"><font color="#ff0000">+</font></span><span lang="EN-US"> </span><b><span lang="EN-US"><font color="#5f9ea0">`</font></span></b></font><span lang="EN-US"></span></font></p>      <p style="line-height:normal;margin:0;" class="MsoNormal"><font size="2"><font face="Courier New"><span lang="EN-US"><span>&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span></span><span lang="EN-US"><font color="#800000">&quot;&lt;font face='Tahoma' color='#A52A2A' size='2'&gt;&quot;</font></span><span lang="EN-US"> </span><span lang="EN-US"><font color="#ff0000">+</font></span><span lang="EN-US"> </span><b><span lang="EN-US"><font color="#5f9ea0">`</font></span></b></font><span lang="EN-US"></span></font></p>      <p style="line-height:normal;margin:0;" class="MsoNormal"><font size="2"><font face="Courier New"><span lang="EN-US"><span>&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span></span><span lang="EN-US"><font color="#800080">$vFPath</font></span><span lang="EN-US"> </span><span lang="EN-US"><font color="#ff0000">+</font></span><span lang="EN-US"> </span><span lang="EN-US"><font color="#800000">&quot;&lt;/font&gt;&lt;/br&gt;&lt;/br&gt;&quot;</font></span><span lang="EN-US"><span>&#160; </span></span><span lang="EN-US"><font color="#ff0000">+</font></span><span lang="EN-US"> </span><b><span lang="EN-US"><font color="#5f9ea0">`</font></span></b></font><span lang="EN-US"></span></font></p>      <p style="line-height:normal;margin:0;" class="MsoNormal"><font size="2"><font face="Courier New"><span lang="EN-US"><span>&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span></span><span lang="EN-US"><font color="#800000">&quot;&lt;font face='Tahoma' color='#000000' size='2'&gt;Error data: &lt;/font&gt;&quot;</font></span><span lang="EN-US"> </span><span lang="EN-US"><font color="#ff0000">+</font></span><span lang="EN-US"> </span><b><span lang="EN-US"><font color="#5f9ea0">`</font></span></b></font><span lang="EN-US"></span></font></p>      <p style="line-height:normal;margin:0;" class="MsoNormal"><font size="2"><font face="Courier New"><span lang="EN-US"><span>&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span></span><span lang="EN-US"><font color="#800000">&quot;&lt;font face='Tahoma' color='#800000' size='2'&gt;&quot;</font></span><span lang="EN-US"> </span><span lang="EN-US"><font color="#ff0000">+</font></span><span lang="EN-US"> </span><b><span lang="EN-US"><font color="#5f9ea0">`</font></span></b></font><span lang="EN-US"></span></font></p>      <p style="line-height:normal;margin:0;" class="MsoNormal"><font size="2"><font face="Courier New"><span lang="EN-US"><span>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span></span><span lang="EN-US"><font color="#800080">$Error</font></span><span lang="EN-US"> </span><span lang="EN-US"><font color="#ff0000">+</font></span><span lang="EN-US"> </span><span lang="EN-US"><font color="#800000">&quot;&lt;/font&gt;&quot;</font></span></font><span lang="EN-US"></span></font></p>      <p style="line-height:normal;margin:0;" class="MsoNormal"><span lang="EN-US"><font face="Courier New"><font size="2"><span>&#160;&#160;&#160;&#160;&#160;&#160; </span><span>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span></font></font></span></p>      <p style="line-height:normal;margin:0;" class="MsoNormal"><font face="Courier New"><font size="2"><span lang="EN-US"><span>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span></span><span lang="EN-US"><font color="#800080">$vSMTP</font></span><span lang="EN-US"> </span><span lang="EN-US"><font color="#ff0000">=</font></span><span lang="EN-US"> </span><b><span lang="EN-US"><font color="#5f9ea0">New-Object</font></span></b><span lang="EN-US"> </span><span lang="EN-US"><font color="#800000">Net.Mail.SMTPClient</font></span><span lang="EN-US">(</span><span lang="EN-US"><font color="#800080">$gvSMTPServer</font></span><span lang="EN-US">)</span></font></font></p>      <p style="line-height:normal;margin:0;" class="MsoNormal"><font face="Courier New"><font size="2"><span lang="EN-US"><span>&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span></span><span lang="EN-US"><font color="#800080">$vMsg</font></span><span lang="EN-US"> </span><span lang="EN-US"><font color="#ff0000">=</font></span><span lang="EN-US"> </span><b><span lang="EN-US"><font color="#5f9ea0">New-Object</font></span></b><span lang="EN-US"> </span><span lang="EN-US"><font color="#800000">Net.Mail.MailMessage</font></span><span lang="EN-US">(</span><span lang="EN-US"><font color="#800080">$gvEmailFrom</font></span><span lang="EN-US">, </span><span lang="EN-US"><font color="#800080">$gvEmailTo</font></span><span lang="EN-US">, </span><span lang="EN-US"><font color="#800080">$vEmailSubj</font></span><span lang="EN-US">, </span><span lang="EN-US"><font color="#800080">$vEmailBody</font></span><span lang="EN-US">)</span></font></font></p>      <p style="line-height:normal;margin:0;" class="MsoNormal"><font size="2"><font face="Courier New"><span lang="EN-US"><span>&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span></span><span lang="EN-US"><font color="#800080">$vMsg</font></span><span lang="EN-US">.IsBodyHTML </span><span lang="EN-US"><font color="#ff0000">=</font></span><span lang="EN-US"> </span><span lang="EN-US"><font color="#800080">$True</font></span></font><span lang="EN-US"></span></font></p>      <p style="line-height:normal;margin:0;" class="MsoNormal"><font face="Courier New"><font size="2"><span lang="EN-US"><span>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span></span><span lang="EN-US"><font color="#800080">$vSMTP</font></span><span lang="EN-US">.Send(</span><span lang="EN-US"><font color="#800080">$vMsg</font></span><span lang="EN-US">)<span>&#160;&#160;&#160; </span></span></font></font></p>      <p style="line-height:normal;margin:0;" class="MsoNormal"><span lang="EN-US"><font face="Courier New"><font size="2"><span>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span>}</font></font></span></p>      <p style="line-height:normal;margin:0;" class="MsoNormal"><font face="Courier New"><font size="2"><span lang="EN-US"><span>&#160;&#160;&#160;&#160;&#160; </span></span><span lang="EN-US"><font color="#0000ff">Else</font></span><span lang="EN-US">{</span></font></font></p>      <p style="line-height:normal;margin:0;" class="MsoNormal"><font face="Courier New"><font size="2"><span lang="EN-US"><span>&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span></span><b><span lang="EN-US"><font color="#5f9ea0">write-host</font></span></b><span lang="EN-US"> </span><span lang="EN-US"><font color="#800000">&quot;Export Succeeded&quot;</font></span><span lang="EN-US">} </span></font></font></p>      <p style="line-height:normal;margin:0;" class="MsoNormal"><span><font size="2" face="Courier New">}</font></span></p>      <p style="line-height:normal;margin:0;" class="MsoNormal"><span><font face="Courier New"><font color="#008000" size="2">#</font></font></span></p>      <p style="line-height:normal;margin:0;" class="MsoNormal"><span><font face="Courier New"><font color="#008000" size="2"># Блок удаления устаревших экспортных файлов</font></font></span></p>      <p style="line-height:normal;margin:0;" class="MsoNormal"><span><font face="Courier New"><font color="#008000" size="2">#</font></font></span></p>      <p style="line-height:normal;margin:0;" class="MsoNormal"><font face="Courier New"><font size="2"><span lang="EN-US"><font color="#0000ff">If</font></span><span lang="EN-US"> (</span><span lang="EN-US"><font color="#800080">$gvDelOldFiles</font></span><span lang="EN-US"> </span><span lang="EN-US"><font color="#ff0000">=</font></span><span lang="EN-US"> </span><span lang="EN-US"><font color="#800080">$True</font></span><span lang="EN-US">) </span></font></font></p>      <p style="line-height:normal;margin:0;" class="MsoNormal"><span lang="EN-US"><font size="2" face="Courier New">{</font></span></p>      <p style="line-height:normal;margin:0;" class="MsoNormal"><font size="2"><font face="Courier New"><span lang="EN-US"><span>&#160;&#160;&#160; </span></span><span lang="EN-US"><font color="#0000ff">Filter</font></span><span lang="EN-US"> </span><span lang="EN-US"><font color="#5f9ea0">Get-OldFiles</font></span></font><span lang="EN-US"></span></font></p>      <p style="line-height:normal;margin:0;" class="MsoNormal"><span lang="EN-US"><font face="Courier New"><font size="2"><span>&#160;&#160;&#160; </span>{</font></font></span></p>      <p style="line-height:normal;margin:0;" class="MsoNormal"><font face="Courier New"><font size="2"><span lang="EN-US"><span>&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span></span><span lang="EN-US"><font color="#0000ff">if</font></span><span lang="EN-US">(([</span><span lang="EN-US"><font color="#008080">DateTime</font></span><span lang="EN-US">]::</span><span lang="EN-US"><font color="#8b4513">Now</font></span><span lang="EN-US">.</span><span lang="EN-US"><font color="#8b4513">Subtract</font></span><span lang="EN-US">(</span><span lang="EN-US"><font color="#800080">$_</font></span><span lang="EN-US">.CreationTime)).Days </span><span lang="EN-US"><font color="#ff0000">-gt</font></span><span lang="EN-US"> </span><span lang="EN-US"><font color="#800080">$gvDelPeriod</font></span><span lang="EN-US">) </span></font></font></p>      <p style="line-height:normal;margin:0;" class="MsoNormal"><font face="Courier New"><font size="2"><span lang="EN-US"><span>&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span>{</span><span lang="EN-US"><font color="#0000ff">return</font></span><span lang="EN-US"> </span><span lang="EN-US"><font color="#800080">$_</font></span><span lang="EN-US"> }</span></font></font></p>      <p style="line-height:normal;margin:0;" class="MsoNormal"><span lang="EN-US"><font face="Courier New"><font size="2"><span>&#160;&#160;&#160; </span>}</font></font></span></p>      <p style="line-height:normal;margin:0;" class="MsoNormal"><font size="2"><font face="Courier New"><span lang="EN-US"><span>&#160;&#160;&#160; </span></span><b><span lang="EN-US"><font color="#5f9ea0">dir</font></span></b><span lang="EN-US"> </span><i><span lang="EN-US"><font color="#5f9ea0">-path</font></span></i><span lang="EN-US"> </span><span lang="EN-US"><font color="#800080">$gvExportDir</font></span><span lang="EN-US"> | Get-OldFiles -Period </span><span lang="EN-US"><font color="#800080">$gvDelPeriod</font></span><span lang="EN-US"> | </span><b><span lang="EN-US"><font color="#5f9ea0">Remove-Item</font></span></b><span lang="EN-US"> </span><i><span lang="EN-US"><font color="#5f9ea0">-force</font></span></i></font><span lang="EN-US"></span></font></p>      <p style="margin:0 0 10pt;" class="MsoNormal"><span style="line-height:12pt;"><font size="2" face="Courier New">}</font></span></p>   </blockquote>    <p><font size="2">На сервере TMG в планировщике задач создана задача, которая через определённые интервалы времени запускает PowerShell и выполняет данный скрипт.</font></p>    <p><font size="2">Триггер</font> выполнения при желании можно сделать не на периодической основе а например привязать к событию перезапуска служб TMG и таким образом получить автоматическое сохранение резервной копии конфигурации после каждого её более или менее серьёзного изменения.</p>    <p><a href="http://blog.it-kb.ru/wp-content/uploads/2012/02/image35.png"><img style="display:block;float:none;margin:0 auto;" title="image" alt="image" src="http://blog.it-kb.ru/wp-content/uploads/2012/02/image_thumb35.png" width="544" height="405" /></a><font size="2"></font></p>    <p>&#160;</p>    <p>В моём примере данная задача выполняется от имени системы с высоким уровнем привилегий</p>    <p><a href="http://blog.it-kb.ru/wp-content/uploads/2012/02/image36.png"><u></u><img style="display:block;float:none;margin:0 auto;" title="image" alt="image" src="http://blog.it-kb.ru/wp-content/uploads/2012/02/image_thumb36.png" width="544" height="220" /></a><font size="2"></font></p>    <p><font size="2">И в силу того что попытка записи создаваемого файла экспортированной конфигурации будет выполняться в контексте SYSTEM сервера TMG, на файловом сервере в свойствах соответствующего сетевого каталога нужно выставить разрешения для учетной записи компьютера – сервера TMG</font></p>    <p><a href="http://blog.it-kb.ru/wp-content/uploads/2012/02/image37.png"><font size="2"><img style="display:block;float:none;margin:0 auto;" title="image" alt="image" src="http://blog.it-kb.ru/wp-content/uploads/2012/02/image_thumb37.png" width="372" height="320" /></font></a></p>    <p><font size="2">Ну и разумеется нужно не забыть добавить данное разрешение на уровне NTFS</font></p>    <p><a href="http://blog.it-kb.ru/wp-content/uploads/2012/02/image38.png"><font size="2"><img style="display:block;float:none;margin:0 auto;" title="image" alt="image" src="http://blog.it-kb.ru/wp-content/uploads/2012/02/image_thumb38.png" width="374" height="418" /></font></a></p>    <p>После этого, настроенное нами задание должно заработать и дать желаемый результат.</p>    <p><a href="http://blog.it-kb.ru/wp-content/uploads/2012/02/image39.png"><font size="2"><img style="display:block;float:none;margin:0 auto;" title="image" alt="image" src="http://blog.it-kb.ru/wp-content/uploads/2012/02/image_thumb39.png" width="550" height="110" /></font></a></p>    <p><font size="2">Источники информации:</font></p>    <ul>     <li><a href="https://msdn.microsoft.com/en-us/library/ff825679(v=vs.85).aspx"><font size="2">MSDN Library &gt; COM Objects &gt; FPC &gt; ExportToFile Method</font></a></li>      <li><a href="http://msdn.microsoft.com/en-us/library/dd435786.aspx"><font size="2">MSDN Library - Exporting and Importing a Forefront TMG Configuration</font></a></li>      <li><a href="http://social.technet.microsoft.com/Forums/en-US/Forefrontedgegeneral/thread/f42ae1ba-2db5-4319-9b65-22a25201088a/"><font size="2">Microsoft Forefront TechCenter Forums - powershell scripting for Forefront TMG</font></a></li>      <li><a href="http://www.ldap389.info/en/2012/01/04/powershell-export-firewall-rules-on-your-tmg-servers/"><font size="2">ldap389 AD Blog - Powershell: Export firewall rules on your TMG servers</font></a></li>   </ul>    <li><a href="http://fixmyitsystem.com/2012/01/tmg-configuration-backup-automation_13.html">Blog FixMyITSystem - TMG configuration backup automation - Part II</a></li> </font>

Всего комментариев: 2 Комментировать

  1. Обратная ссылка: Useful ISA 2006 / TMG 2010 links « Share IT /

  2. mitushinem /

    Очень полезная штука. Проверил. Очень доволен. Спасибо!!!

Добавить комментарий