<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<title type="html"><![CDATA[Серый форум &mdash; VBS\JS: лог печати - как сделать?]]></title>
	<link rel="self" href="https://forum.script-coding.com/extern.php?action=feed&amp;tid=1493&amp;type=atom" />
	<updated>2010-11-18T13:58:35Z</updated>
	<generator>PunBB</generator>
	<id>https://forum.script-coding.com/viewtopic.php?id=1493</id>
		<entry>
			<title type="html"><![CDATA[Re: VBS\JS: лог печати - как сделать?]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=41918#p41918" />
			<content type="html"><![CDATA[<p>Хорошо!</p><p>Рабочий кусочек кода для ENG Windows:<br /></p><div class="codebox"><pre><code>            intPosL = InStr(1, strMsg, &quot;owned&quot;, vbTextCompare)
            intPosR = InStr(1, strMsg, &quot;printed&quot;, vbTextCompare)
            strOwner = Mid(strMsg, intPosL + 9, intPosR - intPosL - 14)</code></pre></div><p>Спасибо!:)</p>]]></content>
			<author>
				<name><![CDATA[bnp322]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=26392</uri>
			</author>
			<updated>2010-11-18T13:58:35Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=41918#p41918</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: VBS\JS: лог печати - как сделать?]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=41915#p41915" />
			<content type="html"><![CDATA[<p><strong>bnp322</strong>, достаточно текста одного сообщения. Вероятную причину ошибки я уже указал.</p>]]></content>
			<author>
				<name><![CDATA[Dmitrii]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=13351</uri>
			</author>
			<updated>2010-11-18T13:45:30Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=41915#p41915</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: VBS\JS: лог печати - как сделать?]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=41914#p41914" />
			<content type="html"><![CDATA[<p>Он ищет слова &quot;владельца&quot; и &quot;напечатан&quot;&nbsp; ? <img src="//forum.script-coding.com/img/smilies/big_smile.png" width="15" height="15" /></p>]]></content>
			<author>
				<name><![CDATA[bnp322]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=26392</uri>
			</author>
			<updated>2010-11-18T13:44:25Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=41914#p41914</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: VBS\JS: лог печати - как сделать?]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=41912#p41912" />
			<content type="html"><![CDATA[<p>Event Source:	Print<br />Event Category:	None<br />Event ID:	10<br />Date:		18.11.2010<br />Time:		21:33:33<br />User:		xyz\user<br />Computer:	TERMINAL<br />Description:<br />Document 21, Document owned by bnp was printed on hp LaserJet 1320 PCL 6 via port reklama.&nbsp; Size in bytes: 1008; pages printed: 1</p>]]></content>
			<author>
				<name><![CDATA[bnp322]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=26392</uri>
			</author>
			<updated>2010-11-18T13:37:27Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=41912#p41912</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: VBS\JS: лог печати - как сделать?]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=41911#p41911" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>bnp322 пишет:</cite><blockquote><p>Это?</p></blockquote></div><p>Да.</p><div class="quotebox"><cite>bnp322 пишет:</cite><blockquote><p>owned by popova &lt;...&gt; pages printed: 2</p></blockquote></div><p>Вы обратили внимание на то, что у Вас текст сообщения на английском (по крайней мере, в нужной для обработки части), а сценарий ищет слова-флаги на русском? Если нет, то вот и причина некорректной работы.</p>]]></content>
			<author>
				<name><![CDATA[Dmitrii]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=13351</uri>
			</author>
			<updated>2010-11-18T13:36:01Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=41911#p41911</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: VBS\JS: лог печати - как сделать?]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=41909#p41909" />
			<content type="html"><![CDATA[<p>Это?</p><p>Event Type:	Information<br />Event Source:	Print<br />Event Category:	None<br />Event ID:	10<br />Date:		18.11.2010<br />Time:		16:42:46<br />User:		xyz\popova<br />Computer:	TERMINAL<br />Description:<br />Document 18, Табличный документ owned by popova was printed on hp LaserJet 1320 PCL 6 (from REK1) in session 8 via port TS010.&nbsp; Size in bytes: 577450; pages printed: 2</p>]]></content>
			<author>
				<name><![CDATA[bnp322]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=26392</uri>
			</author>
			<updated>2010-11-18T13:24:49Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=41909#p41909</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: VBS\JS: лог печати - как сделать?]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=41908#p41908" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>bnp322 пишет:</cite><blockquote><p>... Если я пытаюсь все это сделать на 2003 терминальном сервере, где печатают ежедневно, то : Количество событий = 276 неизменно. Т.е. если я выберу анализ&nbsp; 1 дня или 1 месяца ничего не изменится &lt;...&gt; &quot;Вылазили&quot; пустые окна без всяких символов</p></blockquote></div><p>1. Количество найденных событий никак не зависит от диапазона дат, который назначен сценарию для анализа.<br />2. Проверьте настройки периодичности очистки журнала событий.<br />3. Имя пользователя, как уже сказано в моём предыдущем сообщении, определяйте так: <strong><span style="color: darkcyan">objItem.User</span></strong>.<br />4. Приведите содержимое одной записи журнала событий о результатах обработки задания печати. Конфиденциальные данные можете заменить на вымышленные.</p>]]></content>
			<author>
				<name><![CDATA[Dmitrii]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=13351</uri>
			</author>
			<updated>2010-11-18T13:19:45Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=41908#p41908</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: VBS\JS: лог печати - как сделать?]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=41907#p41907" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>Dmitrii пишет:</cite><blockquote><div class="quotebox"><cite>Евген пишет:</cite><blockquote><p>... Мониторинг производиться только когда в драйвере принтера указано &quot;сохранять задания после печати&quot; - это однозначно !!!</p></blockquote></div><p>Эта фраза относится к сценарию из Вашего сообщения, или из сообщения #3?</p></blockquote></div><p>Из моего - однозначно !</p>]]></content>
			<author>
				<name><![CDATA[Евген]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=25253</uri>
			</author>
			<updated>2010-11-18T13:17:15Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=41907#p41907</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: VBS\JS: лог печати - как сделать?]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=41902#p41902" />
			<content type="html"><![CDATA[<p>Поверил!<br />Если в ХР включить ведение лога - все хорошо - даже если даты за пределами.&nbsp; Переменные intPosL и intPosR были равны 42 и 56 в конце цикла.<br />Независимо от 1 или двух напечатанных страниц. Файл Results.txt адекватен.<br />Если я пытаюсь все это сделать на 2003 терминальном сервере, где печатают ежедневно, то :<br />Количество событий = 276 неизменно. Т.е. если я выберу анализ&nbsp; 1 дня или 1 месяца ничего не изменится!<br />Я пытался получить переменные, выглядело это так </p><div class="codebox"><pre><code> ...
ll = intPosL
rr = intPosR
            strOwner = Mid(strMsg, intPosL + 10, intPosR - intPosL - 11)
 ...           
Wscript.Echo ll
Wscript.Echo rr
    Wscript.Echo &quot;Готово.&quot;</code></pre></div><p>&quot;Вылазили&quot; пустые окна без всяких символов <br /><img src="//forum.script-coding.com/img/smilies/smile.png" width="15" height="15" /></p>]]></content>
			<author>
				<name><![CDATA[bnp322]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=26392</uri>
			</author>
			<updated>2010-11-18T12:56:58Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=41902#p41902</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: VBS\JS: лог печати - как сделать?]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=41898#p41898" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>bnp322 пишет:</cite><blockquote><p>... если диапазон дат мониторинга больше реально наступившего, т.е. если сейчас я выберу параметр&nbsp; &nbsp;dtmLastDate = DateValue(&quot;20.11.2010&quot;),<br />то сначала будет сообщение о кол-ве найденных сообщений (не ноль), а затем:<br />Строка:	23<br />Символ:	13<br />Ошибка:	Недопустимый вызов или аргумент процедуры: &#039;Mid&#039;<br />Код:	800A0005</p></blockquote></div><p>Вообще-то, диапазон дат (если их значения заданы корректно) не должен вызывать никакой ошибки. Можно, например, задать дату начала диапазона более позднюю, чем дата окончания диапазона. Сценарий должен отработать без ошибок (проверялось), но файл отчёта, разумеется будет пустым. Но раз у Вас возникает ошибка, то следует заняться отладкой:<br />- &quot;отловите&quot; ту итерацию цикла, при работе которой возникает ошибка;<br />- проконтролируйте значения переменных <strong><span style="color: blue">intPosL</span></strong> и <strong><span style="color: blue">intPosR</span></strong>;<br />- соотнесите полученные значения с содержимым переменной <strong><span style="color: blue">strMsg</span></strong>.</p><p>Если не справитесь самостоятельно, то выложите сюда текст, являющийся значением переменной <strong><span style="color: blue">strMsg</span></strong>.</p><p>Кстати, имя пользователя, создавшего задание печати, можно получить и проще (найденный Вами сценарий уже староват): <strong><span style="color: darkcyan">objItem.User</span></strong></p><div class="quotebox"><cite>bnp322 пишет:</cite><blockquote><p>... в остальных случаях кол-во событий есть, а файл Results.txt пустой.</p></blockquote></div><p>Такая ситуация характерна для случая, когда в журнале нет сообщений, дата создания которых попадает в заданный диапазон, либо границы диапазона (как уже упоминалось выше) заданы неверно.</p><br /><div class="quotebox"><cite>Евген пишет:</cite><blockquote><p>... Мониторинг производиться только когда в драйвере принтера указано &quot;сохранять задания после печати&quot; - это однозначно !!!</p></blockquote></div><p>Эта фраза относится к сценарию из Вашего сообщения, или из сообщения #3?<br />Если - последнее, то Вы ошибаетесь. Драйвер принтера здесь совершенно &quot;невиновен&quot;. Протоколирование успешных событий печати - системная настройка. На серверных платформах &quot;окошек&quot; она включена по умолчанию. На XP включается так:<br /><strong><span style="color: green">Папка <em>&quot;Принтеры и факсы&quot;</em> - меню <em>&quot;Файл&quot;</em> - пункт <em>&quot;Свойства сервера&quot;</em> - вкладка <em>&quot;Дополнительные параметры&quot;</em> - &quot;коробочка&quot; <em>&quot;Вести журнал сообщений очереди печати&quot;</em></span></strong>.<br />На Vista и 7 - не проверял.</p>]]></content>
			<author>
				<name><![CDATA[Dmitrii]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=13351</uri>
			</author>
			<updated>2010-11-18T11:59:13Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=41898#p41898</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: VBS\JS: лог печати - как сделать?]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=41896#p41896" />
			<content type="html"><![CDATA[<p>Позвольте и мне выложить своё решение (у меня оно для принтеров OKI &quot;окушек&quot;)<br />Мониторинг производиться только когда в драйвере принтера указано &quot;сохранять задания после печати&quot; - это однозначно !!! Не наступайте больше на эти грабли !!!<br />Устанавливать скрипт на компах, куда принтер подключен физически !<br />Потом просматривать логи на сетевой шаре в соответсвующем названию компа логе...</p><p>А вот и код...<br /></p><div class="codebox"><pre><code>Set objNetwork = CreateObject(&quot;Wscript.Network&quot;)
CompName = objNetwork.ComputerName
          
strComputer = &quot;.&quot;
Set objFSO = CreateObject(&quot;Scripting.FileSystemObject&quot;)
Const ForAppending = 8

&#039; даём принтеру установку, чтобы он сохранял задания для логирования скриптом
Set objWMIService = GetObject(&quot;winmgmts:&quot; &amp; &quot;{impersonationLevel=impersonate}!\\&quot; &amp; strComputer &amp; &quot;\root\cimv2&quot;)
Set colInstalledPrinters = objWMIService.ExecQuery(&quot;Select * from Win32_Printer&quot;)
For Each objPrinter in colInstalledPrinters
If Left(objPrinter.DeviceID,3)=&quot;OKI&quot; then
PrinterID=objPrinter.DeviceID
objPrinter.KeepPrintedJobs = True
objPrinter.Put_
End if
Next

&#039;отменяем все задания
Set colInstalledPrinters = objWMIService.ExecQuery(&quot;Select * from Win32_Printer&quot;)
For Each objPrinter in colInstalledPrinters
objPrinter.CancelAllJobs()
Next

&#039;удаляем все задания
Set colPrintJobs = objWMIService.ExecQuery(&quot;Select * from Win32_PrintJob&quot;)
For Each objPrintJob in colPrintJobs 
objPrintJob.Delete_
Next

&#039; ну и мониторим каждые 60 сек события о печати :-)
Set colPrintJobs = objWMIService.ExecNotificationQuery(&quot;select * from __InstanceCreationEvent Within 60 where TargetInstance isa &#039;Win32_PrintJob&#039; and TargetInstance.JobStatus=&#039;Напечатано&#039;&quot;)
Do While True
    Set objPrintJob = colPrintJobs.NextEvent
    If InStr(objPrintJob.TargetInstance.Name, PrinterID)&lt;&gt;0 Then 
        docname=objPrintJob.TargetInstance.Document
        size=objPrintJob.TargetInstance.Size
        owner=objPrintJob.TargetInstance.Owner
        jobstamp=WMIDateToString(objPrintJob.TargetInstance.TimeSubmitted)
        pages=objPrintJob.TargetInstance.TotalPages
        On error resume next
        Set LogFile = objFSO.OpenTextFile(&quot;\\192.168.42.90\Pubs\PM\&quot; &amp; CompName &amp; &quot;_Print.Log&quot;, ForAppending, True)
        LogFile.WriteLine Owner &amp; &quot;   &quot; &amp; jobstamp &amp; &quot;   &quot; &amp; docname &amp; &quot;   &quot; &amp; size &amp; &quot;   &quot; &amp; pages
        LogFile.Close
        On error goto 0
    End If
Loop 


Function WMIDateToString(dtmDate)

WMIDateToString = CDate(Mid(dtmDate, 5, 2) &amp; &quot;/&quot; &amp; _
                  Mid(dtmDate, 7, 2) &amp; &quot;/&quot; &amp; _
                  Left(dtmDate, 4) &amp; &quot;   &quot; &amp; _
                  Mid(dtmDate, 9, 2) &amp; &quot;:&quot; &amp; _
                  Mid(dtmDate, 11, 2) &amp; &quot;:&quot; &amp; _
                  Mid(dtmDate, 13, 2))

End Function</code></pre></div>]]></content>
			<author>
				<name><![CDATA[Евген]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=25253</uri>
			</author>
			<updated>2010-11-18T11:12:54Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=41896#p41896</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: VBS\JS: лог печати - как сделать?]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=41895#p41895" />
			<content type="html"><![CDATA[<p>Опробовал в домене 2003.<br />2 проблемы:</p><p>1. если диапазон дат мониторинга больше реально наступившего, т.е. если сейчас я выберу параметр&nbsp; &nbsp;dtmLastDate = DateValue(&quot;20.11.2010&quot;),<br />то сначала будет сообщение о кол-ве найденных сообщений (не ноль), а затем:<br />Строка:	23<br />Символ:	13<br />Ошибка:	Недопустимый вызов или аргумент процедуры: &#039;Mid&#039;<br />Код:	800A0005</p><p>2. в остальных случаях кол-во событий есть, а файл Results.txt пустой.</p>]]></content>
			<author>
				<name><![CDATA[bnp322]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=26392</uri>
			</author>
			<updated>2010-11-18T10:39:24Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=41895#p41895</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: VBS\JS: лог печати - как сделать?]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=11437#p11437" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>alexii пишет:</cite><blockquote><p>Можете расписать требуемые действия подробно, по шагам?</p></blockquote></div><p>К сожалению, пока не могу, т.к. это лишь предположение.<br />Думаю, имеет смысл порыться в справочниках по реестру на предмет поиска нужного раздела (ключа).</p>]]></content>
			<author>
				<name><![CDATA[Dmitrii]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=13351</uri>
			</author>
			<updated>2008-06-16T11:40:11Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=11437#p11437</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: VBS\JS: лог печати - как сделать?]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=11394#p11394" />
			<content type="html"><![CDATA[<div class="quotebox"><blockquote><p>можно будет включить регистрацию события об успешном завершении задания на печать в системном журнале</p></blockquote></div><p>Можете расписать требуемые действия подробно, по шагам?</p>]]></content>
			<author>
				<name><![CDATA[alexii]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=1844</uri>
			</author>
			<updated>2008-06-13T13:02:54Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=11394#p11394</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: VBS\JS: лог печати - как сделать?]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=11390#p11390" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>alexii пишет:</cite><blockquote><p>У меня такое наблюдается только на серверах печати (и на сервере терминалов). При локальной печати — в журнале тишина...</p></blockquote></div><div class="quotebox"><cite>J.Rico пишет:</cite><blockquote><p>в журнале отсортировал по Источник=Print -&gt; сообщения только об ошибках есть</p></blockquote></div><p>Приношу свои извинения за плохо протестированный сценарий. Дело в том, что я писал его и, соответственно, проверял на работоспособность именно для сервера печати, работающего под управлением Windows 2003. А так как в работе сценарий не пригодился, то я отправил его &quot;в запас&quot; и забыл о подробностях тестирования.<br />Очевидно, что на рядовых станциях он сможет работать лишь в том случае, если на них можно будет включить регистрацию события об успешном завершении задания на печать в системном журнале.</p>]]></content>
			<author>
				<name><![CDATA[Dmitrii]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=13351</uri>
			</author>
			<updated>2008-06-13T12:16:46Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=11390#p11390</id>
		</entry>
</feed>
