<?xml version='1.0' encoding="utf-8"?>
      <rss version='2.0'>
      <channel>
      <title>Форум на Исходниках.RU</title>
      <link>https://forum.sources.ru</link>
      <description>Форум на Исходниках.RU</description>
      <generator>Форум на Исходниках.RU</generator>
  	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=175639&amp;view=findpost&amp;p=3829543</guid>
        <pubDate>Tue, 28 Apr 2020 20:27:35 +0000</pubDate>
        <title>Полезные скрипты</title>
        <link>https://forum.sources.ru/index.php?showtopic=175639&amp;view=findpost&amp;p=3829543</link>
        <description><![CDATA[Radikson: Просто если использовать тег VB вместо VB Script код становится намного читабельней.]]></description>
        <author>Radikson</author>
        <category>Windows</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=175639&amp;view=findpost&amp;p=3132807</guid>
        <pubDate>Wed, 09 May 2012 13:32:03 +0000</pubDate>
        <title>Полезные скрипты</title>
        <link>https://forum.sources.ru/index.php?showtopic=175639&amp;view=findpost&amp;p=3132807</link>
        <description><![CDATA[Dan-K: Нашел в самом начале топика скрипт  от B.V. - Вывод на экран списка всех запущенных на локальной рабочей станции процессов<br>
<br>
Я сам работаю в VBA, и вышеуказанный скрипт очень пригодился для активации окна соседнего приложения и открытия файла Excel - именно в соседнем приложении.<br>
Приведу немного переделанный и подогнанный код для VBA<br>
<br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">Option Explicit</div><div class="code_line">Declare Sub Sleep Lib &quot;kernel32&quot; (ByVal dwMilliseconds As Long)</div><div class="code_line">Declare Function ShellExecute Lib &quot;shell32.dll&quot; Alias &quot;ShellExecuteA&quot; _</div><div class="code_line">(ByVal hwnd As Long, ByVal lpOperation As String, ByVal lpFile As String, _</div><div class="code_line">ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long</div><div class="code_line">&nbsp;</div><div class="code_line">Public PID_OPEN_FILE_1</div><div class="code_line">Public strFullFileName$</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;</div><div class="code_line">Sub АКТИВИРУЕМ_ОКНО_СОСЕДНЕГО_ПРИЛОЖЕНИЯ_EXCEL_И_ОТКРЫВАЕМ_ФАЙЛ_В_НЕМ()</div><div class="code_line">&nbsp;</div><div class="code_line">Dim WMI</div><div class="code_line">Dim Process</div><div class="code_line">Dim SQuery</div><div class="code_line">Dim WShell &nbsp;&#39;</div><div class="code_line">Dim Processes &#39;Коллекция процессов</div><div class="code_line">Dim Ret</div><div class="code_line">Dim PID</div><div class="code_line">&#39;On Error Resume Next</div><div class="code_line">strFullFileName = &quot;C:.xls&quot;</div><div class="code_line">&#39; &nbsp;//Соединяемся с WMI</div><div class="code_line">If PID_OPEN_FILE_1 = Empty Then</div><div class="code_line">MsgBox &quot;попыток открытия файла с помощью данного макроса еще небыло&quot;</div><div class="code_line">Else</div><div class="code_line">MsgBox &quot;файл уже открывали&quot;</div><div class="code_line">End If</div><div class="code_line">&nbsp;</div><div class="code_line">Set WShell = CreateObject(&quot;Wscript.Shell&quot;)</div><div class="code_line">Set WMI = GetObject(&quot;winMgmts:&quot;)</div><div class="code_line">&nbsp;&nbsp;PID = GetCurrentProcessId</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;&#39;Формируем текст запроса</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;SQuery = &quot;SELECT * FROM Win32_Process &nbsp;WHERE Name&#60;&#62;&#39;EXPLORER.EXE&#39;&quot;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;&#39;Создаем коллекцию-результат запроса</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;Set Processes = WMI.ExecQuery(SQuery)</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;&#39;Цикл по всем элементам коллекции</div><div class="code_line">For Each Process In Processes</div><div class="code_line">&nbsp;Ret = False</div><div class="code_line">&nbsp;If Process.Caption Like &quot;EXCEL.EXE&quot; And Process.processid &#60;&#62; PID Then</div><div class="code_line">&nbsp;&nbsp; Select Case PID_OPEN_FILE_1</div><div class="code_line">&nbsp;&nbsp; Case Empty</div><div class="code_line">&nbsp;&nbsp; &#39;&#39;&#39;для контроля записываем id-процесса, в котором открыли файл.</div><div class="code_line">&nbsp;&nbsp; &#39;&#39;&#39;при последующем открытии файла будем перебирать все id-процесса - пока не найдем нужный</div><div class="code_line">&nbsp;&nbsp; &nbsp; PID_OPEN_FILE_1 = Process.processid</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; Ret = WShell.AppActivate(Process.processid)</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; If Ret = True Then Ret = ShellExecute(0, &quot;open&quot;, strFullFileName, 0, vbNullString, 5)</div><div class="code_line">&nbsp;&nbsp; Case Process.processid</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;Ret = WShell.AppActivate(Process.processid)</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; If Ret = True Then Ret = ShellExecute(0, &quot;open&quot;, strFullFileName, 0, vbNullString, 5)</div><div class="code_line">&nbsp;&nbsp; End Select</div><div class="code_line">&nbsp;End If</div><div class="code_line">Next</div><div class="code_line">Set WMI = Nothing</div><div class="code_line">Set WShell = Nothing</div><div class="code_line">End Sub</div></ol></div></div></div></div><script>preloadCodeButtons('1');</script><br>
<br>
<br>
<br>
Но встала задача: перебрать все открытые приложения Excel и получить полные имена всех открытых файлов.<br>
<br>
Как это можно сделать через скрипт?]]></description>
        <author>Dan-K</author>
        <category>Windows</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=175639&amp;view=findpost&amp;p=2949032</guid>
        <pubDate>Sun, 31 Jul 2011 19:47:43 +0000</pubDate>
        <title>Полезные скрипты</title>
        <link>https://forum.sources.ru/index.php?showtopic=175639&amp;view=findpost&amp;p=2949032</link>
        <description><![CDATA[Dmitrii: Функция для VB-сценария, позволяющая очищать DACL подкаталогов заданного каталога от не олицетворённых DACL-записей, сохраняя при этом настройки, унаследованные от &quot;родителя&quot;.<br>
Дополнительные возможности функции:<br>
- поддержка работы как в графическом, так и в консольном режимах;<br>
- поддержка рекурсивного просмотра подкаталогов;<br>
- ведение журнала работы;<br>
- поддержка работы в &quot;молчаливом&quot; режиме.<br>
<br>
<strong class='tag-b'>Описание параметров.</strong><br>
<br>
<strong class='tag-b'>objWMIServ</strong> - входной, обязательный, подтип <span class="tag-color tag-color-named" data-value="blue" style="color: blue">Object</span>.<br>
Смысловая нагрузка - ссылка на WMI-пространство того компьютера, на томе которого (локальном или сетевом) расположено обрабатываемое дерево подкаталогов.<br>
Допустимое значение: ссылка на пространство CIMV2, полученная с помощью моникера.<br>
<br>
<strong class='tag-b'>objDir</strong> - входной, обязательный, подтип <span class="tag-color tag-color-named" data-value="blue" style="color: blue">Object</span>.<br>
Смысловая нагрузка - ссылка на каталог, содержащий обрабатываемое дерево подкаталогов.<br>
Допустимое значение: любая корректная ссылка на объект типа <strong class='tag-b'><span class="tag-color tag-color-named" data-value="green" style="color: green">FOLDER</span></strong> (модель <span class="tag-color tag-color-named" data-value="green" style="color: green">FSO</span>) локального или удалённого компьютера.<br>
При работе с каталогом удалённого компьютера предполагается, что ссылка формируется с использованием административного ресурса для соответствующего логического тома.<br>
<br>
<strong class='tag-b'>objLog</strong> - входной, обязательный, подтип <span class="tag-color tag-color-named" data-value="blue" style="color: blue">Object</span>.<br>
Смысловая нагрузка - ссылка на текстовый файл, представляющий собой журнал работы функции, а также индикатор необходимости ведения такого журнала.<br>
Допустимые значения:<br>
любая корректная ссылка на открытый для записи объект типа <strong class='tag-b'><span class="tag-color tag-color-named" data-value="green" style="color: green">TEXTSTREAM</span></strong> (модель <span class="tag-color tag-color-named" data-value="green" style="color: green">FSO</span>) локального компьютера (журнал ведётся);<br>
<strong class='tag-b'><span class="tag-color tag-color-named" data-value="blue" style="color: blue">Nothing</span></strong> (журнал не ведётся).<br>
<br>
<strong class='tag-b'>blnRec</strong> - входной, обязательный, подтип <span class="tag-color tag-color-named" data-value="blue" style="color: blue">Boolean</span>.<br>
Смысловая нагрузка - логический индикатор режима рекурсивного просмотра обрабатываемого дерева подкаталогов.<br>
Допустимые значения:<br>
<strong class='tag-b'><span class="tag-color tag-color-named" data-value="blue" style="color: blue">TRUE</span></strong> - выполнять рекурсивный просмотр;<br>
<strong class='tag-b'><span class="tag-color tag-color-named" data-value="blue" style="color: blue">FALSE</span></strong> - не выполнять рекурсивный просмотр.<br>
<br>
<strong class='tag-b'>blnCon</strong> - входной, обязательный, подтип <span class="tag-color tag-color-named" data-value="blue" style="color: blue">Boolean</span>.<br>
Смысловая нагрузка - логический индикатор режима выполнения сценария (в составе которого задействована функция), определяющий возможность вывода на экран текущих диагностических сообщений функции.<br>
Допустимые значения:<br>
<strong class='tag-b'><span class="tag-color tag-color-named" data-value="blue" style="color: blue">TRUE</span></strong> - консольный режим, вывод сообщений возможен;<br>
<strong class='tag-b'><span class="tag-color tag-color-named" data-value="blue" style="color: blue">FALSE</span></strong> - графический режим, вывод сообщений невозможен .<br>
<br>
<strong class='tag-b'>blnSil</strong> - входной, обязательный, подтип <span class="tag-color tag-color-named" data-value="blue" style="color: blue">Boolean</span>.<br>
Смысловая нагрузка -  логический индикатор режима отображения на экране текущих диагностических сообщений функции.<br>
Допустимые значения:<br>
<strong class='tag-b'><span class="tag-color tag-color-named" data-value="blue" style="color: blue">TRUE</span></strong> - &quot;молчаливый&quot; режим;<br>
<strong class='tag-b'><span class="tag-color tag-color-named" data-value="blue" style="color: blue">FALSE</span></strong> - режим отображения сообщений.<br>
При работе в &quot;молчаливом&quot; режиме не выводятся никакие сообщения, кроме сообщений о ситуациях, приводящих к аварийному завершению работы функции. Данный режим никак не влияет на процедуру ведения журнала.<br>
<br>
<strong class='tag-b'>Возвращаемое значение у функции отсутствует.</strong><br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">Function Clear_DACL(objWMIServ, objDir, objLog, blnRec, blnCon, blnSil)</div><div class="code_line">Dim objItem, objSecSettings, objSD, objACE, arrACE, strSID</div><div class="code_line">Dim strPath, strTemp, blnHasInherited, blnHasError, blnIsFound, intRes, i</div><div class="code_line">Const SE_DACL_PROTECTED = 4096 &#39;Флаг-признак отключенного режима наследования управляемым каталогом</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &#39;безопасности NTFS от &quot;родителя&quot;</div><div class="code_line">Const INHERITED_ACE = 16 &#39;Флаг-признак того, что текущая запись DACL унаследована от &quot;родителя&quot;</div><div class="code_line">&nbsp;</div><div class="code_line">On Error Resume Next</div><div class="code_line">For Each objItem In objDir.SubFolders</div><div class="code_line">&nbsp;&nbsp; &nbsp;blnHasError = False: blnIsFound = False: strSID = vbNullString</div><div class="code_line">&nbsp;&nbsp; &nbsp;strPath = objItem.Path</div><div class="code_line">&nbsp;&nbsp; &nbsp;If Err.Number = 0 Then</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;strTemp = strTemp &amp; UCase(strPath) &amp; vbNewLine</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;i = InStr(strPath, &quot;$&quot;)</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;If i &#62; 0 Then</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;strPath = Replace(Mid(strPath, i - 1), &quot;$&quot;, &quot;:&quot;)</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;End If</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;Set objSecSettings = objWMIServ.Get(&quot;Win32_LogicalFileSecuritySetting.Path=&#39;&quot; &amp; strPath &amp; &quot;&#39;&quot;)</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;If Err.Number = 0 Then</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;If objSecSettings.GetSecurityDescriptor(objSD) = 0 Then</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;If Err.Number = 0 Then</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;intRes = 0</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;If Not IsNull(objSD.DACL) Then</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;For Each objACE In objSD.DACL</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;If IsNull(objACE.Trustee.Name) Then</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;blnIsFound = True</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Exit For</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;End If</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Next</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;If blnIsFound Then</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;If CBool(objSD.ControlFlags And SE_DACL_PROTECTED) Then</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;arrACE = objSD.DACL</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Else</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;blnHasInherited = True</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;arrACE = Array()</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;i = -1</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&#39;--- Выборка из исходного DACL записей, не унаследованных от &quot;родителя&quot;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;For Each objACE In objSD.DACL</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;If CBool(objACE.AceFlags And INHERITED_ACE) Then</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;If IsNull(objACE.Trustee.Name) Then</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;blnHasError = True</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;strTemp = strTemp &amp; objACE.Trustee.SIDString &amp; _</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&quot; -&#62; запись унаследована от &quot;&quot;родителя&quot;&quot;.&quot; &amp; vbNewLine</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;End If</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Else</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;i = i + 1</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;ReDim Preserve arrACE(i)</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Set arrACE(i) = objACE</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;End If</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Next</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&#39;------</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&#39;--- Отключение наследования настроек безопасности от &quot;родителя&quot;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;objSD.ControlFlags = objSD.ControlFlags + SE_DACL_PROTECTED</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;intResult = objSecSettings.SetSecurityDescriptor(objSD)</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&#39;------</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;End If</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;If intRes = 0 Then</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&#39;--- Поиск в DACL записей, у свойства Trustee.Name которых отсутствует значение</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;For Each objACE In arrACE</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;If IsNull(objACE.Trustee.Name) Then</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;objACE.AccessMask = 0 &#39;назначение нулевой маски для последующего автоудаления записи</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;strSID = strSID &amp; objACE.Trustee.SIDString &amp; &quot; -&#62; запись удалена.&quot; &amp; vbNewLine</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;End If</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Next</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&#39;------</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Set objACE = Nothing</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;objSD.DACL = arrACE &#39;собственно изменение DACL</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Erase arrACE</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&#39;--- Включение наследования настроек безопасности от &quot;родителя&quot;,</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&#39;если первоначально оно было включено</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;If blnHasInherited Then</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;objSD.ControlFlags = objSD.ControlFlags - SE_DACL_PROTECTED</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;End If</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&#39;------</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&#39;--- Итоговое сохраненение изменений, внесённых в дескриптор безопасности</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;intRes = objSecSettings.SetSecurityDescriptor(objSD)</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Select Case intRes</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Case 0</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;strTemp = strTemp &amp; strSID</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;If blnHasError Then</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;strTemp = strTemp &amp; &quot;Частично успешное завершение.&quot; &amp; vbNewLine</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Else</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;strTemp = strTemp &amp; &quot;Полностью успешное завершение.&quot; &amp; vbNewLine</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;End If</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Case 2: strTemp = strTemp &amp; &quot;Доступ запрещён.&quot; &amp; vbNewLine</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Case 5, 9, 1307: strTemp = strTemp &amp; &quot;Для выполнения операции недостаточно полномочий.&quot; &amp; vbNewLine</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Case 21: strTemp = strTemp &amp; &quot;Заданы недопустимые значения параметров.&quot; &amp; vbNewLine</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Case Else: strTemp = strTemp &amp; &quot;Неизвестная ошибка с кодом: &quot; &amp; intRes &amp; vbNewLine</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;End Select</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&#39;------</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Else</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;strTemp = strTemp &amp; &quot;Не удалось отключить наследование безопасности.&quot; &amp; vbNewLine</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;End If</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Else</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;strTemp = strTemp &amp; &quot;Очистка DACL не требуется.&quot; &amp; vbNewLine</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;End If</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Else</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;strTemp = strTemp &amp; &quot;Список управления доступом пуст.&quot; &amp; vbNewLine</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;End If</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Else</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;strTemp = strTemp &amp; &quot;Ошибка &quot; &amp; Err.Number &amp; &quot; при выполнении метода GetSecurityDescriptor.&quot; &amp; _</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;vbNewLine &amp; Err.Description &amp; vbNewLine</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Err.Clear</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;End If</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Else</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;strTemp = strTemp &amp; &quot;Не удалось прочитать дескриптор безопасности.&quot; &amp; vbNewLine</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;End If</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;Else</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;strTemp = strTemp &amp; &quot;Ошибка &quot; &amp; Err.Number &amp; &quot; обращения к классу Win32_LogicalFileSecuritySetting &quot; &amp; _</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&quot;при обработке папки &quot; &amp; UCase(strPath) &amp; vbNewLine</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Err.Clear</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;End If</div><div class="code_line">&nbsp;&nbsp; &nbsp;Else</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;blnHasError = True</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;strTemp = strTemp &amp; &quot;Ошибка &quot; &amp; Err.Number &amp; &quot; при попытке рекурсивного просмотра папки &quot; &amp; _</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;UCase(objDir.Path) &amp; vbNewLine</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;Err.Clear</div><div class="code_line">&nbsp;&nbsp; &nbsp;End If</div><div class="code_line">&nbsp;&nbsp; &nbsp;Set objSD = Nothing</div><div class="code_line">&nbsp;&nbsp; &nbsp;Set objSecSettings = Nothing</div><div class="code_line">&nbsp;&nbsp; &nbsp;If Not objLog Is Nothing Then objLog.WriteLine strTemp</div><div class="code_line">&nbsp;&nbsp; &nbsp;If blnCon And Not blnSil Then WScript.Echo strTemp</div><div class="code_line">&nbsp;&nbsp; &nbsp;strTemp = vbNullString</div><div class="code_line">&nbsp;&nbsp; &nbsp;If blnRec And Not blnHasError Then Call Clear_DACL(objWMIServ, objItem, objLog, blnRec, blnCon, blnSil)</div><div class="code_line">Next</div><div class="code_line">Set objItem = Nothing</div><div class="code_line">On Error GoTo 0</div><div class="code_line">End Function</div></ol></div></div></div></div>]]></description>
        <author>Dmitrii</author>
        <category>Windows</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=175639&amp;view=findpost&amp;p=2927130</guid>
        <pubDate>Tue, 05 Jul 2011 06:25:28 +0000</pubDate>
        <title>Полезные скрипты</title>
        <link>https://forum.sources.ru/index.php?showtopic=175639&amp;view=findpost&amp;p=2927130</link>
        <description><![CDATA[AGhost: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=175639&view=findpost&p=2922131'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Dmitrii &#064; <time class="tag-quote__quoted-time" datetime="2011-06-27T09:53:49+00:00">27.06.11, 09:53</time></span><div class='quote '><div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=175639&view=findpost&p=2920638'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>AGhost &#064; <time class="tag-quote__quoted-time" datetime="2011-06-24T12:56:08+00:00">24.06.11, 12:56</time></span><div class='quote '>можно ли как то обойтись без setinfo ?</div></div>Нет.<br>
<br>
<strong class='tag-b'>AGhost</strong>, без ответа остался вопрос: &quot;Другие сценарии, вносящие изменения в AD через провайдер WinNT, работают нормально (в тех же условиях, что и обсуждаемый сценарий, разумеется)&quot;?</div></div><br>
Всё решил через LDAP провайдера....]]></description>
        <author>AGhost</author>
        <category>Windows</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=175639&amp;view=findpost&amp;p=2922131</guid>
        <pubDate>Mon, 27 Jun 2011 09:53:49 +0000</pubDate>
        <title>Полезные скрипты</title>
        <link>https://forum.sources.ru/index.php?showtopic=175639&amp;view=findpost&amp;p=2922131</link>
        <description><![CDATA[Dmitrii: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=175639&view=findpost&p=2920638'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>AGhost &#064; <time class="tag-quote__quoted-time" datetime="2011-06-24T12:56:08+00:00">24.06.11, 12:56</time></span><div class='quote '>можно ли как то обойтись без setinfo ?</div></div>Нет.<br>
<br>
<strong class='tag-b'>AGhost</strong>, без ответа остался вопрос: &quot;Другие сценарии, вносящие изменения в AD через провайдер WinNT, работают нормально (в тех же условиях, что и обсуждаемый сценарий, разумеется)&quot;?]]></description>
        <author>Dmitrii</author>
        <category>Windows</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=175639&amp;view=findpost&amp;p=2920638</guid>
        <pubDate>Fri, 24 Jun 2011 12:56:08 +0000</pubDate>
        <title>Полезные скрипты</title>
        <link>https://forum.sources.ru/index.php?showtopic=175639&amp;view=findpost&amp;p=2920638</link>
        <description><![CDATA[AGhost: Запускается на удаленной машине из под админского аккаунта, из под которого который можно ручками в оснастке делать unlock логинов...<br><br>p.s. можно ли как то обойтись без setinfo ??]]></description>
        <author>AGhost</author>
        <category>Windows</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=175639&amp;view=findpost&amp;p=2920356</guid>
        <pubDate>Fri, 24 Jun 2011 07:49:31 +0000</pubDate>
        <title>Полезные скрипты</title>
        <link>https://forum.sources.ru/index.php?showtopic=175639&amp;view=findpost&amp;p=2920356</link>
        <description><![CDATA[Dmitrii: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=175639&view=findpost&p=2919204'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>AGhost &#064; <time class="tag-quote__quoted-time" datetime="2011-06-22T12:57:26+00:00">22.06.11, 12:57</time></span><div class='quote '>... что необходимо чтобы разблокировать скриптом?</div></div>В самом общем случае нужно то же, что и для выполнения любого другого сценария на контроллере - достаточные полномочия.<br>
Сюда нужно отнести: уровень привилегий &quot;учётки&quot;, от имени которой выполняется сценарий, отсутствие ограничений со стороны групповой политики, отсутствие блокировок со стороны локального ПО, обеспечивающего безопасность контроллера (например, UAC, брандмауэра).<br>
<br>
<div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=175639&view=findpost&p=2919204'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>AGhost &#064; <time class="tag-quote__quoted-time" datetime="2011-06-22T12:57:26+00:00">22.06.11, 12:57</time></span><div class='quote '>... скрипт выдает acces denied на SetInfo.. почему?..</div></div>Сценарий запускается с удалённой станции или непосредственно на контроллере домена?<br>
Другие сценарии, вносящие изменения в AD через провайдер WinNT, работают нормально (в тех же условиях, что и обсуждаемый сценарий, разумеется)?]]></description>
        <author>Dmitrii</author>
        <category>Windows</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=175639&amp;view=findpost&amp;p=2919204</guid>
        <pubDate>Wed, 22 Jun 2011 12:57:26 +0000</pubDate>
        <title>Полезные скрипты</title>
        <link>https://forum.sources.ru/index.php?showtopic=175639&amp;view=findpost&amp;p=2919204</link>
        <description><![CDATA[AGhost: Скрипт для разблокировки аккаунта запускается от админа который может в оснастке разблокировать аккаунт<br>но сам скрипт выдает acces denied на SetInfo.. почему ? <br>и что необходимо чтобы разблокировать скриптом?<br><br>Set UserObj = GetObject(&quot;WinNT://&quot;&amp; DomainName &amp;&quot;/&quot;&amp; UserName &amp;&quot;&quot;)<br>If UserObj.IsAccountLocked = -1 then UserObj.IsAccountLocked = 0<br>UserObj.SetInfo]]></description>
        <author>AGhost</author>
        <category>Windows</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=175639&amp;view=findpost&amp;p=2915859</guid>
        <pubDate>Fri, 17 Jun 2011 10:55:59 +0000</pubDate>
        <title>Полезные скрипты</title>
        <link>https://forum.sources.ru/index.php?showtopic=175639&amp;view=findpost&amp;p=2915859</link>
        <description><![CDATA[Dmitrii: Функция для VB-сценария, позволяющая изменять список управления доступом NTFS (DACL) дескриптора безопасности каталога, сохраняя при этом настройки, унаследованные от &quot;родителя&quot;.<br>
Варианты изменения DACL (все варианты возможны только для не унаследованных записей):<br>
- изменение маски доступа существующей записи с учётом области её действия;<br>
- добавление отсутствующей записи с заданными типом, областью действия и маской;<br>
- удаление существующей записи с учётом её типа и области действия.<br>
Функция позволяет изменять DACL и того каталога, у которого включено наследование от &quot;родителя&quot;, и того - у которого отключено.<br>
<br>
<strong class='tag-b'>Описание параметров.</strong><br>
<br>
<strong class='tag-b'>strDom</strong> - входной, обязательный, подтип <span class="tag-color tag-color-named" data-value="blue" style="color: blue">String</span>.<br>
Смысловая нагрузка - левая часть отличительного имени (distinguished name) &quot;учётки&quot; пользователя или группы, представленного в формате ADS_NAME_TYPE_NT4.<br>
Допустимые значения:<br>
- NetBIOS-имя домена, например, <em class='tag-i'>&quot;fabric&quot;</em> (используется для обработки записей DACL, соответствующих &quot;учётке&quot; пользователя или группы из Active Directory);<br>
- NetBIOS-имя компьютера, например, <em class='tag-i'>&quot;ws&quot;</em> (используется для обработки записей DACL, соответствующих &quot;учётке&quot; пользователя или группы локального компьютера, <span class="tag-color tag-color-named" data-value="brown" style="color: brown">кроме &quot;учёток&quot; локальной системы и группы &quot;Все&quot;</span>);<br>
- строка нулевой длины (используется для обработки записей DACL, соответствующих &quot;учётке&quot; локальной системы или группы &quot;Все&quot; локального компьютера).<br>
<br>
<strong class='tag-b'>strWS</strong> - входной, обязательный, подтип <span class="tag-color tag-color-named" data-value="blue" style="color: blue">String</span>.<br>
Смысловая нагрузка - имя сервера WMI-пространства CIMV2.<br>
Допустимые значения:<br>
- NetBIOS-имя компьютера, например, <em class='tag-i'>&quot;ws&quot;</em> (используется для подключения к WMI-пространству произвольномго компьютера);<br>
- символ &quot;<strong class='tag-b'>.</strong>&quot; (может использоваться как альтернатива NetBIOS-имени для подключения к WMI-пространству локального компьютера).<br>
<br>
<strong class='tag-b'>strSAN</strong> - входной, обязательный, подтип <span class="tag-color tag-color-named" data-value="blue" style="color: blue">String</span>.<br>
Смысловая нагрузка - правая часть отличительного имени (distinguished name) &quot;учётки&quot; пользователя или группы, представленного в формате ADS_NAME_TYPE_NT4.<br>
Допустимое значения - NetBIOS-имя &quot;учётки&quot; пользователя или группы локального компьютера или Active Directory, например, <em class='tag-i'>&quot;user01&quot;</em>.<br>
<br>
<strong class='tag-b'>strDir</strong> - входной, обязательный, подтип <span class="tag-color tag-color-named" data-value="blue" style="color: blue">String</span>.<br>
Смысловая нагрузка - абсолютный локальный путь к каталогу, в DACL дескриптора безопасности которго вносится изменение.<br>
Допустимые значения:<br>
- путь к любому каталогу тома, кроме &quot;корневого&quot;, <span class="tag-color tag-color-named" data-value="brown" style="color: brown">без завершающего символа &quot;&#092;&quot;</span>, например, <em class='tag-i'>d:&#092;temp&#092;test</em>;<br>
- путь к &quot;корневому&quot; каталогу тома, например, <em class='tag-i'>d:&#092;</em>.<br>
<br>
<strong class='tag-b'>intType</strong> - входной, обязательный, подтип <span class="tag-color tag-color-named" data-value="blue" style="color: blue">Integer</span>.<br>
Смысловая нагрузка - числовой индикатор типа записи DACL, назначенной для обработки.<br>
Допустимые значения:<br>
-1 - любой тип;<br>
0 - тип &quot;РАЗРЕШЕНИЕ&quot;;<br>
1 - тип &quot;ЗАПРЕТ&quot;.<br>
<br>
<strong class='tag-b'>intScope</strong> - входной, обязательный, подтип <span class="tag-color tag-color-named" data-value="blue" style="color: blue">Integer</span>.<br>
Смысловая нагрузка - числовой индикатор области действия записи DACL, назначенной для обработки.<br>
Допустимые значения:<br>
-1 - любая область действия;<br>
0 - область &quot;Только для этой папки&quot;;<br>
1 - область &quot;Для этой папки и её файлов&quot;;<br>
2 - область &quot;Для этой папки и её подпапок&quot;;<br>
3 - область &quot;Для этой папки, её подпапок и файлов&quot;;<br>
9 - область &quot;Только для файлов&quot;;<br>
10 - область &quot;Только для подпапок&quot;;<br>
11 - область &quot;Только для подпапок и файлов&quot;.<br>
<br>
<strong class='tag-b'>lngMask</strong> - входной, обязательный, подтип <span class="tag-color tag-color-named" data-value="blue" style="color: blue">Long</span>.<br>
Смысловая нагрузка - числовой индикатор маски доступа записи DACL, назначенной для обработки.<br>
Допустимые значения:<br>
0 - запись назначена для удаления;<br>
- любое числовое значение, допустимое для свойства <strong class='tag-b'><span class="tag-color tag-color-named" data-value="green" style="color: green">AccessMask</span></strong> WMI-класса <span class="tag-color tag-color-named" data-value="green" style="color: green">Win32_ACE</span>.<br>
<br>
<strong class='tag-b'>Возвращаемое значение.</strong><br>
<br>
Функция возвращает строку с диагностическим сообщением о результатах работы.<br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">Function Modify_DACL(strDom, strWS, strSAN, strDir, intType, intScope, lngMask)</div><div class="code_line">Dim objWMI, objSecSettings, objSD, blnHasInherited, blnHasACE, i</div><div class="code_line">Dim xRes, arrACE, objCollection, objItem, strSID</div><div class="code_line">Dim objSID, objTrustee, objACE</div><div class="code_line">Const SE_DACL_PROTECTED = 4096 &#39;Флаг-признак наследования управляемым каталогом безопасности NTFS от &quot;родителя&quot;</div><div class="code_line">Const INHERITED_ACE = 16 &#39;Флаг-признак того, что текущая запись DACL унаследована от &quot;родителя&quot;</div><div class="code_line">&nbsp;</div><div class="code_line">On Error Resume Next</div><div class="code_line">xRes = 0</div><div class="code_line">Set objWMI = GetObject(&quot;winmgmts:{impersonationLevel=impersonate}!\&quot; &amp; strWS &amp; &quot;\root\cimv2&quot;)</div><div class="code_line">If Err.Number = 0 Then</div><div class="code_line">&nbsp;&nbsp; &nbsp;Set objSecSettings = objWMI.Get(&quot;Win32_LogicalFileSecuritySetting.Path=&#39;&quot; &amp; strDir &amp; &quot;&#39;&quot;)</div><div class="code_line">&nbsp;&nbsp; &nbsp;If Err.Number = 0 Then</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;If objSecSettings.GetSecurityDescriptor(objSD) = 0 Then</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;If Not IsNull(objSD.DACL) Then</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&#39;--- Поиск заданной &quot;учётки&quot; на локальном компьютере или в Active Directory</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;If Len(strDom) &#62; 0 Then</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Set objCollection = objWMI.ExecQuery(&quot;SELECT SID FROM Win32_Account WHERE Domain=&#39;&quot; &amp; strDom &amp; &quot;&#39; AND Name=&#39;&quot; &amp; strSAN &amp; &quot;&#39;&quot;)</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Else</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Set objCollection = objWMI.ExecQuery(&quot;SELECT SID FROM Win32_Account WHERE Name=&#39;&quot; &amp; strSAN &amp; &quot;&#39;&quot;)</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;End If</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&#39;------</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;If objCollection.Count &#62; 0 Then</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;If Not CBool(objSD.ControlFlags And SE_DACL_PROTECTED) Then blnHasInherited = True</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;If blnHasInherited Then</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;arrACE = Array()</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&#39;--- Выборка из исходного DACL записей, не унаследованных от &quot;родителя&quot;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;i = -1</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;For Each objItem In objSD.DACL</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;If Not CBool(objItem.AceFlags And INHERITED_ACE) Then</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;i = i + 1</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;ReDim Preserve arrACE(i)</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Set arrACE(i) = objItem</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;End If</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Next</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Set objItem = Nothing</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&#39;------</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&#39;--- Отключение наследования настроек безопасности от &quot;родителя&quot;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;objSD.ControlFlags = objSD.ControlFlags + SE_DACL_PROTECTED</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;xRes = objSecSettings.SetSecurityDescriptor(objSD)</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&#39;------</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Else</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;arrACE = objSD.DACL</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;End If</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;If xRes = 0 Then</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&#39;--- Определение SID &quot;учётки&quot;, назначенной для обработки</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;For Each objItem In objCollection</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;strSID = UCase(objItem.SID)</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Next</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Set objItem = Nothing</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&#39;------</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;If lngMask &#62; 0 Then</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&#39;--- Подготовка к добавлению в DACL новой записи</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Set objSID = objWMI.Get(&quot;Win32_SID.SID=&#39;&quot; &amp; strSID &amp; &quot;&#39;&quot;)</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Set objTrustee = objWMI.Get(&quot;Win32_Trustee&quot;).Spawninstance_()</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;objTrustee.Domain = strDom</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;objTrustee.Name = strSAN</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;objTrustee.SID = objSID.BinaryRepresentation</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;objTrustee.SidLength = objSID.SidLength</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;objTrustee.SIDString = strSID</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Set objSID = Nothing</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Set objACE = objWMI.Get(&quot;Win32_Ace&quot;).Spawninstance_()</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;objACE.AceType = intType</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;objACE.AceFlags = intScope</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;objACE.AccessMask = lngMask</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;objACE.Trustee = objTrustee</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Set objTrustee = Nothing</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;i = UBound(arrACE) + 1</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;ReDim Preserve arrACE(i)</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Set arrACE(i) = objACE</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;objSD.DACL = arrACE</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&#39;------</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Else</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&#39;--- Подготовка к удалению из DACL указанной записи</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;For Each objACE In arrACE</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;blnHasACE = False</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&#39;--- Поиск указанной записи по SID, области действия и типу</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;If UCase(objACE.Trustee.SIDString) = strSID Then</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;If intScope &#62;= 0 Then</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;If objACE.AceFlags = intScope Then</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;If intType &#60; 0 Or objACE.AceType = intType Then</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;blnHasACE = True &#39;запись заданного типа с искомыми SID и областью действия найдена</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;End If</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;End If</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Else</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;blnHasACE = True &#39;запись с искомым SID найдена (область действия - любая)</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;End If</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;If blnHasACE Then</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;objACE.AccessMask = 0</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;End If</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;End If</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&#39;------</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Next</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&#39;------</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;End If</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;objSD.DACL = arrACE &#39;Собственно изменение DACL</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Set objACE = Nothing</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Erase arrACE</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;If blnHasInherited Then</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&#39;--- Включение наследования настроек безопасности от &quot;родителя&quot;,</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&#39;если первоначально оно было включено</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;objSD.ControlFlags = objSD.ControlFlags - SE_DACL_PROTECTED</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&#39;------</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;End If</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&#39;--- Итоговое сохраненение изменений, внесённых в дескриптор безопасности</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;xRes = objSecSettings.SetSecurityDescriptor(objSD)</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Select Case xRes</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Case 0: xRes = &quot;Успешное завершение.&quot;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Case 2: xRes = &quot;Не удалось сохранить изменения DACL.&quot; &amp; vbNewLine &amp; &quot;Доступ запрещён.&quot;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Case 5, 9: xRes = &quot;Не удалось сохранить изменения DACL.&quot; &amp; vbNewLine &amp; &quot;Для выполнения операции недостаточно полномочий.&quot;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Case 21: xRes = &quot;Не удалось сохранить изменения DACL.&quot; &amp; vbNewLine &amp; &quot;Заданы недопустимые значения параметров.&quot;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Case Else: xRes = &quot;Не удалось сохранить изменения DACL.&quot; &amp; vbNewLine &amp; &quot;Неизвестная ошибка.&quot;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;End Select</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&#39;------</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Else</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;xRes = &quot;Не удалось отключить наследование безопасности для папки &quot; &amp; UCase(strDir)</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;End If</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Else</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;xRes = &quot;Не найдена учётная запись объекта &quot; &amp; UCase(strDom &amp; &quot;\&quot; &amp; strSAN)</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;End If</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Set objCollection = Nothing</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Else</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;xRes = &quot;Список управления доступом (ACL) к заданному объекту пуст.&quot;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;End If</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;Else</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;xRes = &quot;Не удалось прочитать дескриптор безопасности объекта.&quot;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;End If</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;Set objSD = Nothing</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;Set objSecSettings = Nothing</div><div class="code_line">&nbsp;&nbsp; &nbsp;Else</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;xRes = &quot;Ошибка &quot; &amp; CStr(Err.Number) &amp; vbNewLine &amp; Err.Description</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;Err.Clear</div><div class="code_line">&nbsp;&nbsp; &nbsp;End If</div><div class="code_line">Else</div><div class="code_line">&nbsp;&nbsp; &nbsp;xRes = &quot;Ошибка &quot; &amp; CStr(Err.Number) &amp; vbNewLine &amp; Err.Description</div><div class="code_line">&nbsp;&nbsp; &nbsp;Err.Clear</div><div class="code_line">End If</div><div class="code_line">Set objWMI = Nothing</div><div class="code_line">On Error GoTo 0</div><div class="code_line">Modify_DACL = xRes</div><div class="code_line">End Function</div></ol></div></div></div></div>]]></description>
        <author>Dmitrii</author>
        <category>Windows</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=175639&amp;view=findpost&amp;p=2773007</guid>
        <pubDate>Wed, 08 Dec 2010 13:07:23 +0000</pubDate>
        <title>Полезные скрипты</title>
        <link>https://forum.sources.ru/index.php?showtopic=175639&amp;view=findpost&amp;p=2773007</link>
        <description><![CDATA[Dmitrii: <div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">&#39;********************************************************************************</div><div class="code_line">&#39;* Имя: Get_Pinters_List_in_AD.vbs &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;*</div><div class="code_line">&#39;* Язык: VBScript &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; *</div><div class="code_line">&#39;* Назначение: Создание списка всех опубликованных в Active Directory принтеров *</div><div class="code_line">&#39;* &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; путём запроса с помощью ADO. &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; *</div><div class="code_line">&#39;********************************************************************************</div><div class="code_line">Dim objRoot, objConnection, objCommand, objRSet</div><div class="code_line">Dim intNumRecords, strDomain, strLog, arrTemp, strLine, strTemp</div><div class="code_line">Dim objFS, objFile, objWShell</div><div class="code_line">Dim strTranslator, blnIsConsole</div><div class="code_line">&nbsp;</div><div class="code_line">Set objFS = CreateObject(&quot;Scripting.FileSystemObject&quot;)</div><div class="code_line">strTranslator = objFS.GetBaseName(WScript.FullName)</div><div class="code_line">If StrComp(strTranslator, &quot;cscript&quot;, vbTextCompare) = 0 Then</div><div class="code_line">&nbsp;&nbsp; &nbsp;blnIsConsole = True</div><div class="code_line">Else</div><div class="code_line">&nbsp;&nbsp; &nbsp;blnIsConsole = False</div><div class="code_line">End If</div><div class="code_line">strLog = &quot;Printers_List_in_AD.log&quot;</div><div class="code_line">Set objRoot = GetObject(&quot;LDAP://RootDSE&quot;)</div><div class="code_line">strDomain = objRoot.Get(&quot;DefaultNamingContext&quot;)</div><div class="code_line">Set objRoot = Nothing</div><div class="code_line">Set objConnection = CreateObject(&quot;ADODB.Connection&quot;)</div><div class="code_line">objConnection.Provider = &quot;ADsDSOObject&quot;</div><div class="code_line">objConnection.Open &quot;Active Directory Provider&quot;</div><div class="code_line">Set objCommand = CreateObject(&quot;ADODB.Command&quot;)</div><div class="code_line">Set objCommand.ActiveConnection = objConnection</div><div class="code_line">strAttributes = &quot;printerName,uNCName,portName,driverName,serverName,shortServerName,Location&quot;</div><div class="code_line">objCommand.CommandText = &quot;&#60;LDAP://&quot; &amp; strDomain &amp; &quot;&#62;;(objectCategory=printQueue);&quot; &amp; strAttributes &amp; &quot;;Subtree&quot;</div><div class="code_line">objCommand.Properties(&quot;Page Size&quot;) = 1000</div><div class="code_line">objCommand.Properties(&quot;Timeout&quot;) = 30</div><div class="code_line">On Error Resume Next</div><div class="code_line">Set objRSet = objCommand.Execute</div><div class="code_line">If Err.Number = 0 Then</div><div class="code_line">&nbsp;&nbsp; &nbsp;intNumRecords = objRSet.RecordCount</div><div class="code_line">&nbsp;&nbsp; &nbsp;If intNumRecords &#62; 0 Then</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;strLog = objFS.BuildPath(objFS.GetParentFolderName(WScript.ScriptFullName), strLog)</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;Set objFile = objFS.CreateTextFile(strLog, True)</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;If Err.Number = 0 Then</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;strLine = &quot;Обнаружено записей: &quot; &amp; intNumRecords &amp; vbNewLine &amp; &quot;===&quot;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;objFile.WriteLine strLine</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;If blnIsConsole Then WScript.Echo strLine</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;objRSet.MoveFirst</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Do Until objRSet.EOF</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;For i = 0 To objRSet.Fields.Count - 1</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;strTemp = vbNullString</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;If IsArray(objRSet.Fields(i)) Then</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;arrTemp = objRSet.Fields(i)</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;For j = 0 To UBound(arrTemp)</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;strTemp = strTemp &amp; arrTemp(j) &amp; &quot;;&quot;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;If Err.Number &#60;&#62; 0 Then Err.Clear</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Next</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Erase arrTemp</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Else</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;strTemp = objRSet.Fields(i).Value</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;If Err.Number &#60;&#62; 0 Then Err.Clear</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;End If</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;strLine = objRSet.Fields(i).Name &amp; &quot; = &quot; &amp; strTemp</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;objFile.WriteLine strLine</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;If blnIsConsole Then WScript.Echo strLine</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Next</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;objFile.WriteLine &quot;---&quot;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;If blnIsConsole Then WScript.Echo &quot;---&quot;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;objRSet.MoveNext</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Loop</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;objFile.Close</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Set objFile = Nothing</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;If blnIsConsole Then</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;WScript.Echo &quot;Путь к файлу отчёта: &quot; &amp; UCase(strLog)</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Else</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Set objWShell = CreateObject(&quot;WScript.Shell&quot;)</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;objWShell.Run &quot;notepad.exe &quot; &amp; strLog, 1</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Set objWShell = Nothing</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;End If</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;Else</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;WScript.Echo &quot;Ошибка создания файла отчёта: &quot; &amp; Err.Number &amp; vbNewLine &amp; Err.Description</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Err.Clear</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;End If</div><div class="code_line">&nbsp;&nbsp; &nbsp;Else</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;WScript.Echo &quot;Ничего не обнаружено.&quot;</div><div class="code_line">&nbsp;&nbsp; &nbsp;End If</div><div class="code_line">Else</div><div class="code_line">&nbsp;&nbsp; &nbsp;WScript.Echo &quot;Ошибка выполения запроса: &quot; &amp; Err.Number &amp; vbNewLine &amp; Err.Description</div><div class="code_line">&nbsp;&nbsp; &nbsp;Err.Clear</div><div class="code_line">End If</div><div class="code_line">Set objRSet = Nothing</div><div class="code_line">On Error GoTo 0</div><div class="code_line">Set objCommand = Nothing</div><div class="code_line">objConnection.Close</div><div class="code_line">Set objConnection = Nothing</div><div class="code_line">Set objFS = Nothing</div><div class="code_line">WScript.Quit 0</div></ol></div></div></div></div><br>
<br>
<span class="tag-color tag-color-named" data-value="gray" style="color: gray"><span class='tag-size' data-value='7' style='font-size:7pt;'>Сообщения были разделены в тему &quot;<a class='tag-url' href='http://forum.sources.ru/index.php?showtopic=324801' target='_blank'>Помогите написать скрипт</a>&quot;</span></span>]]></description>
        <author>Dmitrii</author>
        <category>Windows</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=175639&amp;view=findpost&amp;p=2691898</guid>
        <pubDate>Wed, 08 Sep 2010 11:24:54 +0000</pubDate>
        <title>Полезные скрипты</title>
        <link>https://forum.sources.ru/index.php?showtopic=175639&amp;view=findpost&amp;p=2691898</link>
        <description><![CDATA[Dmitrii: <div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">&#39;*************************************************************************************</div><div class="code_line">&#39;* Имя: Volumes_to_DiskDrives_Associator.vbs &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; *</div><div class="code_line">&#39;* Язык: VBScript &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;*</div><div class="code_line">&#39;* Назначение: Сопоставление логических томов, назначенных съёмным накопителям, &nbsp; &nbsp; &nbsp;*</div><div class="code_line">&#39;* &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; с физическими устройствами. &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; *</div><div class="code_line">&#39;* &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Типы съёмных накопителей, на работу с которыми ориентирован сценарий: *</div><div class="code_line">&#39;* &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Flash-диски, Flash-карты, ZIP-диски. &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;*</div><div class="code_line">&#39;*************************************************************************************</div><div class="code_line">&nbsp;</div><div class="code_line">Dim objWMI, objLogicalDisks, objLD</div><div class="code_line">Dim objPartitions, objPart, objDrives, objDrive</div><div class="code_line">Dim strComputer, strTemp</div><div class="code_line">&nbsp;</div><div class="code_line">strComputer = &quot;.&quot;</div><div class="code_line">Set objWMI = GetObject(&quot;winmgmts:{impersonationLevel=Impersonate}!\&quot; &amp; strComputer &amp; &quot;\root\cimv2&quot;)</div><div class="code_line">Set objLogicalDisks = objWMI.ExecQuery(&quot;SELECT * FROM Win32_LogicalDisk WHERE DriveType=2&quot;)</div><div class="code_line">For Each objLD In objLogicalDisks</div><div class="code_line">&nbsp;&nbsp; &nbsp; Set objPartitions = objWMI.ExecQuery(&quot;ASSOCIATORS OF {Win32_LogicalDisk.DeviceID=&quot;&quot;&quot; &amp; _</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;objLD.DeviceID &amp; _</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&quot;&quot;&quot;} WHERE AssocClass=Win32_LogicalDiskToPartition&quot;)</div><div class="code_line">&nbsp;&nbsp; &nbsp; For Each objPart In objPartitions</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Set objDrives = objWMI.ExecQuery(&quot;ASSOCIATORS OF {Win32_DiskPartition.DeviceID=&quot;&quot;&quot; &amp; _</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; objPart.DeviceID &amp; _</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &quot;&quot;&quot;} WHERE AssocClass=Win32_DiskDriveToDiskPartition&quot;)</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;For Each objDrive In objDrives</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; strTemp = strTemp &amp; objLD.DeviceID &amp; &quot; =&#62; &quot; &amp; objDrive.Caption &amp; _</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;&quot; (Диск &quot; &amp; objDrive.Index &amp; &quot;)&quot; &amp; vbNewLine</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Next</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Set objDrive = Nothing</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Set objDrives = Nothing</div><div class="code_line">&nbsp;&nbsp; &nbsp; Next</div><div class="code_line">&nbsp;&nbsp; &nbsp; Set objPart = Nothing</div><div class="code_line">&nbsp;&nbsp; &nbsp; Set objPartitions = Nothing</div><div class="code_line">Next</div><div class="code_line">Set objLD = Nothing</div><div class="code_line">Set objLogicalDisks = Nothing</div><div class="code_line">Set objWMI = Nothing</div><div class="code_line">If Len(strTemp) = 0 Then</div><div class="code_line">&nbsp;&nbsp; &nbsp;strTemp = &quot;Накопителей указанного типа не обнаружено.&quot;</div><div class="code_line">End If</div><div class="code_line">WScript.Echo strTemp</div><div class="code_line">WScript.Quit 0</div></ol></div></div></div></div>]]></description>
        <author>Dmitrii</author>
        <category>Windows</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=175639&amp;view=findpost&amp;p=2664014</guid>
        <pubDate>Sat, 07 Aug 2010 13:47:54 +0000</pubDate>
        <title>Полезные скрипты</title>
        <link>https://forum.sources.ru/index.php?showtopic=175639&amp;view=findpost&amp;p=2664014</link>
        <description><![CDATA[vladimir_02: <div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">&nbsp;&#39;************************************************************</div><div class="code_line">&#39;* Имя: Sendmail Lotus &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; * </div><div class="code_line">&#39;* Язык: VBScript &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;* </div><div class="code_line">&#39;* Назначение: Отправка почты через клиент Lotus Notes &nbsp; &nbsp; &nbsp; *</div><div class="code_line">&#39;* &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; с вложенным файлом с диалогом выбора файла &nbsp; &nbsp;*</div><div class="code_line">&nbsp;&#39;***********************************************************</div><div class="code_line">&nbsp;&nbsp; &nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp;On Error Goto 0: sendLNMail()</div><div class="code_line">&nbsp;&nbsp; &nbsp;Dim s</div><div class="code_line">&nbsp;&nbsp; &nbsp;Dim db</div><div class="code_line">&nbsp;&nbsp; &nbsp;Dim doc</div><div class="code_line">&nbsp;&nbsp; &nbsp;Dim rtitem</div><div class="code_line">&nbsp;&nbsp; &nbsp;Dim subj</div><div class="code_line">&nbsp;&nbsp; &nbsp;Dim bdy</div><div class="code_line">&nbsp;&nbsp; &nbsp;Dim recips(2)</div><div class="code_line">&nbsp;&nbsp; &nbsp;&#39;File System Object Decs</div><div class="code_line">&nbsp;&nbsp; &nbsp;Dim fs</div><div class="code_line">&nbsp;&nbsp; &nbsp;Dim fName</div><div class="code_line">&nbsp;&nbsp; &nbsp;Dim path</div><div class="code_line">&nbsp;&nbsp; &nbsp;Sub sendLNMail()</div><div class="code_line">&nbsp;&nbsp; &nbsp;On Error Resume Next</div><div class="code_line">&nbsp;&nbsp; &nbsp;&#39;///////////////////////////////////////</div><div class="code_line">&nbsp;&nbsp; &nbsp;&#39; &nbsp; &nbsp; ////////////////////////////////</div><div class="code_line">&nbsp;&nbsp; &nbsp;&#39;Begin Error/Input Routines</div><div class="code_line">&nbsp;&nbsp; &nbsp;&#39;Created by Steven Jacobs</div><div class="code_line">&nbsp;&nbsp; &nbsp;&#39;2004</div><div class="code_line">&nbsp;&nbsp; &nbsp;&#39;///////////////////////////////////////</div><div class="code_line">&nbsp;&nbsp; &nbsp;&#39; &nbsp; &nbsp; ////////////////////////////////</div><div class="code_line">&nbsp;&nbsp; &nbsp;&#39;Get subject...if no subject, exit sub</div><div class="code_line">&nbsp;&nbsp; &nbsp;&#39;subj = inputbox(&quot;Please enter a subject For your mail memo.&quot;,&quot;Email Subject Text&quot;)</div><div class="code_line">&nbsp;&nbsp; &nbsp;subj = &quot;Тема письма&quot; &#39; тут указываем тему пиьма</div><div class="code_line">&nbsp;&nbsp; &nbsp;if subj = &quot;&quot; Then</div><div class="code_line">&nbsp;&nbsp; &nbsp;MsgBox &quot;Введите тему&quot;</div><div class="code_line">&nbsp;&nbsp; &nbsp;Exit Sub</div><div class="code_line">&nbsp;&nbsp; &nbsp;End if</div><div class="code_line">&nbsp;&nbsp; &nbsp;&#39;Get body text...if no body text, exit s</div><div class="code_line">&nbsp;&nbsp; &nbsp;&#39; &nbsp; &nbsp; ub</div><div class="code_line">&nbsp;&nbsp; &nbsp;&#39;bdy = inputbox(&quot;Please enter text For your body mail memo.&quot;,&quot;Email Body Text&quot;)</div><div class="code_line">&nbsp;&nbsp; &nbsp;bdy = &quot;C уважением,&quot; &amp; chr (10) &amp; _ &#39; тут пишем текст пиьма</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &quot;Vladimir&quot; &amp; chr (10) &amp; _</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &quot;Пользователь форума Исходники.ру&quot; &amp; chr (10) &amp; _</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &quot;тел. (012345) 1-23-45&quot;</div><div class="code_line">&nbsp;&nbsp; &nbsp;if bdy = &quot;&quot; Then</div><div class="code_line">&nbsp;&nbsp; &nbsp;MsgBox &quot;Введите тест письма&quot;</div><div class="code_line">&nbsp;&nbsp; &nbsp;Exit Sub</div><div class="code_line">&nbsp;&nbsp; &nbsp;End if</div><div class="code_line">&nbsp;&nbsp; &nbsp;Set fs = createobject(&quot;Scripting.FileSystemObject&quot;)</div><div class="code_line">&nbsp;&nbsp; &nbsp;if fs Is Nothing Then</div><div class="code_line">&nbsp;&nbsp; &nbsp;MsgBox &quot;Could Not Create FileSystemObject&quot;,16,&quot;File System Object Error.&quot;</div><div class="code_line">&nbsp;&nbsp; &nbsp;endMe</div><div class="code_line">&nbsp;&nbsp; &nbsp;Exit Sub</div><div class="code_line">&nbsp;&nbsp; &nbsp;End if </div><div class="code_line">&nbsp;</div><div class="code_line">Set objDialog = CreateObject(&quot;UserAccounts.CommonDialog&quot;) </div><div class="code_line">&nbsp;</div><div class="code_line">objDialog.Filter = &quot;CSV файлы|*.csv|Zip архивы|*.zip|All Files|*.*&quot; &#39; форматы файлов для вложений</div><div class="code_line">objDialog.FilterIndex = 0</div><div class="code_line">objDialog.InitialDir = &quot;d:\&quot; &#39; путь по умолчанию в диалоге открытия файла</div><div class="code_line">intResult = objDialog.ShowOpen</div><div class="code_line">&nbsp;</div><div class="code_line">If intResult = 0 Then</div><div class="code_line">msgbox &quot;Файл не выбран!&quot;, vbExclamation, &quot;Внимание!&quot;</div><div class="code_line">&nbsp;&nbsp; &nbsp;Wscript.Quit</div><div class="code_line">Else</div><div class="code_line">&nbsp;&nbsp; &nbsp;&#39;Wscript.Echo objDialog.FileName</div><div class="code_line">fName = objDialog.FileName</div><div class="code_line">&nbsp;</div><div class="code_line">Set objFSO = CreateObject(&quot;Scripting.FileSystemObject&quot;)</div><div class="code_line">End If</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp;&#39;fName = inputbox(&quot;Please enter the full path For the file&quot;,&quot;Enter Full Path To File&quot;,&quot;C:\&quot;)</div><div class="code_line">&nbsp;&nbsp; &nbsp;&#39;if fName = &quot;&quot; Then</div><div class="code_line">&nbsp;&nbsp; &nbsp;&#39;MsgBox &quot;Empty Path&quot;</div><div class="code_line">&nbsp;&nbsp; &nbsp;&#39;endMe</div><div class="code_line">&nbsp;&nbsp; &nbsp;&#39;Exit Sub</div><div class="code_line">&nbsp;&nbsp; &nbsp;&#39;End if</div><div class="code_line">&nbsp;&nbsp; &nbsp;path = fs.GetAbsolutePathName(fName)</div><div class="code_line">&nbsp;&nbsp; &nbsp;if Not fs.FileExists(path) Then</div><div class="code_line">&nbsp;&nbsp; &nbsp;MsgBox &quot;Файл не существует в данной папке&quot;</div><div class="code_line">&nbsp;&nbsp; &nbsp;endMe</div><div class="code_line">&nbsp;&nbsp; &nbsp;End if </div><div class="code_line">&nbsp;&nbsp; &nbsp;&#39;///////////////////////////////////////</div><div class="code_line">&nbsp;&nbsp; &nbsp;&#39; &nbsp; &nbsp; ////////////////////////////////</div><div class="code_line">&nbsp;&nbsp; &nbsp;&#39;End Error/Input Routines</div><div class="code_line">&nbsp;&nbsp; &nbsp;&#39;///////////////////////////////////////</div><div class="code_line">&nbsp;&nbsp; &nbsp;&#39; &nbsp; &nbsp; ////////////////////////////////</div><div class="code_line">&nbsp;&nbsp; &nbsp;Set s = createobject(&quot;Notes.NotesSession&quot;)</div><div class="code_line">&nbsp;&nbsp; &nbsp;if s Is Nothing Then</div><div class="code_line">&nbsp;&nbsp; &nbsp;MsgBox &quot;Ошибка создания сессии Lotus. Проверьте запущен ли Lotus&quot;,16,&quot;Notes Session Error.&quot;</div><div class="code_line">&nbsp;&nbsp; &nbsp;endMe</div><div class="code_line">&nbsp;&nbsp; &nbsp;Exit Sub</div><div class="code_line">&nbsp;&nbsp; &nbsp;End if </div><div class="code_line">&nbsp;&nbsp; &nbsp;&#39;See if we can create the main object (s</div><div class="code_line">&nbsp;&nbsp; &nbsp;&#39; &nbsp; &nbsp; ession)</div><div class="code_line">&nbsp;&nbsp; &nbsp;if Err.Number &#60;&#62; 0 Then</div><div class="code_line">&nbsp;&nbsp; &nbsp;On Error Goto 0</div><div class="code_line">&nbsp;&nbsp; &nbsp;MsgBox &quot;Could Not create session &#39;Lotus Notes&#39; from object&quot;</div><div class="code_line">&nbsp;&nbsp; &nbsp;Exit Sub</div><div class="code_line">&nbsp;&nbsp; &nbsp;End if </div><div class="code_line">&nbsp;&nbsp; &nbsp;Set db = s.getdatabase(s.getenvironmentstring(&quot;MailServer&quot;,True),s.getenvironmentstring(&quot;Mailfile&quot;,true))</div><div class="code_line">&nbsp;&nbsp; &nbsp;&#39;See if we can a handle on the mail file</div><div class="code_line">&nbsp;&nbsp; &nbsp;&#39; &nbsp; &nbsp; </div><div class="code_line">&nbsp;&nbsp; &nbsp;if Err.Number &#60;&#62; 0 Then</div><div class="code_line">&nbsp;&nbsp; &nbsp;On Error Goto 0</div><div class="code_line">&nbsp;&nbsp; &nbsp;MsgBox &quot;Could find or Get a handle on the mail file&quot;</div><div class="code_line">&nbsp;&nbsp; &nbsp;Exit Sub</div><div class="code_line">&nbsp;&nbsp; &nbsp;End if</div><div class="code_line">&nbsp;&nbsp; &nbsp;Set doc = db.createdocument</div><div class="code_line">&nbsp;&nbsp; &nbsp;Doc.SAVEMESSAGEONSEND = True</div><div class="code_line">&nbsp;&nbsp; &nbsp;Set rtitem = doc.createrichtextitem(&quot;BODY&quot;)</div><div class="code_line">&nbsp;&nbsp; &nbsp;recips(1) = &quot;Email@mail.com&quot; &#39; указываем адрес получателя</div><div class="code_line">&nbsp;&nbsp; &nbsp;&#39;recips(2) - &quot;rrr@rrr.com&quot;</div><div class="code_line">&nbsp;&nbsp; &nbsp;With doc</div><div class="code_line">&nbsp;&nbsp; &nbsp;.form = &quot;Memo&quot;</div><div class="code_line">&nbsp;&nbsp; &nbsp;.subject = subj</div><div class="code_line">&nbsp;&nbsp; &nbsp;.sendto = &quot;Email@mail.com&quot; &#39; указываем адрес получателя</div><div class="code_line">&nbsp;&nbsp; &nbsp;&#39;.copyto = &quot;&#60;yyy&#62;@yyy.com&quot;</div><div class="code_line">&nbsp;&nbsp; &nbsp;.body = bdy</div><div class="code_line">&nbsp;&nbsp; &nbsp;.postdate = Date</div><div class="code_line">&nbsp;&nbsp; &nbsp;End With</div><div class="code_line">&nbsp;&nbsp; &nbsp;call rtitem.embedobject(1454,&quot;&quot;,fName)</div><div class="code_line">&nbsp;&nbsp; &nbsp;doc.visible = True</div><div class="code_line">&nbsp;&nbsp; &nbsp;doc.send False</div><div class="code_line">&nbsp;&nbsp; &nbsp;&#39;if we made it this far, alert the user </div><div class="code_line">&nbsp;&nbsp; &nbsp;&#39; &nbsp; &nbsp; the mail memo has been created and sent</div><div class="code_line">MsgBox &quot;Файл: &quot; &amp; fName &amp; &quot; успешно отправлен&quot; &amp; chr(10) &amp; _</div><div class="code_line">chr(13) &amp; &quot;Спасибо!&quot;,64,&quot;Message Sent Notification.&quot;</div><div class="code_line">&nbsp;&nbsp; &nbsp;endMe</div><div class="code_line">&nbsp;&nbsp; &nbsp;End Sub</div><div class="code_line">&nbsp;&nbsp; &nbsp;Sub endMe()</div><div class="code_line">&nbsp;&nbsp; &nbsp;&#39;clean objects/memory</div><div class="code_line">&nbsp;&nbsp; &nbsp;Set s = nothing</div><div class="code_line">&nbsp;&nbsp; &nbsp;Set db = nothing</div><div class="code_line">&nbsp;&nbsp; &nbsp;Set doc = nothing</div><div class="code_line">&nbsp;&nbsp; &nbsp;Set rtitem = nothing</div><div class="code_line">&nbsp;&nbsp; &nbsp;Set fs = nothing</div><div class="code_line">&nbsp;&nbsp; &nbsp;End Sub</div></ol></div></div></div></div><br>
для работы этого скрипта (вернее для диалога выбора файла) нужна зарегистрированная <a class='tag-url' href='http://letitbit.net/download/34468.34ac3579b735b7bbfd91e7ffc6d8f1792/reg_comdlg32.exe.html' target='_blank'>comdlg32.ocx</a><br>
Как переделать этот код, чтобы можно было выбрать для вложения и отправки несколько файлов??<br>
и еще... есть такая задача: приходят с одного адреса письма с вложениями (два архива 11.zip и 14.zip), нужно их открепить от письма (извлечь) в папку на диск (нпар. c:&#092;Inbox&#092;). Потом эти два архива распаковать и несколько извлеченных файлов отпраить по другим адресам...]]></description>
        <author>vladimir_02</author>
        <category>Windows</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=175639&amp;view=findpost&amp;p=2659162</guid>
        <pubDate>Sun, 01 Aug 2010 18:54:26 +0000</pubDate>
        <title>Полезные скрипты</title>
        <link>https://forum.sources.ru/index.php?showtopic=175639&amp;view=findpost&amp;p=2659162</link>
        <description><![CDATA[^D^ima: Доброго времени суток. <br>
<br>
Нет ли у кого скрипта для установки <strong class='tag-b'>скринсейвера</strong>?]]></description>
        <author>^D^ima</author>
        <category>Windows</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=175639&amp;view=findpost&amp;p=2650498</guid>
        <pubDate>Fri, 23 Jul 2010 08:48:58 +0000</pubDate>
        <title>Полезные скрипты</title>
        <link>https://forum.sources.ru/index.php?showtopic=175639&amp;view=findpost&amp;p=2650498</link>
        <description><![CDATA[grade86: Господа, подсобите скрипт, чтобы прикрутить в GPO, для автозапуска приложения с шары в домене один раз на каждом ПК. И чтобы не выдавал сообщение &quot;не удается проверить издателя&quot; (хотя если шара в домене и путь netbios, то вроде не должна)]]></description>
        <author>grade86</author>
        <category>Windows</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=175639&amp;view=findpost&amp;p=2598397</guid>
        <pubDate>Wed, 19 May 2010 09:53:35 +0000</pubDate>
        <title>Полезные скрипты</title>
        <link>https://forum.sources.ru/index.php?showtopic=175639&amp;view=findpost&amp;p=2598397</link>
        <description><![CDATA[temp_user: O&#39;Reilly - Active Directory Cookbook:<br> <br>8.8.1 Problem<br>You want to find inactive computer accounts in a domain.<br> <br>8.8.2 Solution<br> <br> These solutions only apply to Windows-based machines. Other types of machines (e.g., Unix) that have accounts in Active Directory may not update their login timestamps or passwords, which are used to determine inactivity.<br> <br>8.8.2.1 Using a command-line interface<br>The following query will locate all inactive computers in the current forest:<br> <br>&gt; dsquery computer forestroot -inactive &lt;NumWeeks&gt;<br>You can also use domainroot in combination with the -d option to query a specific domain:<br> <br>&gt; dsquery computer domainroot -d &lt;DomainName&gt; -inactive &lt;NumWeeks&gt;<br>or you can target your query at a specific container:<br> <br>&gt; dsquery computer ou=MyComputers,dc=rallencorp,dc=com -inactive &lt;NumWeeks&gt;<br> <br>This can only be run against a Windows Server 2003 domain functional level or higher domain. <br><br><br>2Moderators: Снесите плз треды о определении &quot;старых&quot; учетных записях в отдельную тему.]]></description>
        <author>temp_user</author>
        <category>Windows</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=175639&amp;view=findpost&amp;p=2598382</guid>
        <pubDate>Wed, 19 May 2010 09:36:16 +0000</pubDate>
        <title>Полезные скрипты</title>
        <link>https://forum.sources.ru/index.php?showtopic=175639&amp;view=findpost&amp;p=2598382</link>
        <description><![CDATA[blackangel: Всем привет&#33; В AD есть список компов, которые когда-либо были подключены к домену. Хотелось бы выяснить какие из них уже давно не существуют в сети путем просмотра даты последней регистрации в домене. Как это сделать через VBScript?ОЧень нужно(( Спасибо большое за ответ&#33;]]></description>
        <author>blackangel</author>
        <category>Windows</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=175639&amp;view=findpost&amp;p=2570176</guid>
        <pubDate>Fri, 16 Apr 2010 09:36:31 +0000</pubDate>
        <title>Полезные скрипты</title>
        <link>https://forum.sources.ru/index.php?showtopic=175639&amp;view=findpost&amp;p=2570176</link>
        <description><![CDATA[Dmitrii: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=175639&view=findpost&p=2568879'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Mazepa &#064; <time class="tag-quote__quoted-time" datetime="2010-04-15T06:30:04+00:00">15.04.10, 06:30</time></span><div class='quote '>А возможно ли с помощью скрипта принудительно завершить все клиентские подключения к определенной шаре?</div></div>Нет.]]></description>
        <author>Dmitrii</author>
        <category>Windows</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=175639&amp;view=findpost&amp;p=2568879</guid>
        <pubDate>Thu, 15 Apr 2010 06:30:04 +0000</pubDate>
        <title>Полезные скрипты</title>
        <link>https://forum.sources.ru/index.php?showtopic=175639&amp;view=findpost&amp;p=2568879</link>
        <description><![CDATA[Mazepa: Здравствуйте.<br>А возможно ли с помощью скрипта принудительно завершить все клиентские подключения к определенной шаре? <br>Все классы WMI пересмотрел, ничего подходящего :(]]></description>
        <author>Mazepa</author>
        <category>Windows</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=175639&amp;view=findpost&amp;p=2546546</guid>
        <pubDate>Thu, 25 Mar 2010 09:28:19 +0000</pubDate>
        <title>Полезные скрипты</title>
        <link>https://forum.sources.ru/index.php?showtopic=175639&amp;view=findpost&amp;p=2546546</link>
        <description><![CDATA[agem: Реализация возможности просмотра подключений флешек в домене.<br>
Создаем файл usb.mof<br>
<br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">#pragma namespace (&quot;\\.\root\subscription&quot;)</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;</div><div class="code_line">instance of ActiveScriptEventConsumer as $CONSUMER</div><div class="code_line">&nbsp;</div><div class="code_line">{</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp;Name = &quot;MyStandardConsumer&quot;;</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp;KillTimeout = 300;</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp;ScriptingEngine = &quot;VBScript&quot;;</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp;ScriptFileName = &quot;\\computername\folder\usb.vbs&quot;; &nbsp; &nbsp;//путь к скрипту для события &quot;появился съемный диск&quot;</div><div class="code_line">&nbsp;</div><div class="code_line">};</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;</div><div class="code_line">instance of __EventFilter as $FILTER</div><div class="code_line">&nbsp;</div><div class="code_line">{</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp;Name = &quot;MyRemDevFilter&quot;; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp;Query = &quot;SELECT * FROM __InstanceCreationEvent WITHIN 5 WHERE TargetInstance ISA &quot;</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;&quot;\&quot;Win32_LogicalDisk\&quot; AND TargetInstance.DriveType = 2&quot; ;</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp;QueryLanguage = &quot;WQL&quot;; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp;EventNamespace = &quot;root\CIMv2&quot;; &nbsp; </div><div class="code_line">&nbsp;</div><div class="code_line">};</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;</div><div class="code_line">instance of __FilterToConsumerBinding</div><div class="code_line">&nbsp;</div><div class="code_line">{</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp;Consumer = $CONSUMER;</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp;Filter = $FILTER;</div><div class="code_line">&nbsp;</div><div class="code_line">};</div></ol></div></div></div></div><br>
<br>
файл usb.vbs<br>
<br>
<br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">Dim objFSO, objFile, WshNetwork</div><div class="code_line">&nbsp;</div><div class="code_line">Set objFSO = CreateObject (&quot;Scripting.FileSystemObject&quot;)</div><div class="code_line">Set objFile = objFSO.OpenTextFile (&quot;\computername\folder\Scriptlog.txt&quot;, 8, true) &nbsp;//путь к файлу, куда пишутся логи</div><div class="code_line">Set WshNetwork = CreateObject(&quot;WScript.Network&quot;)</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;</div><div class="code_line">objFile.WriteLine &quot;Time: &quot; &amp; Now &amp; &quot;; Entry made by ASEC&quot;</div><div class="code_line">objFile.WriteLine &quot;Script Started for USB Drive: &quot; &amp; TargetEvent.TargetInstance.Caption</div><div class="code_line">objFile.Writeline &quot;Sender: &quot; &amp; WshNetwork.ComputerName</div><div class="code_line">objFile.Writeline &quot;&quot;</div><div class="code_line">&nbsp;</div><div class="code_line">objFile.Close</div></ol></div></div></div></div><br>
<br>
после чего запускаем usb.mof<br>
<br>
mofcomp usb.mof Для удаленного запуска используем &quot;назначенные задания&quot;<br>
<br>
Работает даже после перезагрузки компьютера<br>
<br>
<br>
Для отключения возможности запускаем файлик delete.vbs<br>
<br>
<br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">On Error Resume Next</div><div class="code_line">&nbsp;</div><div class="code_line">Set objWIMService = GetObject(&quot;winmgmts:\.\root\subscription&quot;)</div><div class="code_line">&nbsp;</div><div class="code_line">Set objList = objWIMService.ExecQuery(&quot;references of { EventFilter.Name=&#39;MyStandardConsumer&#39;}&quot;)</div><div class="code_line">&nbsp;</div><div class="code_line">For each objInst in objList</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp;objInst.Delete</div><div class="code_line">Next</div><div class="code_line">&nbsp;</div><div class="code_line">Set objList = objWIMService.ExecQuery (&quot;references of {NTEventLogEventConsumer.Name=&#39;MyStandardConsumer&#39;}&quot;)</div><div class="code_line">&nbsp;</div><div class="code_line">For each objInst in objList</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp;objInst.Delete</div><div class="code_line">&nbsp;</div><div class="code_line">Next</div><div class="code_line">&nbsp;</div><div class="code_line">Set objSTDConsumerInst = GetObject(&quot;winmgmts:\.\root\subscription:NTEventLogEventConsumer=&#39;MyStandardConsumer&#39;&quot;)</div><div class="code_line">&nbsp;</div><div class="code_line">objSTDConsumerInst.Delete</div><div class="code_line">&nbsp;</div><div class="code_line">Set objEventFltInst = GetObject(&quot;winmgmts:\.\root\subscription: EventFilter=&#39;MyMonitoring&#39;&quot;)</div><div class="code_line">&nbsp;</div><div class="code_line">objEventFltInst.Delete</div></ol></div></div></div></div>]]></description>
        <author>agem</author>
        <category>Windows</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=175639&amp;view=findpost&amp;p=2544813</guid>
        <pubDate>Wed, 24 Mar 2010 08:22:06 +0000</pubDate>
        <title>Полезные скрипты</title>
        <link>https://forum.sources.ru/index.php?showtopic=175639&amp;view=findpost&amp;p=2544813</link>
        <description><![CDATA[Dmitrii: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=175639&view=findpost&p=2539578'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Kevin&#045;Nash &#064; <time class="tag-quote__quoted-time" datetime="2010-03-19T10:26:14+00:00">19.03.10, 10:26</time></span><div class='quote '>... с рабочей станции администратора инициировать локальный вход на группе компьютеров(имя-пароль пользователя известны)...</div></div>Стандартными средствами сценариев (в том числе и с помощью WMI) этого сделать нельзя.]]></description>
        <author>Dmitrii</author>
        <category>Windows</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=175639&amp;view=findpost&amp;p=2539578</guid>
        <pubDate>Fri, 19 Mar 2010 10:26:14 +0000</pubDate>
        <title>Полезные скрипты</title>
        <link>https://forum.sources.ru/index.php?showtopic=175639&amp;view=findpost&amp;p=2539578</link>
        <description><![CDATA[Kevin-Nash: Доброго времени суток&#33;<br>Хочу обратиться к вам за советом или помощью - <br>С WMI еще дела иметь не приходилось, опыта, соответственно нет.<br><br>Задача следующая:<br>Есть группа компьютеров с Windows XP Professional SP3, объединенных в одноранговую сеть и распределенных по территории компании. Есть &quot;рабочая станция администратора&quot;. Для компьютеров существует некая задача распределенных вычислений. Нужно: с рабочей станции администратора инициировать локальный вход на группе компьютеров(имя-пароль пользователя известны) и запустить на них некое приложение.<br><br>Возможно ли сделать такое средствами WMI и в какую сторону копать?]]></description>
        <author>Kevin-Nash</author>
        <category>Windows</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=175639&amp;view=findpost&amp;p=2520412</guid>
        <pubDate>Tue, 02 Mar 2010 06:29:43 +0000</pubDate>
        <title>Полезные скрипты</title>
        <link>https://forum.sources.ru/index.php?showtopic=175639&amp;view=findpost&amp;p=2520412</link>
        <description><![CDATA[Dmitrii: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=175639&view=findpost&p=2519340'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>blackangel &#064; <time class="tag-quote__quoted-time" datetime="2010-03-01T10:43:24+00:00">01.03.10, 10:43</time></span><div class='quote '>... как запустить два процесса параллельно? ... есть асинхронные и полусинхронные вызовы, но ка реализовать не знаю...</div></div>И из запускаемых процессов, и из их откликов будут выстраиваться очереди, хотим мы того или не хотим. Но так как отклики могут приходить асинхронно, то и обрабатывать их можно в асинхронном режиме. Использовать для этого можно механизмы WMI.<br>
Поищите материал по ключам: <strong class='tag-b'>SWbemSink</strong>, <strong class='tag-b'>ExecQueryAsync</strong>, <strong class='tag-b'>Sink_OnObjectReady</strong> (более деятельно сейчас помочь Вам ничем не могу).]]></description>
        <author>Dmitrii</author>
        <category>Windows</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=175639&amp;view=findpost&amp;p=2519927</guid>
        <pubDate>Mon, 01 Mar 2010 15:35:53 +0000</pubDate>
        <title>Полезные скрипты</title>
        <link>https://forum.sources.ru/index.php?showtopic=175639&amp;view=findpost&amp;p=2519927</link>
        <description><![CDATA[-=CAP=-: <strong class='tag-b'>blackangel</strong>, попробуй написать еще один скрипт, который будет вызывать твой скрипт с параметром CompName столько раз, на сколько компов надо проинсталить. Только при вызове твоего скрипта не ждать его завершения. В результате ты получишь много окошек с результатами выполнения :)]]></description>
        <author>-=CAP=-</author>
        <category>Windows</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=175639&amp;view=findpost&amp;p=2519889</guid>
        <pubDate>Mon, 01 Mar 2010 15:07:49 +0000</pubDate>
        <title>Полезные скрипты</title>
        <link>https://forum.sources.ru/index.php?showtopic=175639&amp;view=findpost&amp;p=2519889</link>
        <description><![CDATA[blackangel: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=175639&view=findpost&p=2519746'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Akina &#064; <time class="tag-quote__quoted-time" datetime="2010-03-01T13:47:21+00:00">01.03.10, 13:47</time></span><div class='quote '>Ммм... WaitForSingleObject/WaitForSingleObjectEx... но вот как это в скрипте - навскидку не сообразится что-то.</div></div><br>
эххх:(( буду продолжать ломать голову.]]></description>
        <author>blackangel</author>
        <category>Windows</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=175639&amp;view=findpost&amp;p=2519746</guid>
        <pubDate>Mon, 01 Mar 2010 13:47:21 +0000</pubDate>
        <title>Полезные скрипты</title>
        <link>https://forum.sources.ru/index.php?showtopic=175639&amp;view=findpost&amp;p=2519746</link>
        <description><![CDATA[Akina: Ммм... WaitForSingleObject/WaitForSingleObjectEx... но вот как это в скрипте - навскидку не сообразится что-то.]]></description>
        <author>Akina</author>
        <category>Windows</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=175639&amp;view=findpost&amp;p=2519340</guid>
        <pubDate>Mon, 01 Mar 2010 10:43:24 +0000</pubDate>
        <title>Полезные скрипты</title>
        <link>https://forum.sources.ru/index.php?showtopic=175639&amp;view=findpost&amp;p=2519340</link>
        <description><![CDATA[blackangel: Подскажите пожалуйста, как запустить два процесса параллельно? А именно нужно вот что:<br>
Устанавливаю апдейты для Винды на удаленной машине след образом<br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">RetCode = WshShell.Run(&quot;d:\psexec.exe \comp1 -s \server\enu\windowsXP-KB957097-x86.exe /quiet /norestart&quot;, 1, True)</div><div class="code_line">MsgBox &quot;Обновление завершено! Код возврата - &quot; &amp; RetCode</div></ol></div></div></div></div><br>
<br>
В первой строке происходит обновление, а затем, когда обновление закончится выводится сообщение с кодом возврата(успешно выполнена установка или нет). Таким образом можно ПООЧЕРЕДНО устанавливать на все компы организации нужное обновление...<br>
Господа&#33; Как запустить эти процессы параллельно на нескольких компьютерах и от каждого процесса получить код возврата?? Знаю, что есть асинхронные и полусинхронные вызовы, но ка реализовать не знаю((( Или может есть другие способы? Помогите плз..]]></description>
        <author>blackangel</author>
        <category>Windows</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=175639&amp;view=findpost&amp;p=2510101</guid>
        <pubDate>Fri, 19 Feb 2010 13:09:00 +0000</pubDate>
        <title>Полезные скрипты</title>
        <link>https://forum.sources.ru/index.php?showtopic=175639&amp;view=findpost&amp;p=2510101</link>
        <description><![CDATA[arr1val: Подскажите как изменить скрипт приведенный выше по теме:<br>
<br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">strComputer = &quot;.&quot;</div><div class="code_line">Set objWMIService = GetObject(&quot;winmgmts:\&quot; &amp; strComputer &amp; &quot;\root\cimv2&quot;)</div><div class="code_line">Set colNetAdapters = objWMIService.ExecQuery (&quot;Select * from Win32_NetworkAdapterConfiguration where IPEnabled=TRUE and DHCPEnabled=TRUE&quot;)</div><div class="code_line">&nbsp;</div><div class="code_line">For Each objNetAdapter in colNetAdapters</div><div class="code_line">&nbsp;&nbsp;For Each strAddress in objNetAdapter.IPAddress</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;arrOctets = Split(strAddress, &quot;.&quot;)</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;If arrOctets(0) and arrOctets(1) Then</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;strNewAddress = arroctets(0) &amp; &quot;.&quot; &amp; arroctets(1) &amp; &quot;.&quot; &amp; arrOctets(2) &amp; &quot;.&quot; &amp; &quot;211&quot; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;arrIPAddress = Array(strNewAddress)</div><div class="code_line">&nbsp;&nbsp; &nbsp;strSubnetMask = objNetAdapter.IPSubnet</div><div class="code_line">&nbsp;&nbsp; &nbsp;strGateway = objNetAdapter.DefaultIPGateway</div><div class="code_line">&nbsp;&nbsp; &nbsp;strGatewayMetric = objNetAdapter.GatewayCostMetric</div><div class="code_line">&nbsp;&nbsp; &nbsp;arrDNSServers = objNetAdapter.DNSServerSearchOrder</div><div class="code_line">&nbsp;&nbsp; &nbsp;errEnable = objNetAdapter.EnableStatic(arrIPAddress, strSubnetMask)</div><div class="code_line">&nbsp;&nbsp; &nbsp;errGateways = objNetAdapter.SetGateways(strGateway, strGatewaymetric)</div><div class="code_line">&nbsp;&nbsp; &nbsp;objNetAdapter.SetDNSServerSearchOrder(arrDNSServers)</div><div class="code_line">&nbsp;&nbsp;End If</div><div class="code_line">&nbsp;Next</div><div class="code_line">Next</div></ol></div></div></div></div><br>
<br>
чтобы он менял все (маску, dns, wins, gateway), кроме айпишника, который и так уже статично задан. Заранее большое спасибо.<br>
<br>
----------------------------------------<br>
Пришли сами к такому решению:<br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">strComputer = &quot;.&quot;</div><div class="code_line">Set objWMIService = GetObject(&quot;winmgmts:&quot; _</div><div class="code_line">&nbsp;&nbsp; &nbsp;&amp; &quot;{impersonationLevel=impersonate}!\&quot; &amp; strComputer &amp; &quot;\root\cimv2&quot;)</div><div class="code_line">&nbsp;</div><div class="code_line">Set colNetAdapters = objWMIService.ExecQuery _</div><div class="code_line">&nbsp;&nbsp; &nbsp;(&quot;Select * from Win32_NetworkAdapterConfiguration where IPEnabled=TRUE&quot;)</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;</div><div class="code_line">strSubnetMask = &quot;255.255.248.0&quot;</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;</div><div class="code_line">For Each objNetAdapter in colNetAdapters</div><div class="code_line">&nbsp;</div><div class="code_line">strIPAddress = CStr(objNetAdapter.IPAddress(0))</div><div class="code_line">&nbsp;</div><div class="code_line">&nbsp;errEnable = objNetAdapter.EnableStatic(Array(strIPAddress), Array(strSubnetMask))</div><div class="code_line">&nbsp;</div><div class="code_line">Next</div></ol></div></div></div></div>]]></description>
        <author>arr1val</author>
        <category>Windows</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=175639&amp;view=findpost&amp;p=2496931</guid>
        <pubDate>Fri, 05 Feb 2010 13:57:05 +0000</pubDate>
        <title>Полезные скрипты</title>
        <link>https://forum.sources.ru/index.php?showtopic=175639&amp;view=findpost&amp;p=2496931</link>
        <description><![CDATA[Dmitrii: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=175639&view=findpost&p=2496154'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>pride.psy &#064; <time class="tag-quote__quoted-time" datetime="2010-02-04T17:27:10+00:00">04.02.10, 17:27</time></span><div class='quote '>нужен скрипт, перемещающий отключенных ... пользователей и компьютеров в AD в отдельное подразделение</div></div>Пример сценария для перемещения отключенных &quot;учёток&quot; пользователей и компьютеров в отдельное подразделение (предполагается, что оно уже существует в AD):<br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">Public objTargetOU</div><div class="code_line">Public strUsers, strComputers, strTargetOU</div><div class="code_line">Public Const strNoMoved = &quot;krbtgt;Гость&quot; &#39;Пример списка отключенных &quot;учёток&quot;, которые не надо перемещать</div><div class="code_line">Dim objRoot, objContainer, objItem</div><div class="code_line">Dim objFS, objFile</div><div class="code_line">Dim strDomain, strTemp</div><div class="code_line">Const strFile = &quot;C:\Disabled_Users_and_Computers.txt&quot;</div><div class="code_line">&nbsp;</div><div class="code_line">strTargetOU = &quot;LDAP://OU=Отключенные и неиспользуемые,&quot;</div><div class="code_line">Set objRoot = GetObject(&quot;LDAP://rootDSE&quot;)</div><div class="code_line">strDomain = objRoot.Get(&quot;defaultNamingContext&quot;)</div><div class="code_line">Set objContainer = GetObject(&quot;LDAP://&quot; &amp; strDomain)</div><div class="code_line">strTargetOU = strTargetOU &amp; strDomain</div><div class="code_line">Set objRoot = Nothing</div><div class="code_line">Set objTargetOU = GetObject(strTargetOU)</div><div class="code_line">For Each objItem In objContainer</div><div class="code_line">&nbsp;&nbsp; &nbsp;strTemp = objItem.Class</div><div class="code_line">&nbsp;&nbsp; &nbsp;If StrComp(strTemp, &quot;organizationalUnit&quot;, vbTextCompare) = 0 Or _</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;StrComp(strTemp, &quot;container&quot;, vbTextCompare) = 0 &nbsp;Then</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;Call Get_Members(objItem)</div><div class="code_line">&nbsp;&nbsp; &nbsp;End If</div><div class="code_line">Next</div><div class="code_line">Set objItem = Nothing</div><div class="code_line">Set objContainer = Nothing</div><div class="code_line">Set objFS = CreateObject(&quot;Scripting.FileSystemObject&quot;)</div><div class="code_line">Set objFile = objFS.CreateTextFile(strFile, True)</div><div class="code_line">objFile.WriteLine strUsers &amp; vbNewLine &amp; &quot;=====&quot; &amp; vbNewLine &amp; vbNewLine &amp; strComputers</div><div class="code_line">objFile.Close</div><div class="code_line">Set objFile = Nothing</div><div class="code_line">Set objFS = Nothing</div><div class="code_line">WScript.Echo &quot;Готово.&quot;</div><div class="code_line">WScript.Quit 0</div><div class="code_line">&#39;===</div><div class="code_line">Function Get_Members(objOU)</div><div class="code_line">Dim objItem, objIADs, strTemp</div><div class="code_line">If StrComp(objOU.ADsPath, strTargetOU, vbTextCompare) &#60;&#62; 0 Then</div><div class="code_line">&nbsp;&nbsp; &nbsp;For Each objItem In objOU</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;strTemp = objItem.Class</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;If StrComp(strTemp, &quot;computer&quot;, vbTextCompare) = 0 Then</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Set objIADs = GetObject(objItem.ADsPath)</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;If objIADs.AccountDisabled Then</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;strComputers = strComputers &amp; objIADs.ADsPath &amp; vbNewLine</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;objTargetOU.MoveHere objIADs.ADsPath, vbNullString</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;End If</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Set objIADs = Nothing</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;Else</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;If StrComp(strTemp, &quot;user&quot;, vbTextCompare) = 0 Then</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;If Instr(1, strNoMoved, objItem.cn, vbTextCompare) = 0 Then</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Set objIADs = GetObject(objItem.ADsPath)</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;If objIADs.AccountDisabled Then</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;strUsers = strUsers &amp; objIADs.ADsPath &amp; vbNewLine</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;objTargetOU.MoveHere objIADs.ADsPath, vbNullString</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;End If</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Set objIADs = Nothing</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;End If</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Else</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;If StrComp(strTemp, &quot;organizationalUnit&quot;, vbTextCompare) = 0 Or _</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;StrComp(strTemp, &quot;container&quot;, vbTextCompare) = 0 Then</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;Call Get_Members(objItem)</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;End If</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;End If</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;End If</div><div class="code_line">&nbsp;&nbsp; &nbsp;Next</div><div class="code_line">&nbsp;&nbsp; &nbsp;Set objItem = Nothing</div><div class="code_line">End If</div><div class="code_line">End Function</div></ol></div></div></div></div><br>
<br>
Для определения &quot;учёток&quot;, не проявляющих активности в течение заданного времени, вычисляйте разницу между текущей датой и значением атрибута <span class="tag-color tag-color-named" data-value="blue" style="color: blue"><strong class='tag-b'>LastLogin</strong></span> объекта типа &quot;Пользователь&quot;.<br>
Учтите, что это не реплицируемый атрибут, поэтому в мультиконтроллерном домене надо опросить все контроллеры и выбрать наиболее &quot;свежую&quot; дату из полученных.]]></description>
        <author>Dmitrii</author>
        <category>Windows</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=175639&amp;view=findpost&amp;p=2496154</guid>
        <pubDate>Thu, 04 Feb 2010 17:27:10 +0000</pubDate>
        <title>Полезные скрипты</title>
        <link>https://forum.sources.ru/index.php?showtopic=175639&amp;view=findpost&amp;p=2496154</link>
        <description><![CDATA[pride.psy: Доброго времени суток&#33;<br>Ребят, выручите, нужен скрипт, перемещающий отключенных или неактивных в течении определенного количества дней пользователей и компьютеров в AD в отдельное подразделение.<br><br>Спасиб заранее.]]></description>
        <author>pride.psy</author>
        <category>Windows</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=175639&amp;view=findpost&amp;p=2475212</guid>
        <pubDate>Fri, 15 Jan 2010 15:07:49 +0000</pubDate>
        <title>Полезные скрипты</title>
        <link>https://forum.sources.ru/index.php?showtopic=175639&amp;view=findpost&amp;p=2475212</link>
        <description><![CDATA[AlexCray: Доброго дня&#33; Ни у кого не завалялось скрипта, копирующего некую иерархию каталогов, с файлами, по сети с сохранением прав доступа пользователей ActiveDirectory?]]></description>
        <author>AlexCray</author>
        <category>Windows</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=175639&amp;view=findpost&amp;p=2456494</guid>
        <pubDate>Tue, 22 Dec 2009 11:42:45 +0000</pubDate>
        <title>Полезные скрипты</title>
        <link>https://forum.sources.ru/index.php?showtopic=175639&amp;view=findpost&amp;p=2456494</link>
        <description><![CDATA[Dmitrii: <strong class='tag-b'>Alexsz</strong>, попробуйте так:<br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">Dim objFS, objItem, objFile, objDict, arrFolders, strTemp</div><div class="code_line">Dim objRoot, strDomain</div><div class="code_line">Dim objConnection, objCommand, objRSet, strCmdText</div><div class="code_line">Const strResFile = &quot;C:\Absent.txt&quot;</div><div class="code_line">&nbsp;</div><div class="code_line">Set objDict = CreateObject(&quot;Scripting.Dictionary&quot;)</div><div class="code_line">objDict.CompareMode = 1</div><div class="code_line">&#39;=== Не забудьте правильно задать содержимое массива arrFolders</div><div class="code_line">arrFolders = Array(&quot;x:\usrdata&quot;, &quot;y:\userdata&quot;, &quot;z:\roaming&quot;)</div><div class="code_line">&#39;===</div><div class="code_line">Set objFS = CreateObject(&quot;Scripting.FileSystemObject&quot;)</div><div class="code_line">For i = 0 To UBound(arrFolders)</div><div class="code_line">&nbsp;&nbsp; &nbsp;If objFS.FolderExists(arrFolders(i)) Then</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;For Each objItem In objFS.GetFolder(arrFolders(i)).SubFolders</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;strTemp = objItem.Name</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;If Not objDict.Exists(strTemp) Then</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;objDict.Add strTemp, False</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;End If</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;Next</div><div class="code_line">&nbsp;&nbsp; &nbsp;End If</div><div class="code_line">Next</div><div class="code_line">If objDict.Count &#62; 0 Then</div><div class="code_line">&nbsp;&nbsp; &nbsp;Set objRoot = GetObject(&quot;LDAP://RootDSE&quot;)</div><div class="code_line">&nbsp;&nbsp; &nbsp;strDomain = objRoot.Get(&quot;DefaultNamingContext&quot;)</div><div class="code_line">&nbsp;&nbsp; &nbsp;Set objRoot = Nothing</div><div class="code_line">&nbsp;&nbsp; &nbsp;strCmdText = &quot;&#60;LDAP://&quot; &amp; strDomain &amp; &quot;&#62;;(&amp;(objectCategory=Person)(objectClass=User));userPrincipalName;Subtree&quot;</div><div class="code_line">&nbsp;&nbsp; &nbsp;Set objConnection = CreateObject(&quot;ADODB.Connection&quot;)</div><div class="code_line">&nbsp;&nbsp; &nbsp;objConnection.Provider = &quot;ADsDSOObject&quot;</div><div class="code_line">&nbsp;&nbsp; &nbsp;objConnection.Open &quot;Active Directory Provider&quot;</div><div class="code_line">&nbsp;&nbsp; &nbsp;Set objCommand = CreateObject(&quot;ADODB.Command&quot;)</div><div class="code_line">&nbsp;&nbsp; &nbsp;Set objCommand.ActiveConnection = objConnection</div><div class="code_line">&nbsp;&nbsp; &nbsp;objCommand.Properties(&quot;Page Size&quot;) = 1000</div><div class="code_line">&nbsp;&nbsp; &nbsp;objCommand.Properties(&quot;Timeout&quot;) = 30</div><div class="code_line">&nbsp;&nbsp; &nbsp;objCommand.CommandText = strCmdText</div><div class="code_line">&nbsp;&nbsp; &nbsp;Set objRSet = objCommand.Execute</div><div class="code_line">&nbsp;&nbsp; &nbsp;objRSet.MoveFirst</div><div class="code_line">&nbsp;&nbsp; &nbsp;Do Until objRSet.EOF</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;strTemp = objRSet.Fields(0).Value</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;If objDict.Exists(strTemp) Then</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;objDict.Item(strTemp) = True</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;End If</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;objRSet.MoveNext</div><div class="code_line">&nbsp;&nbsp; &nbsp;Loop</div><div class="code_line">&nbsp;&nbsp; &nbsp;Set objRSet = Nothing</div><div class="code_line">&nbsp;&nbsp; &nbsp;Set objCommand = Nothing</div><div class="code_line">&nbsp;&nbsp; &nbsp;Set objConnection = Nothing</div><div class="code_line">&nbsp;&nbsp; &nbsp;strTemp = vbNullString</div><div class="code_line">&nbsp;&nbsp; &nbsp;For Each objItem In objDict.Keys</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;If Not objDict.Item(objItem) Then</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;strTemp = strTemp &amp; objItem &amp; vbNewLine</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;End If</div><div class="code_line">&nbsp;&nbsp; &nbsp;Next</div><div class="code_line">&nbsp;&nbsp; &nbsp;Set objFile = objFS.CreateTextFile(strResFile, True)</div><div class="code_line">&nbsp;&nbsp; &nbsp;objFile.Write strTemp</div><div class="code_line">&nbsp;&nbsp; &nbsp;objFile.Close</div><div class="code_line">&nbsp;&nbsp; &nbsp;Set objFile = Nothing</div><div class="code_line">&nbsp;&nbsp; &nbsp;WScript.Echo &quot;Готово.&quot;</div><div class="code_line">Else</div><div class="code_line">&nbsp;&nbsp; &nbsp;WScript.Echo &quot;Список пользователей пуст.&quot;</div><div class="code_line">End If</div><div class="code_line">Set objFS = Nothing</div><div class="code_line">Set objDict = Nothing</div><div class="code_line">WScript.Quit 0</div></ol></div></div></div></div>]]></description>
        <author>Dmitrii</author>
        <category>Windows</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=175639&amp;view=findpost&amp;p=2456176</guid>
        <pubDate>Tue, 22 Dec 2009 08:05:10 +0000</pubDate>
        <title>Полезные скрипты</title>
        <link>https://forum.sources.ru/index.php?showtopic=175639&amp;view=findpost&amp;p=2456176</link>
        <description><![CDATA[Alexsz: <strong class='tag-b'>Dmitrii</strong><br>
userPrincipalName атрибут, первый ваш пост немного не понял..)]]></description>
        <author>Alexsz</author>
        <category>Windows</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=175639&amp;view=findpost&amp;p=2456159</guid>
        <pubDate>Tue, 22 Dec 2009 07:53:27 +0000</pubDate>
        <title>Полезные скрипты</title>
        <link>https://forum.sources.ru/index.php?showtopic=175639&amp;view=findpost&amp;p=2456159</link>
        <description><![CDATA[Dmitrii: <strong class='tag-b'>Alexsz</strong>, первый вопрос остался без ответа. Повторяю его в иной форме.<br>
Какой атрибут схемы <strong class='tag-b'>AD</strong> подразумевается под словом &quot;логин&quot;: <span class="tag-color tag-color-named" data-value="blue" style="color: blue"><strong class='tag-b'>userPrincipalName</strong></span>, <span class="tag-color tag-color-named" data-value="blue" style="color: blue"><strong class='tag-b'>sAMAccountName</strong></span>, <span class="tag-color tag-color-named" data-value="blue" style="color: blue"><strong class='tag-b'>displayName</strong></span>, какой-то другой..?]]></description>
        <author>Dmitrii</author>
        <category>Windows</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=175639&amp;view=findpost&amp;p=2456115</guid>
        <pubDate>Tue, 22 Dec 2009 07:04:13 +0000</pubDate>
        <title>Полезные скрипты</title>
        <link>https://forum.sources.ru/index.php?showtopic=175639&amp;view=findpost&amp;p=2456115</link>
        <description><![CDATA[Alexsz: <strong class='tag-b'>Dmitrii</strong><br>
1.2. Список логинов берется с 3-х мест на сервере: папка с профилями юзеров usrdata (50 на 50,активные и неактивные), папка с профилями userdata (50 на 50,активные и неактивные), папка с профилями roaming (перемещаемые профили).<br>
Брать список юзверей нужно именно с этих папок и сопоставлять с AD. Список можно получить, например, так: dir /ad /b &gt; users.txt <br>
3.2003 r2 sp2]]></description>
        <author>Alexsz</author>
        <category>Windows</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=175639&amp;view=findpost&amp;p=2456079</guid>
        <pubDate>Tue, 22 Dec 2009 05:38:35 +0000</pubDate>
        <title>Полезные скрипты</title>
        <link>https://forum.sources.ru/index.php?showtopic=175639&amp;view=findpost&amp;p=2456079</link>
        <description><![CDATA[Dmitrii: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=175639&view=findpost&p=2455375'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Alexsz &#064; <time class="tag-quote__quoted-time" datetime="2009-12-21T11:51:00+00:00">21.12.09, 11:51</time></span><div class='quote '>Есть список логинов (юзвери)...</div></div>1. Речь именно о &quot;логинах&quot; (т.е. об атрибуте схемы <strong class='tag-b'><span class="tag-color tag-color-named" data-value="blue" style="color: blue">userPrincipalName</span></strong>)?<br>
2. Откуда возмётся список, который надо сопоставлять с содержимым AD?<br>
3. Версия сервера?]]></description>
        <author>Dmitrii</author>
        <category>Windows</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=175639&amp;view=findpost&amp;p=2455375</guid>
        <pubDate>Mon, 21 Dec 2009 11:51:00 +0000</pubDate>
        <title>Полезные скрипты</title>
        <link>https://forum.sources.ru/index.php?showtopic=175639&amp;view=findpost&amp;p=2455375</link>
        <description><![CDATA[Alexsz: Здравствуйте&#33;<br>Имеется следующая задача:<br>Есть список логинов (юзвери), нужно проверить эти логины на соответствие их в AD (т.е. не все из этих логинов существуют в AD(некоторых допустим уволили но в списке они есть а в AD нету уже). <br>Как сие организовать? Как организовать вывод логинов которых скрипт не нашел в AD?(думаю нужно вывести их в отдельный txt)..<br>Подскажите куда рыть...]]></description>
        <author>Alexsz</author>
        <category>Windows</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=175639&amp;view=findpost&amp;p=2434690</guid>
        <pubDate>Sat, 28 Nov 2009 10:06:37 +0000</pubDate>
        <title>Полезные скрипты</title>
        <link>https://forum.sources.ru/index.php?showtopic=175639&amp;view=findpost&amp;p=2434690</link>
        <description><![CDATA[Alexsz: <strong class='tag-b'>3dmaxxx</strong><br>
Зашифровать можно переведя скрипт в exe, гуглите на тему vbs2exe..]]></description>
        <author>Alexsz</author>
        <category>Windows</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=175639&amp;view=findpost&amp;p=2434671</guid>
        <pubDate>Sat, 28 Nov 2009 09:25:26 +0000</pubDate>
        <title>Полезные скрипты</title>
        <link>https://forum.sources.ru/index.php?showtopic=175639&amp;view=findpost&amp;p=2434671</link>
        <description><![CDATA[3dmaxxx: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=175639&view=findpost&p=2434615'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Akina &#064; <time class="tag-quote__quoted-time" datetime="2009-11-28T05:37:49+00:00">28.11.09, 05:37</time></span><div class='quote '>CallByName или его аналога в WSH нет.</div></div><br>
CallByName возращает 0 или 1. А может она как-нибудь возратить ссылку на новый объект, создаваемый методом,-- вызывающийся из CallByName.<br>
<br>
PS Как можно зашифровать исходный код скрипта так, что бы он был не читаем для человека, но рабочим для машины?]]></description>
        <author>3dmaxxx</author>
        <category>Windows</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=175639&amp;view=findpost&amp;p=2434615</guid>
        <pubDate>Sat, 28 Nov 2009 05:37:49 +0000</pubDate>
        <title>Полезные скрипты</title>
        <link>https://forum.sources.ru/index.php?showtopic=175639&amp;view=findpost&amp;p=2434615</link>
        <description><![CDATA[Akina: CallByName или его аналога в WSH нет.]]></description>
        <author>Akina</author>
        <category>Windows</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=175639&amp;view=findpost&amp;p=2434565</guid>
        <pubDate>Fri, 27 Nov 2009 22:08:45 +0000</pubDate>
        <title>Полезные скрипты</title>
        <link>https://forum.sources.ru/index.php?showtopic=175639&amp;view=findpost&amp;p=2434565</link>
        <description><![CDATA[3dmaxxx: Мне нужно внутри одного скрипта выполнить другой, не явно указанный.<br>
Например, в обычном HTML-интегрированном скрипте это можно было сделать методом write[ln] объекта document...<br>
Есть подобная возможность в WSH?]]></description>
        <author>3dmaxxx</author>
        <category>Windows</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=175639&amp;view=findpost&amp;p=2432227</guid>
        <pubDate>Wed, 25 Nov 2009 15:57:07 +0000</pubDate>
        <title>Полезные скрипты</title>
        <link>https://forum.sources.ru/index.php?showtopic=175639&amp;view=findpost&amp;p=2432227</link>
        <description><![CDATA[BlackGod: <strong class='tag-b'>Alexsz</strong><br>
спасибо =)]]></description>
        <author>BlackGod</author>
        <category>Windows</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=175639&amp;view=findpost&amp;p=2431841</guid>
        <pubDate>Wed, 25 Nov 2009 10:47:19 +0000</pubDate>
        <title>Полезные скрипты</title>
        <link>https://forum.sources.ru/index.php?showtopic=175639&amp;view=findpost&amp;p=2431841</link>
        <description><![CDATA[Alexsz: <strong class='tag-b'>BlackGod</strong><br>
Мне ненадо такой скрипт, ибо сам могу написать. Включайте логику и вперед, хотя бы куски кода предлагайте&#33;<br>
з.ы. погуглите, чтоли..]]></description>
        <author>Alexsz</author>
        <category>Windows</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=175639&amp;view=findpost&amp;p=2431822</guid>
        <pubDate>Wed, 25 Nov 2009 10:27:12 +0000</pubDate>
        <title>Полезные скрипты</title>
        <link>https://forum.sources.ru/index.php?showtopic=175639&amp;view=findpost&amp;p=2431822</link>
        <description><![CDATA[BlackGod: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=175639&view=findpost&p=2431810'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Alexsz &#064; <time class="tag-quote__quoted-time" datetime="2009-11-25T10:14:46+00:00">25.11.09, 10:14</time></span><div class='quote '>И еще, тут никто за Вас писать скрипты не будет, предлагайте скрипт, написанный Вами, будем думать&#33; </div></div><br>
а знаю...<br>
<br>
з.ы. есть скриптик, который при запуске с параметром (IP или имя компьютера) устанавливает сервер R_Admin&#39;a на машину...<br>
если надо, то могу и так дать...<br>
Вообще есть немного скриптов, но я думаю, что большинство встречается тут..]]></description>
        <author>BlackGod</author>
        <category>Windows</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=175639&amp;view=findpost&amp;p=2431810</guid>
        <pubDate>Wed, 25 Nov 2009 10:14:46 +0000</pubDate>
        <title>Полезные скрипты</title>
        <link>https://forum.sources.ru/index.php?showtopic=175639&amp;view=findpost&amp;p=2431810</link>
        <description><![CDATA[Alexsz: strComputer = &quot;.&quot;<br><br>Set objWMIService = GetObject(&quot;winmgmts:&#092;&#092;&quot; &amp; strComputer &amp; &quot;&#092;root&#092;cimv2&quot;)<br>Set colItems = objWMIService.ExecQuery _<br>(&quot;Select * From Win32_NetworkAdapterConfiguration Where IPEnabled = True&quot;)<br><br>For Each objItem in colItems<br>Wscript.Echo objItem.MACAddress<br>For Each strAddress in objItem.IPAddress<br>Wscript.Echo strAddress<br>Next<br>Next<br><br>Выводит попапом мак и ип текущего пк<br>Имя пользователя см имя пк, все по анологии, cpu, mem и hdd берите через wmi<br><br>И еще, тут никто за Вас писать скрипты не будет, предлагайте скрипт, написанный Вами, будем думать&#33;]]></description>
        <author>Alexsz</author>
        <category>Windows</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=175639&amp;view=findpost&amp;p=2431769</guid>
        <pubDate>Wed, 25 Nov 2009 09:46:00 +0000</pubDate>
        <title>Полезные скрипты</title>
        <link>https://forum.sources.ru/index.php?showtopic=175639&amp;view=findpost&amp;p=2431769</link>
        <description><![CDATA[BlackGod: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=175639&view=findpost&p=2431730'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Alexsz &#064; <time class="tag-quote__quoted-time" datetime="2009-11-25T09:13:02+00:00">25.11.09, 09:13</time></span><div class='quote '><strong class='tag-b'>BlackGod</strong><br>
Например: (узнаем имя пк)<br>
WshNetwork = CreateObject(&quot;WScript.Network&quot;)<br>
WshNetwork.ComputerName<br>
<br>
Ну и далее смотрите что Вам нужно в скрипте..</div></div><br>
к сожалению в скриптах не силён...  :(]]></description>
        <author>BlackGod</author>
        <category>Windows</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=175639&amp;view=findpost&amp;p=2431730</guid>
        <pubDate>Wed, 25 Nov 2009 09:13:02 +0000</pubDate>
        <title>Полезные скрипты</title>
        <link>https://forum.sources.ru/index.php?showtopic=175639&amp;view=findpost&amp;p=2431730</link>
        <description><![CDATA[Alexsz: <strong class='tag-b'>BlackGod</strong><br>
Например: (узнаем имя пк)<br>
WshNetwork = CreateObject(&quot;WScript.Network&quot;)<br>
WshNetwork.ComputerName<br>
<br>
Ну и далее смотрите что Вам нужно в скрипте..]]></description>
        <author>Alexsz</author>
        <category>Windows</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=175639&amp;view=findpost&amp;p=2431721</guid>
        <pubDate>Wed, 25 Nov 2009 09:01:09 +0000</pubDate>
        <title>Полезные скрипты</title>
        <link>https://forum.sources.ru/index.php?showtopic=175639&amp;view=findpost&amp;p=2431721</link>
        <description><![CDATA[BlackGod: Здравствуйте =) помогите со скриптом, который собирал бы в домене информацию о компьютерах пользователей и записывал её в файл (имя компьютера - название файла) вот такой структурой:<br>
 <br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">[Info]</div><div class="code_line">MAC_Addr=</div><div class="code_line">Current_User_Name= ИМЯ_ПОЛЬЗОВАТЕЛЯ</div><div class="code_line">Computer_Name=ИМЯ_КОМПЬЮТЕРА</div><div class="code_line">IP_Addr=IP_АДРЕС_КОМПЬЮТЕРА Host: ИМЯ_КОМПЬЮТЕРА</div><div class="code_line">System=Windows XP build 2600/Service Pack 1,Русский </div><div class="code_line">Param_0=</div><div class="code_line">Param_1=ИМЯ_ПОЛЬЗОВАТЕЛЯ</div><div class="code_line">Record_Date=28.04.2009</div><div class="code_line">[Computer]</div><div class="code_line">BIOS=</div><div class="code_line">CPU_Freq_in_MHz=</div><div class="code_line">CPU=</div><div class="code_line">Memory_in_Mb=</div><div class="code_line">Total_HDD_in_Mb=</div></ol></div></div></div></div><br>
<br>
ИМЯ_ПОЛЬЗОВАТЕЛЯ, ИМЯ_КОМПЬЮТЕРА и IP_АДРЕС_КОМПЬЮТЕРА это в принципе основное в этом файле.. если и другое впихнётся, то я не против буду =)<br>
<br>
з.ы. вообще это возможно по средством скриптов?)]]></description>
        <author>BlackGod</author>
        <category>Windows</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=175639&amp;view=findpost&amp;p=2430644</guid>
        <pubDate>Tue, 24 Nov 2009 09:50:21 +0000</pubDate>
        <title>Полезные скрипты</title>
        <link>https://forum.sources.ru/index.php?showtopic=175639&amp;view=findpost&amp;p=2430644</link>
        <description><![CDATA[blackangel: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=175639&view=findpost&p=2430144'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Akina &#064; <time class="tag-quote__quoted-time" datetime="2009-11-23T18:11:48+00:00">23.11.09, 18:11</time></span><div class='quote '>silent? или требуется интерактивное управление пакетом?<br>
</div></div><br>
Silent. Скрипт запускаем на контроллере домена и он устанавливает пакет на нужные машины.]]></description>
        <author>blackangel</author>
        <category>Windows</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=175639&amp;view=findpost&amp;p=2430144</guid>
        <pubDate>Mon, 23 Nov 2009 18:11:48 +0000</pubDate>
        <title>Полезные скрипты</title>
        <link>https://forum.sources.ru/index.php?showtopic=175639&amp;view=findpost&amp;p=2430144</link>
        <description><![CDATA[Akina: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=175639&view=findpost&p=2429945'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>blackangel &#064; <time class="tag-quote__quoted-time" datetime="2009-11-23T14:26:40+00:00">23.11.09, 14:26</time></span><div class='quote '>установить msi пакет на удаленную машину </div></div><br>
silent? или требуется интерактивное управление пакетом?]]></description>
        <author>Akina</author>
        <category>Windows</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=175639&amp;view=findpost&amp;p=2429945</guid>
        <pubDate>Mon, 23 Nov 2009 14:26:40 +0000</pubDate>
        <title>Полезные скрипты</title>
        <link>https://forum.sources.ru/index.php?showtopic=175639&amp;view=findpost&amp;p=2429945</link>
        <description><![CDATA[blackangel: Уважаемые, подскажите плз, как установить msi пакет на удаленную машину ПРИ ПОМОЩИ VBS? Все дело естественно в домене.]]></description>
        <author>blackangel</author>
        <category>Windows</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=175639&amp;view=findpost&amp;p=2424609</guid>
        <pubDate>Wed, 18 Nov 2009 10:13:45 +0000</pubDate>
        <title>Полезные скрипты</title>
        <link>https://forum.sources.ru/index.php?showtopic=175639&amp;view=findpost&amp;p=2424609</link>
        <description><![CDATA[Alexsz: аааа&#33; а я копал в другом направлении)) Спасибо, все понял&#33; Вывод в StrMessage я и не трогал... ппц.. Спасибо Аkina&#33;]]></description>
        <author>Alexsz</author>
        <category>Windows</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=175639&amp;view=findpost&amp;p=2424591</guid>
        <pubDate>Wed, 18 Nov 2009 10:02:22 +0000</pubDate>
        <title>Полезные скрипты</title>
        <link>https://forum.sources.ru/index.php?showtopic=175639&amp;view=findpost&amp;p=2424591</link>
        <description><![CDATA[Akina: <div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">StrMessage = StrMessage &amp; &quot;&#60;p&#62; Лог файл BackupDB: &#60;/p&#62;&quot; &amp; &quot;&#60;table border = 1&#62; &#60;tr&#62;&#60;td&#62;&quot;&amp; Replace(Ar,vbCrLf,&quot;&#60;br&#62;&quot;) &amp;&quot; &#60;br&#62;&#60;/td&#62;&#60;/tr&#62;&#60;/table&#62;&quot;</div></ol></div></div></div></div>]]></description>
        <author>Akina</author>
        <category>Windows</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=175639&amp;view=findpost&amp;p=2424588</guid>
        <pubDate>Wed, 18 Nov 2009 09:56:29 +0000</pubDate>
        <title>Полезные скрипты</title>
        <link>https://forum.sources.ru/index.php?showtopic=175639&amp;view=findpost&amp;p=2424588</link>
        <description><![CDATA[Alexsz: Ткните пожалуйста, куда Replace вставить?<br>И что заменять нужно.. :( <br>П.С. vbNewLine = vbCrLf?]]></description>
        <author>Alexsz</author>
        <category>Windows</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=175639&amp;view=findpost&amp;p=2424565</guid>
        <pubDate>Wed, 18 Nov 2009 09:41:22 +0000</pubDate>
        <title>Полезные скрипты</title>
        <link>https://forum.sources.ru/index.php?showtopic=175639&amp;view=findpost&amp;p=2424565</link>
        <description><![CDATA[Akina: Использовать Replace и заменить vbNewLine на &quot;&lt;br&gt;&quot;]]></description>
        <author>Akina</author>
        <category>Windows</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=175639&amp;view=findpost&amp;p=2424356</guid>
        <pubDate>Wed, 18 Nov 2009 07:29:02 +0000</pubDate>
        <title>Полезные скрипты</title>
        <link>https://forum.sources.ru/index.php?showtopic=175639&amp;view=findpost&amp;p=2424356</link>
        <description><![CDATA[Alexsz: Здравствуйте&#33;<br>
Подскажите пожалуйста, имеется следующий код:<br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">Dim strMessage</div><div class="code_line">Dim fso, arch, backup </div><div class="code_line">Set fso = CreateObject(&quot;Scripting.FileSystemObject&quot;)</div><div class="code_line">Set arch = fso.OpenTextFile(&quot;C:\check free space\Log\Archiving.log&quot;, ForReading)</div><div class="code_line">Ar = arch.ReadAll</div><div class="code_line">arch.Close</div><div class="code_line">StrMessage = StrMessage &amp; &quot;&#60;p&#62; Лог файл BackupDB: &#60;/p&#62;&quot; &amp; &quot;&#60;table border = 1&#62; &#60;tr&#62;&#60;td&#62;&quot;&amp; Ar &amp;&quot; &#60;br&#62;&#60;/td&#62;&#60;/tr&#62;&#60;/table&#62;&quot;</div></ol></div></div></div></div><br>
Этот скрипт рассылает сообщение (оформленное как .htmlBody), вопрос - скрипт берет данные из текстового файла, как их вывести в html построчно?<br>
Просто если оставить как есть, то скрипт выведет информацию с Archiving.log одной строкой...<br>
?<br>
(вариант вставить теги &lt;br&gt; в лог файл некатит, ибо то, что выводит лог не умеет вставлять теги, а каждый день вбивать в лог файл теги это сооовсем не вариант)<br>
<br>
П.С.<br>
<br>
Подумав сделал так:<br>
<br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">Dim strMessage</div><div class="code_line">Dim fso, objFSO, arch, backup, arrlin, strlin</div><div class="code_line">&nbsp;</div><div class="code_line">Set fso = CreateObject(&quot;Scripting.FileSystemObject&quot;)</div><div class="code_line">Set objFSO = CreateObject(&quot;Scripting.FileSystemObject&quot;)</div><div class="code_line">&nbsp;</div><div class="code_line">Set arch = fso.OpenTextFile(&quot;C:\check free space\Log\Archiving.log&quot;, ForReading)</div><div class="code_line">Ar = arch.ReadAll</div><div class="code_line">arch.Close</div><div class="code_line">arrlin = split(Ar, vbCrLf)</div><div class="code_line">for each Ar in arrlin</div><div class="code_line">next</div><div class="code_line">&nbsp;</div><div class="code_line">StrMessage = StrMessage &amp; &quot;&#60;p&#62; Лог файл BackupDB: &#60;/p&#62;&quot; &amp; &quot;&#60;table border=1 align=center&#62;&#60;tr&#62;&#60;td&#62;&quot;&amp; Ar &amp;&quot;&#60;/td&#62;&#60;/tr&#62;&#60;/table&#62;&quot;</div></ol></div></div></div></div><br>
<br>
Если после for each Ar in arrlin добавить wscript.echo Ar то попапами выведется построчно инфа с файла Archiving.log. Но если все оставить как указано в коде, без эхо, то в отсылаемом письме придет только пустая рамка от таблицы, т.е. содержимое файла Archiving.log почему то не желает выводится в тело письма&#33; Куда рыть??? :(]]></description>
        <author>Alexsz</author>
        <category>Windows</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=175639&amp;view=findpost&amp;p=2419446</guid>
        <pubDate>Wed, 11 Nov 2009 22:17:42 +0000</pubDate>
        <title>Полезные скрипты</title>
        <link>https://forum.sources.ru/index.php?showtopic=175639&amp;view=findpost&amp;p=2419446</link>
        <description><![CDATA[3dmaxxx: В общем-то я и использую SWbemLocator. В случае не большой ошибки сети или ещё чего, даже при обращении к машине у которой все необходимые службы активны, часто программа прерывается с ошибкой: &quot;Сервер RPC не доступен&quot;. Эсли действительно способа заведомой проверки у WMI связи нет, то Microsoft здесь облажалась.<br>Главное везде в своём MSDN, перед выполнением каких-либо операций, например, доступа к файлу, прежде всего проверяют его наличие а здесь не в менее серьёзном сбое при не возможности установить WMI-связь, буд-то бы так и надо...<br> &gt;:(]]></description>
        <author>3dmaxxx</author>
        <category>Windows</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=175639&amp;view=findpost&amp;p=2419300</guid>
        <pubDate>Wed, 11 Nov 2009 18:10:10 +0000</pubDate>
        <title>Полезные скрипты</title>
        <link>https://forum.sources.ru/index.php?showtopic=175639&amp;view=findpost&amp;p=2419300</link>
        <description><![CDATA[Akina: Используй SWbemLocator.ConnectServer, а не IWbemLocator.ConnectServer]]></description>
        <author>Akina</author>
        <category>Windows</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=175639&amp;view=findpost&amp;p=2419134</guid>
        <pubDate>Wed, 11 Nov 2009 14:28:09 +0000</pubDate>
        <title>Полезные скрипты</title>
        <link>https://forum.sources.ru/index.php?showtopic=175639&amp;view=findpost&amp;p=2419134</link>
        <description><![CDATA[3dmaxxx: Мой вопрос на сто миллионов долларов?<br>WMI-- мощная штука, а элементарных вещей делать не может...]]></description>
        <author>3dmaxxx</author>
        <category>Windows</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=175639&amp;view=findpost&amp;p=2418532</guid>
        <pubDate>Tue, 10 Nov 2009 20:35:09 +0000</pubDate>
        <title>Полезные скрипты</title>
        <link>https://forum.sources.ru/index.php?showtopic=175639&amp;view=findpost&amp;p=2418532</link>
        <description><![CDATA[3dmaxxx: ConnectServer(Edit1.Text, &#39;root&#092;CIMV2&#39;, ...<br><br>В указанной выше строке данные беруться из поля Edit1.Text. Если в поле введено не верное имя компьютера или ПК в данный момент не включен или WMI служба на нём не запущена...-- Всё это ведёт к сбою подключения с последующей остановкой программы. Обработчики ошибок не помогают...<br><br>Как заранее проверить, что указанная строка даст либо не даст добро на работу?]]></description>
        <author>3dmaxxx</author>
        <category>Windows</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=175639&amp;view=findpost&amp;p=2404955</guid>
        <pubDate>Fri, 23 Oct 2009 10:18:05 +0000</pubDate>
        <title>Полезные скрипты</title>
        <link>https://forum.sources.ru/index.php?showtopic=175639&amp;view=findpost&amp;p=2404955</link>
        <description><![CDATA[Akina: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=175639&view=findpost&p=2404950'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Chingizhan &#064; <time class="tag-quote__quoted-time" datetime="2009-10-23T10:14:08+00:00">23.10.09, 10:14</time></span><div class='quote '>скрипт будет актуален для многих админов. </div></div><br>
Однозначно нет. А вот для ломастеров - да.<br>
<div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=175639&view=findpost&p=2404950'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Chingizhan &#064; <time class="tag-quote__quoted-time" datetime="2009-10-23T10:14:08+00:00">23.10.09, 10:14</time></span><div class='quote '>Буду очень благодарен за скрипт&#33;</div></div><br>
Вот прям готовый тебе вынь да положь? так ты разделом ошибся, тебе в <a class='tag-url' href='http://forum.sources.ru/index.php?showforum=149' target='_blank'>ПОМОЩЬ СТУДЕНТАМ</a><br>
А если всё-таки намерен делать сам- показывай, что уже сделано и в чём возникла проблема.]]></description>
        <author>Akina</author>
        <category>Windows</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=175639&amp;view=findpost&amp;p=2404954</guid>
        <pubDate>Fri, 23 Oct 2009 10:17:30 +0000</pubDate>
        <title>Полезные скрипты</title>
        <link>https://forum.sources.ru/index.php?showtopic=175639&amp;view=findpost&amp;p=2404954</link>
        <description><![CDATA[Chingizhan: Еще бы очень нужный скриптик, который бы формировал файл с именами пользователей и паролей в домена.]]></description>
        <author>Chingizhan</author>
        <category>Windows</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=175639&amp;view=findpost&amp;p=2404950</guid>
        <pubDate>Fri, 23 Oct 2009 10:14:08 +0000</pubDate>
        <title>Полезные скрипты</title>
        <link>https://forum.sources.ru/index.php?showtopic=175639&amp;view=findpost&amp;p=2404950</link>
        <description><![CDATA[Chingizhan: Всем Привет&#33;&#33;&#33;<br>Столкнулся с потребностью удаления определенного файла у пользователей. Суть такая, место положение файла известно, он может находится в одном из трех мест (на каждой машине находится по разному, но всегда в одном из этих трех мест), имя файла также известно, нужно что бы этот файл удалялся, лучше конечно через какой-то промежуток времени, либо по завершению сеанса пользователя.<br>Буду очень благодарен за скрипт&#33; Да и так думаю скрипт будет актуален для многих админов.]]></description>
        <author>Chingizhan</author>
        <category>Windows</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=175639&amp;view=findpost&amp;p=2397988</guid>
        <pubDate>Thu, 15 Oct 2009 12:37:54 +0000</pubDate>
        <title>Полезные скрипты</title>
        <link>https://forum.sources.ru/index.php?showtopic=175639&amp;view=findpost&amp;p=2397988</link>
        <description><![CDATA[Akina: <div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">Sub WriteDataToFile(FullFileName, TextToWrite)</div><div class="code_line">&nbsp;&nbsp; Const ForReading = 1, ForWriting = 2, ForAppending = 8</div><div class="code_line">&nbsp;&nbsp; Dim fso, f</div><div class="code_line">&nbsp;&nbsp; Set fso = CreateObject(&quot;Scripting.FileSystemObject&quot;)</div><div class="code_line">&nbsp;&nbsp; Set f = fso.OpenTextFile(FullFileName, ForAppending, True)</div><div class="code_line">&nbsp;&nbsp; f.Write TextToWrite</div><div class="code_line">&nbsp;&nbsp; f.Close</div><div class="code_line">End Sub</div><div class="code_line">&nbsp;</div><div class="code_line">Do</div><div class="code_line">&nbsp;&nbsp; Call WriteDataToFile(&quot;c:\logfile.txt&quot;, &quot;Test String&quot;)</div><div class="code_line">&nbsp;&nbsp; WScript.Sleep(60000)</div><div class="code_line">Loop</div></ol></div></div></div></div>Есссно предусмотри, как завершать работу скрипта - не снимать же процесс...]]></description>
        <author>Akina</author>
        <category>Windows</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=175639&amp;view=findpost&amp;p=2397974</guid>
        <pubDate>Thu, 15 Oct 2009 12:25:55 +0000</pubDate>
        <title>Полезные скрипты</title>
        <link>https://forum.sources.ru/index.php?showtopic=175639&amp;view=findpost&amp;p=2397974</link>
        <description><![CDATA[Alexsz: Спасибо <strong class='tag-b'>Akina</strong> за совет&#33;<br>
Получилось следующее:<br>
<br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">Const AlertHigh = .9 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </div><div class="code_line">Const emailFrom = &quot;xx@xxx.ru&quot; &nbsp; &nbsp; &nbsp; &nbsp;</div><div class="code_line">Const emailTo = &quot;xx@xxx.ru&quot; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</div><div class="code_line">Const MailServer = &quot;mail.xxx.ru&quot; </div><div class="code_line">Const WaitTimeInMinutes = 1 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</div><div class="code_line">&nbsp;</div><div class="code_line">Dim strMessage</div><div class="code_line">Dim arrServerList</div><div class="code_line">&nbsp;</div><div class="code_line">arrServerList = array(&quot;server name&quot;) &nbsp; &nbsp;</div><div class="code_line">&nbsp;</div><div class="code_line">Do until i = 2</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;strMessage = &quot;&quot;</div><div class="code_line">&nbsp;&nbsp; &nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp; PollServers(arrServerList)</div><div class="code_line">&nbsp;&nbsp; &nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;if strMessage &#60;&#62; &quot;&quot; then</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;EmailAlert(strMessage)</div><div class="code_line">&nbsp;&nbsp; &nbsp;end if</div><div class="code_line">&nbsp;&nbsp; &nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; WScript.Sleep(WaitTimeInMinutes*60000)</div><div class="code_line">&nbsp;</div><div class="code_line">Loop</div><div class="code_line">&nbsp;</div><div class="code_line">Sub PollServers(arrServers)</div><div class="code_line">&nbsp;&nbsp; &nbsp;on error resume next</div><div class="code_line">&nbsp;&nbsp; &nbsp;for each Server in arrServers</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;set objSvc = GetObject(&quot;winmgmts:{impersonationLevel=impersonate}//&quot; &amp; Server &amp; &quot;/root/cimv2&quot;)</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;set objRet = objSvc.InstancesOf(&quot;win32_LogicalDisk&quot;)</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;for each item in objRet</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;if item.DriveType = 7 then</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;end if</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;if item.FreeSpace/item.size &#60;= AlertHigh then</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;strMessage = strMessage &amp; UCase(Server) &amp; &quot;: Alert, drive &#39;&quot; &amp; item.caption &amp; &quot;&#39; is low on HDD space! &nbsp;There are &quot; &amp; FormatNumber((item.FreeSpace/1024000),0) &amp; &quot; MB free &#60;7%&quot; &amp; vbCRLF</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;end if</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;next</div><div class="code_line">&nbsp;&nbsp; &nbsp;next</div><div class="code_line">&nbsp;&nbsp; &nbsp;set objSvc = Nothing</div><div class="code_line">&nbsp;&nbsp; &nbsp;set objRet = Nothing</div><div class="code_line">End Sub</div><div class="code_line">&nbsp;</div><div class="code_line">Sub EmailAlert(Message)</div><div class="code_line">&nbsp;&nbsp; &nbsp;on error resume next</div><div class="code_line">&nbsp;&nbsp; &nbsp;Set objMessage = CreateObject(&quot;CDO.Message&quot;)</div><div class="code_line">&nbsp;&nbsp; &nbsp;with objMessage</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;.From = emailFrom</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;.To = emailTo</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;.Subject = &quot;Low Disk Space Update&quot;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;.TextBody = Message</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;.Configuration.Fields.Item (&quot;http://schemas.microsoft.com/cdo/configuration/sendusing&quot;) = 2</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;.Configuration.Fields.Item (&quot;http://schemas.microsoft.com/cdo/configuration/smtpserver&quot;) = MailServer</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;.Configuration.Fields.Item (&quot;http://schemas.microsoft.com/cdo/configuration/smtpauthenticate&quot;) = cdoBasic</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;.Configuration.Fields.Item (&quot;http://schemas.microsoft.com/cdo/configuration/sendusername&quot;) = &quot;xxx&quot;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;.Configuration.Fields.Item (&quot;http://schemas.microsoft.com/cdo/configuration/sendpassword&quot;) = &quot;xxx&quot;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;.Configuration.Fields.Item (&quot;http://schemas.microsoft.com/cdo/configuration/smtpserverport&quot;) = 25</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;.Configuration.Fields.Item (&quot;http://schemas.microsoft.com/cdo/configuration/smtpusessl&quot;) = False</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;.Configuration.Fields.Item (&quot;http://schemas.microsoft.com/cdo/configuration/smtpconnectiontimeout&quot;) = 60</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;.Configuration.Fields.Update</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;.Send</div><div class="code_line">&nbsp;&nbsp; &nbsp;end with</div><div class="code_line">&nbsp;&nbsp; &nbsp;Set objMessage = Nothing</div><div class="code_line">End Sub</div></ol></div></div></div></div><br>
Подскажите пожалуйста, как написать скрипт, который содавал бы файл и постоянно записывал туда текстовую информацию (вообще не важно какую), главное чтобы скрипт записывал инфу постоянно, тем самым увеличивая (постоянно) размер файла..?<br>
(нужно для того чтобы протестировать данный скрипт)]]></description>
        <author>Alexsz</author>
        <category>Windows</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=175639&amp;view=findpost&amp;p=2395867</guid>
        <pubDate>Tue, 13 Oct 2009 12:02:12 +0000</pubDate>
        <title>Полезные скрипты</title>
        <link>https://forum.sources.ru/index.php?showtopic=175639&amp;view=findpost&amp;p=2395867</link>
        <description><![CDATA[Akina: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=175639&view=findpost&p=2395837'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Alexsz &#064; <time class="tag-quote__quoted-time" datetime="2009-10-13T11:48:58+00:00">13.10.09, 11:48</time></span><div class='quote '>что модифицировать нужно,чтобы скрипт выводил данные в процентах?</div></div><br>
Получить не только объём свободного пространства (FreeSpace), но и полный объём (TotalSize). Поделить одно на другое. Умножить на 100. Добавить в конце символ &quot;%&quot;.<br>
<div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=175639&view=findpost&p=2395837'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Alexsz &#064; <time class="tag-quote__quoted-time" datetime="2009-10-13T11:48:58+00:00">13.10.09, 11:48</time></span><div class='quote '>как сделать чтобы при превышении определенного порога % свободного пространства скрипт отсылал предупреждающее ( о том что, допустим, на системном диске 0% свободно) сообщение на мыло? </div></div><br>
Задействовать SimpleMAPI. См. &quot;Microsoft Collaboration Data Objects Programmer&#39;s Reference&quot; в MSDN.]]></description>
        <author>Akina</author>
        <category>Windows</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=175639&amp;view=findpost&amp;p=2395837</guid>
        <pubDate>Tue, 13 Oct 2009 11:48:58 +0000</pubDate>
        <title>Полезные скрипты</title>
        <link>https://forum.sources.ru/index.php?showtopic=175639&amp;view=findpost&amp;p=2395837</link>
        <description><![CDATA[Alexsz: Здравствуйте&#33; Имеется следующий скрипт: (выводит свободное дисковое пространтсво)<br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">on Error resume Next </div><div class="code_line">stringx = &quot;Локальные диски&quot; &amp; vbNewLine &nbsp;&amp; vbNewLine</div><div class="code_line">&nbsp;</div><div class="code_line">Set fso = WScript.CreateObject(&quot;Scripting.FileSystemObject&quot;)</div><div class="code_line">Set WSHShell = WScript.CreateObject(&quot;WScript.Shell&quot;)</div><div class="code_line">&#39;Проверяем все драйвы (HDD, FDD, CDD) в системе &nbsp; &nbsp;</div><div class="code_line">For each i In fso.Drives </div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp;If i.DriveType=1 Then</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; If i&#60;&#62;&quot;A:&quot; Then</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; freef = frit(i)</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; End If</div><div class="code_line">&nbsp;&nbsp; &nbsp;End If</div><div class="code_line">&nbsp;&nbsp; &nbsp; If i.DriveType=2 Then</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; free=frit(i)</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;stringx= stringx &amp; &quot; На диске &quot; &amp; i &amp; &quot; свободно &quot; &amp; free &amp; &quot; Мб &quot; &amp; vbNewLine</div><div class="code_line">&nbsp;&nbsp; &nbsp; End If</div><div class="code_line">Next</div><div class="code_line">stringx = stringx</div><div class="code_line">WSHShell.Popup(stringx)</div><div class="code_line">WScript.Quit()</div><div class="code_line">&nbsp;</div><div class="code_line">function frit(gg)</div><div class="code_line">frit = FormatNumber(fso.GetDrive(gg.DriveLetter).FreeSpace/1048576, 1)</div><div class="code_line">End function</div></ol></div></div></div></div><br>
<br>
Вопрос: что модифицировать нужно,чтобы скрипт выводил данные в процентах? И как сделать чтобы при превышении определенного порога % свободного пространства скрипт отсылал предупреждающее ( о том что, допустим, на системном диске 0% свободно) сообщение на мыло?]]></description>
        <author>Alexsz</author>
        <category>Windows</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=175639&amp;view=findpost&amp;p=2373907</guid>
        <pubDate>Mon, 21 Sep 2009 14:02:25 +0000</pubDate>
        <title>Полезные скрипты</title>
        <link>https://forum.sources.ru/index.php?showtopic=175639&amp;view=findpost&amp;p=2373907</link>
        <description><![CDATA[Akina: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=175639&view=findpost&p=2373847'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Alexsz &#064; <time class="tag-quote__quoted-time" datetime="2009-09-21T13:18:55+00:00">21.09.09, 13:18</time></span><div class='quote '>А если сбросить командой netsh winsock reset? Тогда этот самый фантом исчезнет?) </div></div><br>
Если сбросить на мастер-браузере и на рабстанции - да.<br>
<br>
<span class="tag-color tag-color-named" data-value="gray" style="color: gray"><span class='tag-size' data-value='7' style='font-size:7pt;'>Сообщения были разделены в тему &quot;<a class='tag-url' href='http://forum.sources.ru/index.php?showtopic=283199' target='_blank'>Скрипт для биллинга</a>&quot;</span></span>]]></description>
        <author>Akina</author>
        <category>Windows</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=175639&amp;view=findpost&amp;p=2373847</guid>
        <pubDate>Mon, 21 Sep 2009 13:18:55 +0000</pubDate>
        <title>Полезные скрипты</title>
        <link>https://forum.sources.ru/index.php?showtopic=175639&amp;view=findpost&amp;p=2373847</link>
        <description><![CDATA[Alexsz: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=175639&view=findpost&p=2370851'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Akina &#064; <time class="tag-quote__quoted-time" datetime="2009-09-18T11:01:31+00:00">18.09.09, 11:01</time></span><div class='quote '><div class='tag-quote'><span class='tag-quote-prefix'>Цитата</span> <div class='quote '>Плюс некоторое время висит фантом в НетБИОС-окружении.</div></div></div></div><br>
<strong class='tag-b'>Akina</strong><br>
А если сбросить командой netsh winsock reset? Тогда этот самый фантом исчезнет?]]></description>
        <author>Alexsz</author>
        <category>Windows</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=175639&amp;view=findpost&amp;p=2373104</guid>
        <pubDate>Mon, 21 Sep 2009 01:27:27 +0000</pubDate>
        <title>Полезные скрипты</title>
        <link>https://forum.sources.ru/index.php?showtopic=175639&amp;view=findpost&amp;p=2373104</link>
        <description><![CDATA[AlexJ: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=175639&view=findpost&p=2371310'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Akina &#064; <time class="tag-quote__quoted-time" datetime="2009-09-18T17:31:12+00:00">18.09.09, 17:31</time></span><div class='quote '>Вообще-то это определяется параметром Leased Time самогО DHCP-сервера.</div></div><br>
Ну так о нем и говорю, редко кто ставит меньше 15 минут, а обычно все ставят неделю, после чего кэш DHCP сервака сбрасывается, если не было больше подключений с определенного МАС-адреса.]]></description>
        <author>AlexJ</author>
        <category>Windows</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=175639&amp;view=findpost&amp;p=2371310</guid>
        <pubDate>Fri, 18 Sep 2009 17:31:12 +0000</pubDate>
        <title>Полезные скрипты</title>
        <link>https://forum.sources.ru/index.php?showtopic=175639&amp;view=findpost&amp;p=2371310</link>
        <description><![CDATA[Akina: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=175639&view=findpost&p=2371279'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>AlexJ &#064; <time class="tag-quote__quoted-time" datetime="2009-09-18T16:27:53+00:00">18.09.09, 16:27</time></span><div class='quote '>не видел я чтоб сброс кэша DHCP был меньше 15 минут, а обычно неделя или больше</div></div><br>
Вообще-то это определяется параметром Leased Time самогО DHCP-сервера.]]></description>
        <author>Akina</author>
        <category>Windows</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=175639&amp;view=findpost&amp;p=2371279</guid>
        <pubDate>Fri, 18 Sep 2009 16:27:53 +0000</pubDate>
        <title>Полезные скрипты</title>
        <link>https://forum.sources.ru/index.php?showtopic=175639&amp;view=findpost&amp;p=2371279</link>
        <description><![CDATA[AlexJ: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=175639&view=findpost&p=2370851'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Akina &#064; <time class="tag-quote__quoted-time" datetime="2009-09-18T11:01:31+00:00">18.09.09, 11:01</time></span><div class='quote '>Единственный минус такого подхода - не сбрасывается резервирование адреса на DHCP-сервере.</div></div><br>
Akina абсолютно прав, и плюс ко всему даже после перезагрузки перезагрузки ИПшник не сброситься, не видел я чтоб сброс кэша DHCP был меньше 15 минут, а обычно неделя или больше. &quot;Сбить&quot; DHCP сервак можно только сменив МАС адрес сетевухи или &quot;вписаться&quot; самому в протокол DHCP и отвергать предложения сервака получить &quot;старый&quot; ИП.]]></description>
        <author>AlexJ</author>
        <category>Windows</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=175639&amp;view=findpost&amp;p=2370851</guid>
        <pubDate>Fri, 18 Sep 2009 11:01:31 +0000</pubDate>
        <title>Полезные скрипты</title>
        <link>https://forum.sources.ru/index.php?showtopic=175639&amp;view=findpost&amp;p=2370851</link>
        <description><![CDATA[Akina: <div class='tag-quote'><a class='tag-quote-link' href='https://forum.sources.ru/index.php?showtopic=175639&view=findpost&p=2369814'><span class='tag-quote-prefix'>Цитата</span></a> <span class='tag-quote__quote-info'>Alexsz &#064; <time class="tag-quote__quoted-time" datetime="2009-09-17T11:08:04+00:00">17.09.09, 11:08</time></span><div class='quote '>В конце можно при желании прикрутить ребут машины..) </div></div><br>
А смысл? достаточно опустить и снова поднять интерфейс - а на ХР и старше так и вовсе ничего не нужно, применяется на лету.<br>
Единственный минус такого подхода - не сбрасывается резервирование адреса на DHCP-сервере. Плюс некоторое время висит фантом в НетБИОС-окружении.]]></description>
        <author>Akina</author>
        <category>Windows</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=175639&amp;view=findpost&amp;p=2369814</guid>
        <pubDate>Thu, 17 Sep 2009 11:08:04 +0000</pubDate>
        <title>Полезные скрипты</title>
        <link>https://forum.sources.ru/index.php?showtopic=175639&amp;view=findpost&amp;p=2369814</link>
        <description><![CDATA[Alexsz: Еще раз спасибо <strong class='tag-b'>Akina</strong> за то что изначально направил меня в нужное русло&#33;:)<br>
Итоговый рабочий самописный скрипт:<br>
<br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">strComputer = &quot;.&quot;</div><div class="code_line">Set objWMIService = GetObject(&quot;winmgmts:\&quot; &amp; strComputer &amp; &quot;\root\cimv2&quot;)</div><div class="code_line">Set colNetAdapters = objWMIService.ExecQuery (&quot;Select * from Win32_NetworkAdapterConfiguration where IPEnabled=TRUE and DHCPEnabled=TRUE&quot;)</div><div class="code_line">&nbsp;</div><div class="code_line">For Each objNetAdapter in colNetAdapters</div><div class="code_line">&nbsp;&nbsp;For Each strAddress in objNetAdapter.IPAddress</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;arrOctets = Split(strAddress, &quot;.&quot;)</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;If arrOctets(0) and arrOctets(1) Then</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;strNewAddress = arroctets(0) &amp; &quot;.&quot; &amp; arroctets(1) &amp; &quot;.&quot; &amp; arrOctets(2) &amp; &quot;.&quot; &amp; &quot;211&quot; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;arrIPAddress = Array(strNewAddress)</div><div class="code_line">&nbsp;&nbsp; &nbsp;strSubnetMask = objNetAdapter.IPSubnet</div><div class="code_line">&nbsp;&nbsp; &nbsp;strGateway = objNetAdapter.DefaultIPGateway</div><div class="code_line">&nbsp;&nbsp; &nbsp;strGatewayMetric = objNetAdapter.GatewayCostMetric</div><div class="code_line">&nbsp;&nbsp; &nbsp;arrDNSServers = objNetAdapter.DNSServerSearchOrder</div><div class="code_line">&nbsp;&nbsp; &nbsp;errEnable = objNetAdapter.EnableStatic(arrIPAddress, strSubnetMask)</div><div class="code_line">&nbsp;&nbsp; &nbsp;errGateways = objNetAdapter.SetGateways(strGateway, strGatewaymetric)</div><div class="code_line">&nbsp;&nbsp; &nbsp;objNetAdapter.SetDNSServerSearchOrder(arrDNSServers)</div><div class="code_line">&nbsp;&nbsp;End If</div><div class="code_line">&nbsp;Next</div><div class="code_line">Next</div></ol></div></div></div></div><br>
В конце можно при желании прикрутить ребут машины..)]]></description>
        <author>Alexsz</author>
        <category>Windows</category>
      </item>
	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=175639&amp;view=findpost&amp;p=2369447</guid>
        <pubDate>Thu, 17 Sep 2009 05:45:19 +0000</pubDate>
        <title>Полезные скрипты</title>
        <link>https://forum.sources.ru/index.php?showtopic=175639&amp;view=findpost&amp;p=2369447</link>
        <description><![CDATA[Alexsz: To <strong class='tag-b'>Akina</strong><br>
Я пытаюсь понять, на более простом примере у меня все получается, однако именно в этом случае проблемы, благодаря Вам, <strong class='tag-b'>Akina</strong>, я пытаюсь их решить.<br>
Получилось следующее:<br>
<br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">strComputer = &quot;.&quot;</div><div class="code_line">Set objWMIService = GetObject(&quot;winmgmts:\&quot; &amp; strComputer &amp; &quot;\root\cimv2&quot;)</div><div class="code_line">Set colNetAdapters = objWMIService.ExecQuery (&quot;Select * from Win32_NetworkAdapterConfiguration where IPEnabled=TRUE and DHCPEnabled=TRUE&quot;)</div><div class="code_line">ArrIpAddress = array(&quot;192.168.0.3&quot;)</div><div class="code_line">For Each objNetAdapter in colNetAdapters</div><div class="code_line">&nbsp;&nbsp; &nbsp;for each straddress in objnetadapter.ipaddress</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;arroctet = split(straddress, &quot;.&quot;)</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;if arroctet(0) = &quot;10&quot; and arroctet(1) = &quot;10&quot; then</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;strnewaddress = &quot;192.168.&quot; &amp; arroctets(2) &amp; &quot;.&quot; &amp; arroctets(3)</div><div class="code_line">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;arripaddress = array(strnewaddress)</div><div class="code_line">&nbsp;&nbsp; &nbsp;strSubnetMask = objNetAdapter.IPSubnet</div><div class="code_line">&nbsp;&nbsp; &nbsp;strGateway = objNetAdapter.DefaultIPGateway</div><div class="code_line">&nbsp;&nbsp; &nbsp;strGatewayMetric = objNetAdapter.GatewayCostMetric</div><div class="code_line">&nbsp;&nbsp; &nbsp;arrDNSServers = objNetAdapter.DNSServerSearchOrder</div><div class="code_line">&nbsp;&nbsp; &nbsp;arrEnable = objNetAdapter.EnableStatic(arrIPAddress, strSubnetMask)</div><div class="code_line">&nbsp;&nbsp; &nbsp;errGateways = objNetAdapter.SetGateways(strGateway, strGatewaymetric)</div><div class="code_line">&nbsp;&nbsp; &nbsp;objNetAdapter.SetDNSServerSearchOrder(arrDNSServers)</div><div class="code_line">&nbsp;&nbsp;End If</div><div class="code_line">Next</div><div class="code_line">next</div><div class="code_line">if err.number&#60;&#62;0 then </div><div class="code_line">&nbsp;&nbsp; &nbsp;wscript.echo err.number, err.description</div><div class="code_line">&nbsp;&nbsp; &nbsp;err.Clear</div><div class="code_line">end if</div></ol></div></div></div></div><br>
<br>
Скрипт отрабатывает без ошибок но не меняет никаких параметров (ip,mask,gtw,dns..)<br>
Где я ошибся? Помогите пожалуйста Понять..]]></description>
        <author>Alexsz</author>
        <category>Windows</category>
      </item>
	
      </channel>
      </rss>
	