<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title><![CDATA[Серый форум &mdash; CMD/BAT: Удалённое создание задания в шедулере]]></title>
		<link>https://forum.script-coding.com/viewtopic.php?id=5550</link>
		<atom:link href="https://forum.script-coding.com/extern.php?action=feed&amp;tid=5550&amp;type=rss" rel="self" type="application/rss+xml" />
		<description><![CDATA[Недавние сообщения в теме «CMD/BAT: Удалённое создание задания в шедулере».]]></description>
		<lastBuildDate>Sat, 05 Mar 2011 06:55:34 +0000</lastBuildDate>
		<generator>PunBB</generator>
		<item>
			<title><![CDATA[Re: CMD/BAT: Удалённое создание задания в шедулере]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=45820#p45820</link>
			<description><![CDATA[<div class="quotebox"><cite>jite пишет:</cite><blockquote><p>Это под какую ОС такие хитрые правки реестра?</p></blockquote></div><p>Это отключение использования &quot;ждущего&quot; режима для трижды краснознаменной корпоративной хрюшки...&nbsp; &nbsp;:-)</p>]]></description>
			<author><![CDATA[null@example.com (Евген)]]></author>
			<pubDate>Sat, 05 Mar 2011 06:55:34 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=45820#p45820</guid>
		</item>
		<item>
			<title><![CDATA[Re: CMD/BAT: Удалённое создание задания в шедулере]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=45813#p45813</link>
			<description><![CDATA[<div class="quotebox"><blockquote><p>после отключения &quot;спящего&quot; режима пользователи по ошибке отправляли комп в &quot;ждущий режим&quot;...</p></blockquote></div><p>Это под какую ОС такие хитрые правки реестра?</p><p>Под Win7, то для отключения какого либо сна можно сделать все через <a href="http://technet.microsoft.com/ru-ru/library/cc748940%28WS.10%29.aspx">powercfg</a> - утилиту с довольно мерзким синтаксисом, о котором впрочем можно забыть, если мы будем использовать пакетники, а мы будем...<br />1) Ручками настраиваем <em>Сбалансированный режим</em> (например): отключаем всякие виды сна, да и вообще, настраиваем как хотим.<br />2) Сохраняем конфигурацию (обратите внимание, что этой утилите недостаточно просто имени файла - еще хочет конкретный путь, на мой взгляд это просто придурь авторов, но что сделаешь).<br /></p><div class="codebox"><pre><code>POWERCFG -export %cd%\sleep_off.cfg 381b4222-f694-41f0-9685-ff5bb260df2e</code></pre></div><p>3) На этом подготовительная часть завершена. На всех прочих машинах обеспечиваем локальное присутствие сохраненного sleep_off.cfg рядом с пакетником следующего содержания:<br /></p><div class="codebox"><pre><code>rem Set off HIBERNATE mode
POWERCFG -H OFF

rem guid for &quot;Balanced&quot; plan
set GUID=381b4222-f694-41f0-9685-ff5bb260df2e

rem guid for &quot;High efficiency&quot; plan
set tmp_GUID=8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c

rem Set Balanced inactive
POWERCFG -s %tmp_GUID%

rem delete Balanced
POWERCFG -DELETE %GUID%

rem Import saved Balanced
POWERCFG -import &quot;%cd%\sleep_off.cfg&quot; %GUID%

rem set Balanced active
POWERCFG -s %GUID%</code></pre></div><p>Смысл состоит в том, чтобы переключить режим на отличный от <em>Сбалансированного</em> для того чтобы удалить последний, затем импортировать сохраненный ранее вариант и снова сделать активным.<br />Запускаем пакетный - и больше комп спать не будет.<br />Примечание: пакетный файл&nbsp; не срабатывает при запуске с сетевого диска - по причине странного поведения <em>powercfg</em> в части чтения нелокальных файлов. <img src="//forum.script-coding.com/img/smilies/sad.png" width="15" height="15" /></p>]]></description>
			<author><![CDATA[null@example.com (jite)]]></author>
			<pubDate>Fri, 04 Mar 2011 20:51:01 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=45813#p45813</guid>
		</item>
		<item>
			<title><![CDATA[Re: CMD/BAT: Удалённое создание задания в шедулере]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=45793#p45793</link>
			<description><![CDATA[<p>Надо же ведь сколько граблей встречается в достаточно простом задании...</p><p>по факту встретился со следующим:<br />1) пользователи использовали &quot;спящий&quot; режим - отключил<br /></p><div class="codebox"><pre><code>powercfg.exe /h off</code></pre></div><p>2) после отключения &quot;спящего&quot; режима пользователи по ошибке отправляли комп в &quot;ждущий режим&quot; - отключил<br /></p><div class="codebox"><pre><code>Set WshShell=CreateObject (&quot;WScript.Shell&quot;)
Dim MaskBytes(4)
Dim TwoMaskBytes(2)
MaskBytes(0) = &amp;H04
MaskBytes(1) = &amp;H00
MaskBytes(2) = &amp;H00
MaskBytes(3) = &amp;H00
MaskStr = &quot;&quot; 
For Each MaskByte in MaskBytes 
strByte = right( &quot;00&quot; &amp; hex(MaskByte), 2 ) 
MaskStr = strByte &amp; MaskStr 
Next 
WSHShell.RegWrite &quot;HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\ACPI\Parameters\AMLIMaxCTObjs&quot;,CLng(&quot;&amp;H&quot; &amp; MaskStr), &quot;REG_BINARY&quot; 

WshShell.RegWrite &quot;HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\ACPI\Parameters\Attributes&quot;,112,&quot;REG_DWORD&quot;

TwoMaskBytes(0) = &amp;H20
TwoMaskBytes(1) = &amp;H05
MaskStr = &quot;&quot; 
For Each MaskByte in TwoMaskBytes 
strByte = right( &quot;00&quot; &amp; hex(MaskByte), 2 ) 
MaskStr = strByte &amp; MaskStr 
Next 
WshShell.RegWrite &quot;HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\ACPI\Parameters\WakeUp\FixedEventMask&quot;,CLng(&quot;&amp;H&quot; &amp; MaskStr),&quot;REG_BINARY&quot; 


TwoMaskBytes(0) = &amp;H00
TwoMaskBytes(1) = &amp;H84
MaskStr = &quot;&quot; 
For Each MaskByte in TwoMaskBytes 
strByte = right( &quot;00&quot; &amp; hex(MaskByte), 2 ) 
MaskStr = strByte &amp; MaskStr 
Next 
WshShell.RegWrite &quot;HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\ACPI\Parameters\WakeUp\FixedEventStatus&quot;,CLng(&quot;&amp;H&quot; &amp; MaskStr),&quot;REG_BINARY&quot; 

MaskBytes(0) = &amp;H18
MaskBytes(1) = &amp;H50
MaskBytes(2) = &amp;H00
MaskBytes(3) = &amp;H10
MaskStr = &quot;&quot; 
For Each MaskByte in MaskBytes 
strByte = right( &quot;00&quot; &amp; hex(MaskByte), 2 ) 
MaskStr = strByte &amp; MaskStr 
Next 
WSHShell.RegWrite &quot;HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\ACPI\Parameters\WakeUp\GenericEventMask&quot;,CLng(&quot;&amp;H&quot; &amp; MaskStr), &quot;REG_BINARY&quot; 


MaskBytes(0) = &amp;H10
MaskBytes(1) = &amp;H00
MaskBytes(2) = &amp;HFF
MaskBytes(3) = &amp;H00 
MaskStr = &quot;&quot; 
For Each MaskByte in MaskBytes 
strByte = right( &quot;00&quot; &amp; hex(MaskByte), 2 ) 
MaskStr = strByte &amp; MaskStr 
Next 
WSHShell.RegWrite &quot;HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\ACPI\Parameters\WakeUp\GenericEventStatus&quot;,CLng(&quot;&amp;H&quot; &amp; MaskStr), &quot;REG_BINARY&quot;</code></pre></div><p>3) после отключения использования &quot;ждущего&quot; режима, оказалось что некоторые пользователи просто вообще забывали выключить комп <img src="//forum.script-coding.com/img/smilies/lol.png" width="15" height="15" /> - всем в шедулер поставил shutdown -s -t 0 -f на 22:00</p><p>вот сейчас нормально стало срабатывать событие ONSTART в шедулере... <img src="//forum.script-coding.com/img/smilies/tongue.png" width="15" height="15" /></p>]]></description>
			<author><![CDATA[null@example.com (Евген)]]></author>
			<pubDate>Fri, 04 Mar 2011 09:59:00 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=45793#p45793</guid>
		</item>
		<item>
			<title><![CDATA[Re: CMD/BAT: Удалённое создание задания в шедулере]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=45715#p45715</link>
			<description><![CDATA[<p>Решение есть....<br />в конце запланированного задания добавил прописывание самого себя в назначенные задания снова.<br />Таким образом задание будет выполняться снова и снова...&nbsp; типа рекурсивный вызов...</p>]]></description>
			<author><![CDATA[null@example.com (Евген)]]></author>
			<pubDate>Tue, 01 Mar 2011 12:14:45 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=45715#p45715</guid>
		</item>
		<item>
			<title><![CDATA[Re: CMD/BAT: Удалённое создание задания в шедулере]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=45697#p45697</link>
			<description><![CDATA[<p>Коллеги, вот на какие грабли наткнулся...</p><p>задание-то удаляется после выполнения...&nbsp; :-(&nbsp; какой ключ надо добавить к schtasks чтобы не удалялось и выполнялось только при включении компа ?</p>]]></description>
			<author><![CDATA[null@example.com (Евген)]]></author>
			<pubDate>Tue, 01 Mar 2011 07:32:24 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=45697#p45697</guid>
		</item>
		<item>
			<title><![CDATA[Re: CMD/BAT: Удалённое создание задания в шедулере]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=45658#p45658</link>
			<description><![CDATA[<p>Рад, что хоть в чем-то помог.</p>]]></description>
			<author><![CDATA[null@example.com (hvs)]]></author>
			<pubDate>Mon, 28 Feb 2011 15:26:27 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=45658#p45658</guid>
		</item>
		<item>
			<title><![CDATA[Re: CMD/BAT: Удалённое создание задания в шедулере]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=45657#p45657</link>
			<description><![CDATA[<div class="quotebox"><cite>hvs пишет:</cite><blockquote><p>Как у Вас с проверкой сценария?</p></blockquote></div><p>Наверное всё-таки для большего удобства реализую на vbs а schtasks через wshshell запущу...<br />Вам ,конечно, большущее спасибо что откликнулись !</p>]]></description>
			<author><![CDATA[null@example.com (Евген)]]></author>
			<pubDate>Mon, 28 Feb 2011 15:23:54 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=45657#p45657</guid>
		</item>
		<item>
			<title><![CDATA[Re: CMD/BAT: Удалённое создание задания в шедулере]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=45655#p45655</link>
			<description><![CDATA[<p>Понятно.<br />Как у Вас с проверкой сценария? Если что-то не так - &quot;пишите и обрящите&quot;:D. В крайнем случае можно будет и вариант со считыванием пароля (паролей) из другого файла реализовать (примитивненько, но можно).</p>]]></description>
			<author><![CDATA[null@example.com (hvs)]]></author>
			<pubDate>Mon, 28 Feb 2011 14:29:12 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=45655#p45655</guid>
		</item>
		<item>
			<title><![CDATA[Re: CMD/BAT: Удалённое создание задания в шедулере]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=45654#p45654</link>
			<description><![CDATA[<div class="quotebox"><cite>hvs пишет:</cite><blockquote><p>PS<br />Я все хотел поинтересоваться, зачем Вам нужен такой непростой вариант с использованием сценариев? Вы не используете&nbsp; <strong>Active direcotry</strong>? Если используете, в ней все будет реализовываться гораздо проще и безопасней (пароли то в в сценарии придется вводить прямо в текст самого сценария прямым текстом или заморачиваться со считыванием их из другого файла.)</p></blockquote></div><p>я так понимаю что у нашего управления политические разногласия с отделом сисадминов, поэтому всё делаем через ...опу <img src="//forum.script-coding.com/img/smilies/lol.png" width="15" height="15" /><br />Был и удобнее вариант...&nbsp; через SCCM агента толкнуть нужное задание, но...&nbsp; &nbsp;политические разногласия делают своё дело...:rolleyes:</p>]]></description>
			<author><![CDATA[null@example.com (Евген)]]></author>
			<pubDate>Mon, 28 Feb 2011 14:21:03 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=45654#p45654</guid>
		</item>
		<item>
			<title><![CDATA[Re: CMD/BAT: Удалённое создание задания в шедулере]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=45640#p45640</link>
			<description><![CDATA[<p><strong>2 Евген</strong></p><div class="quotebox"><blockquote><p>полагаю что (шаг, начальное значение, конечное значение)</p></blockquote></div><p>Точнее, &quot;начало,шаг,конец&quot;</p><div class="quotebox"><blockquote><p>ещё...&nbsp; забыл такое...&nbsp; у нас много офисов, и под значением host в названии компьютеров могут быть разные буквы.<br />Например irbh, irsh, nefh, regh...&nbsp; &nbsp; т.е. это бы в начале как-то предусмотреть (если есть возможность) чтобы само брало из названия компа первые 4 символа, или устроил бы вариант в ручную в переменной указывать первые 4 символа...</p></blockquote></div><p>Однозначного решения просто не будет, точнее, в таком случае лучше использовать конструкцию цикла <strong>for</strong> в которой список не вчисляется, а просто перечисляется в скобках. Разумеется, при таком формате ключ <strong>/L</strong> уже не используется. Выглядеть будет примерно так:</p><div class="codebox"><pre><code>for %%i in (remotehost1 remotehost2 nearhost1 nearhost2 localserver1 localserver2) do (
  rem Все остальные операторы без изменений

)</code></pre></div><p>Либо можно внести список серверов в отдельный файл и считывать в цикле&nbsp; <strong>for</strong> построчно имена компьютеров (серверов или рабочих станций - уже не важно). В это случае необходимо использовать конструкцию <strong>for /F</strong>.</p><p>Допустим, в корне диска D: у Вас есть файл&nbsp; с именем <strong>hosts.lst</strong> - простой текстовый файл, где на каждой строке указано только одно имя обрабатываемого хоста, например:<br /></p><div class="codebox"><pre><code>srv1
srv2
srv3
remotesrv1
remotesrv2
remotesrv3
localsrv1
localsrv2
localsrv3
dc1
dc2
dc3
sql1
sql2
sql3
sccm1
sccm2
sccm3</code></pre></div><p>Теперь конструкция цикла будет выглядеть вот так<br /></p><div class="codebox"><pre><code>for /F %%i in (d:\hosts.lst) do (
  rem Все остальные операторы без изменений

)</code></pre></div><p>В этом случае цикл прост считывает построчно имена хостов из указанного файла и, присваивает занчение переменной %%i и выполняет с ними теже самые действия. что и первоначальном варианте.</p><br /><p>PS<br />Я все хотел поинтересоваться, зачем Вам нужен такой непростой вариант с использованием сценариев? Вы не используете&nbsp; <strong>Active direcotry</strong>? Если используете, в ней все будет реализовываться гораздо проще и безопасней (пароли то в в сценарии придется вводить прямо в текст самого сценария прямым текстом или заморачиваться со считыванием их из другого файла.)</p>]]></description>
			<author><![CDATA[null@example.com (hvs)]]></author>
			<pubDate>Mon, 28 Feb 2011 11:42:33 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=45640#p45640</guid>
		</item>
		<item>
			<title><![CDATA[Re: CMD/BAT: Удалённое создание задания в шедулере]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=45550#p45550</link>
			<description><![CDATA[<p><strong>2 hvs </strong> Спасибо что откликнулись !<br />Заранее благодарен ! <img src="//forum.script-coding.com/img/smilies/smile.png" width="15" height="15" /><br />Проверить смогу только в понедельник, если чего - обязательно отпишусь...<br />Сразу же вопрос, расшифруйте плиз эти цифры в коде (вторая строчка)<br /></p><div class="codebox"><pre><code>(1,1,99)</code></pre></div><p>полагаю что (шаг, начальное значение, конечное значение). Может быть только последовательность первых двух я попутал....<br />ещё...&nbsp; забыл такое...&nbsp; у нас много офисов, и под значением host в названии компьютеров могут быть разные буквы.<br />Например irbh, irsh, nefh, regh...&nbsp; &nbsp; т.е. это бы в начале как-то предусмотреть (если есть возможность) чтобы само брало из названия компа первые 4 символа, или устроил бы вариант в ручную в переменной указывать первые 4 символа...</p>]]></description>
			<author><![CDATA[null@example.com (Евген)]]></author>
			<pubDate>Fri, 25 Feb 2011 17:06:23 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=45550#p45550</guid>
		</item>
		<item>
			<title><![CDATA[Re: CMD/BAT: Удалённое создание задания в шедулере]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=45549#p45549</link>
			<description><![CDATA[<p>Ну тогда что то вроде этого <br /></p><div class="codebox"><pre><code>set taskname=task1
for /L %%i in (1,1,99) do (
  rem Пингуем комп
  ping host% -n 1
  rem если не откликнулся (код ошибки 1, переходим на следующую итерацию)
  if %errorlevel% 1 goto :nextstep
  rem сбрасываем код ошибки
  cd .
  rem получаем список заданий на удаленном компе 
  rem и ищем в списке имя нужного задания
  schtasks -query -s \\host%%i  -u localadminname -p localadminpassword |find /i &quot;%taskname%&quot;

  rem если такое имя не найдено программой find (код ошибки 1), переходим к созданию 
  if %errorlevel% 1 goto :createtask
  goto :nextstep

  :createtask
  rem создаем задание
  rem localadminname = имя локального админа
  rem localadminpassword = пароль локального админа
  rem onstart = запускать при старте компа
  rem notepad = notepad.exe
  rem 
  schtasks -create -s host%%i -u localadminname p localadminpassword -ru localadminname -rp localadminpassword -tn %taskname% -sc onstart -tr notepad
  :nextstep
  cd .
)</code></pre></div><p>Пишу на скорую руку по памяти с работы, могу ошибиться в расстановке ключей, если что-то непонятно или есть желание &quot;привести к божескому виду&quot; (через переменные, &quot;красивые циклы и условные опреатор&quot;) - милости прошу, спрашивайте, поправлю и объясню.</p>]]></description>
			<author><![CDATA[null@example.com (hvs)]]></author>
			<pubDate>Fri, 25 Feb 2011 16:50:14 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=45549#p45549</guid>
		</item>
		<item>
			<title><![CDATA[CMD/BAT: Удалённое создание задания в шедулере]]></title>
			<link>https://forum.script-coding.com/viewtopic.php?pid=45543#p45543</link>
			<description><![CDATA[<p>Коллеги, приветствую !<br />Есть следующая задача, в решении пакетником затрудняюсь, может быть кому-нибудь не составит труда, буду очень благодарен...&nbsp; <br />вообщем задача в следующем:<br />1) в локальной сети может быть до 99 компов однотипного наименования с числовым индексом. (например host01, host02, host03....&nbsp; &nbsp;host99)<br />2) Нужно по сети в назначенные задания каждому компу (который ответил на пинг) добавить задачу (при её отсутствии) , и нужно чтобы это задание было поставлено на событие &quot;при загрузке компьютера&quot; и запускалось от определённой учётки (от локального администратора)</p><p>для примера можно указать запуск Notepad.exe<br />Заранее благодарен.</p>]]></description>
			<author><![CDATA[null@example.com (Евген)]]></author>
			<pubDate>Fri, 25 Feb 2011 12:51:11 +0000</pubDate>
			<guid>https://forum.script-coding.com/viewtopic.php?pid=45543#p45543</guid>
		</item>
	</channel>
</rss>
