<?xml version="1.0" encoding="UTF-8"?>
<!-- generator="FeedCreator 1.8" -->
<?xml-stylesheet href="https://wiki.soulruins.ru/lib/exe/css.php?s=feed" type="text/css"?>
<rss version="2.0">
    <channel xmlns:g="http://base.google.com/ns/1.0">
        <title>Philip Wiki - docs:blog:2017:09</title>
        <description>Персональный wiki-сайт</description>
        <link>https://wiki.soulruins.ru/</link>
        <lastBuildDate>Fri, 17 Apr 2026 18:06:03 +0000</lastBuildDate>
        <generator>FeedCreator 1.8</generator>
        <image>
            <url>https://wiki.soulruins.ru/_media/wiki/dokuwiki.svg</url>
            <title>Philip Wiki</title>
            <link>https://wiki.soulruins.ru/</link>
        </image>
        <item>
            <title>Telegram-Bot на PowerShell (часть 1)</title>
            <link>https://wiki.soulruins.ru/docs/blog/2017/09/ps_telegram-bot_part_1?rev=1504902984&amp;do=diff</link>
            <description>
&lt;h1 class=&quot;sectionedit1&quot; id=&quot;telegram-bot_na_powershell_chast_1&quot;&gt;Telegram-Bot на PowerShell (часть 1)&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
В продолжение статьи «&lt;a href=&quot;https://wiki.soulruins.ru/docs/blog/2017/08/cantacam_and_telegram_bots&quot; class=&quot;wikilink1&quot; title=&quot;docs:blog:2017:08:cantacam_and_telegram_bots&quot; data-wiki-id=&quot;docs:blog:2017:08:cantacam_and_telegram_bots&quot;&gt;Система наблюдения и Telegram-бот&lt;/a&gt;» описание того, с чего начать создание своего Telegram-бота на PowerShell. В этих статьях я не буду рассматривать процесс регистрации бота. Эту информацию достаточно легко найти как в официальной документации Telegram, так и на просторах интернета. Здесь же я буду рассматривать исключительно создание бота в контексте PowerShell.
&lt;/p&gt;

&lt;p&gt;
&lt;img src=&quot;https://wiki.soulruins.ru/_media/docs/blog/2017/09/647a0b06fd62ef73aa.jpg&quot; class=&quot;mediacenter&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;
&lt;/p&gt;

&lt;/div&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Telegram-Bot \u043d\u0430 PowerShell (\u0447\u0430\u0441\u0442\u044c 1)&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;telegram-bot_na_powershell_chast_1&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:1,&amp;quot;range&amp;quot;:&amp;quot;1-795&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit2&quot; id=&quot;s_chego_nachat&quot;&gt;С чего начать?&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
Так как бот подразумивает некую интерактивность, для начала следует определиться, как нам получать обновления (новые события) от него. В &lt;a href=&quot;https://core.telegram.org/bots/api#making-requests&quot; class=&quot;urlextern&quot; target=&quot;_blank&quot; title=&quot;https://core.telegram.org/bots/api#making-requests&quot; rel=&quot;ugc nofollow noopener&quot;&gt;документации описаны два варианта&lt;/a&gt;:
&lt;/p&gt;
&lt;ol&gt;
&lt;li class=&quot;level1 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;strong&gt;POLLING&lt;/strong&gt; – регулярный опрос сервера Telegram на появление новых событий&lt;/div&gt;
&lt;ol&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;i class=&quot;dw-icons fa-fw fa fa-plus&quot; style=&quot;color:green&quot; title=&quot;&quot;&gt;&lt;/i&gt; Прост в реализации&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;i class=&quot;dw-icons fa-fw fa fa-plus&quot; style=&quot;color:green&quot; title=&quot;&quot;&gt;&lt;/i&gt; Не требует дополнительной настройки фаервола&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;i class=&quot;dw-icons fa-fw fa fa-plus&quot; style=&quot;color:green&quot; title=&quot;&quot;&gt;&lt;/i&gt; Не требует наличия статического IP-адреса (или настройки динамического &lt;abbr title=&quot;Domain Name System&quot;&gt;DNS&lt;/abbr&gt;)&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;i class=&quot;dw-icons fa-fw fa fa-minus&quot; style=&quot;color:red&quot; title=&quot;&quot;&gt;&lt;/i&gt; Маленький, но всё же «лишний» трафик из-за регулярных запросов (в дачных условиях может быть критичным)&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;i class=&quot;dw-icons fa-fw fa fa-minus&quot; style=&quot;color:red&quot; title=&quot;&quot;&gt;&lt;/i&gt; Менее эффективный и быстрый&lt;/div&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;li class=&quot;level1 node&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;strong&gt;WEBHOOKS&lt;/strong&gt; – подразумивает наличие некой службы с Вашей стороны, которая будет слушать и принимать информацию о новых событиях, посылаемых сервером Telegram в Вашу сторону&lt;/div&gt;
&lt;ol&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;i class=&quot;dw-icons fa-fw fa fa-plus&quot; style=&quot;color:green&quot; title=&quot;&quot;&gt;&lt;/i&gt; Эффективен и практически не потребляет трафика&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;i class=&quot;dw-icons fa-fw fa fa-minus&quot; style=&quot;color:red&quot; title=&quot;&quot;&gt;&lt;/i&gt; Сложнее в реализации&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;i class=&quot;dw-icons fa-fw fa fa-minus&quot; style=&quot;color:red&quot; title=&quot;&quot;&gt;&lt;/i&gt; Требует настройки фаервола&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level2&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;i class=&quot;dw-icons fa-fw fa fa-minus&quot; style=&quot;color:red&quot; title=&quot;&quot;&gt;&lt;/i&gt; Требует статический IP-адрес&lt;/div&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;
Самым простым в реализации является первый вариант, его мы и будем рассматривать, но в перспективе следует задуматься о реализации варианта номер два.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0421 \u0447\u0435\u0433\u043e \u043d\u0430\u0447\u0430\u0442\u044c?&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;s_chego_nachat&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:2,&amp;quot;range&amp;quot;:&amp;quot;796-2930&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit3&quot; id=&quot;oprashivaem_bota&quot;&gt;Опрашиваем бота&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
Итак мы определились, что будем использовать пуллинг, т.е. ручной запрос к серверу Telegram. В упоминаемой выше документации написано, что пулинг надо производить используя метод &lt;a href=&quot;https://core.telegram.org/bots/api#getupdates&quot; class=&quot;urlextern&quot; target=&quot;_blank&quot; title=&quot;https://core.telegram.org/bots/api#getupdates&quot; rel=&quot;ugc nofollow noopener&quot;&gt;getUpdates&lt;/a&gt;. В контексте данного метода самым интересным является параметр &lt;code&gt;offset&lt;/code&gt;, этим параметром мы можем определить, как и в каком количестве получать обновления:
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;code&gt;0&lt;/code&gt; – получать все обновления (новые, старые, все…)&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;code&gt;-1&lt;/code&gt; – получить только последнее обновление (одно!)&lt;/div&gt;
&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt; &lt;code&gt;id последнего обновления + 1&lt;/code&gt; – получить только новые события и отметить их просмотренными (логично, что id последнего обновления мы должны заранее знать и, само собой, не забыть сохранить новое)&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;
Пример простого скрипта для получания массива &lt;strong&gt;всех&lt;/strong&gt; обновлений бота посредством &lt;a href=&quot;https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.utility/invoke-webrequest?view=powershell-5.1&quot; class=&quot;urlextern&quot; target=&quot;_blank&quot; title=&quot;https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.utility/invoke-webrequest?view=powershell-5.1&quot; rel=&quot;ugc nofollow noopener&quot;&gt;Invoke-WebRequest&lt;/a&gt;:
&lt;/p&gt;
&lt;dl class=&quot;code&quot;&gt;
&lt;dt&gt;&lt;a href=&quot;https://wiki.soulruins.ru/_export/code/docs/blog/2017/09/ps_telegram-bot_part_1?codeblock=0&quot; title=&quot;Скачать фрагмент кода&quot; class=&quot;mediafile mf_ps1&quot;&gt;Get-TelegramBotUpdates.ps1&lt;/a&gt;&lt;/dt&gt;
&lt;dd&gt;&lt;pre class=&quot;code powershell&quot;&gt;&lt;span class=&quot;co1&quot;&gt;# определяем переменные&lt;/span&gt;
&lt;span class=&quot;re0&quot;&gt;$token&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;&amp;lt;&lt;/span&gt;ваш_токен&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt; &lt;span class=&quot;co1&quot;&gt;# указываем свой токен&lt;/span&gt;
&lt;span class=&quot;re0&quot;&gt;$ChatTimeout&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;3&lt;/span&gt; &lt;span class=&quot;co1&quot;&gt;# таймаут в секундах&lt;/span&gt;
&lt;span class=&quot;re0&quot;&gt;$allowed_updates&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;@&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;message&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;channel_post&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;inline_query&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;chosen_inline_result&amp;quot;&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;st0&quot;&gt;&amp;quot;callback_query&amp;quot;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;co1&quot;&gt;# ограничиваем тип получаемых событий&lt;/span&gt;
&lt;span class=&quot;re0&quot;&gt;$allowed_updates&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; ConvertTo&lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;Json &lt;span class=&quot;kw5&quot;&gt;-InputObject&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;$allowed_updates&lt;/span&gt; &lt;span class=&quot;co1&quot;&gt;# конвертируем тип обновлений в json&lt;/span&gt;
&lt;span class=&quot;re0&quot;&gt;$UpdateId&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt; &lt;span class=&quot;co1&quot;&gt;# какие события получаем? 0 - все, -1 только последнее, lastid+1 - получить новые и отметить их просмотренными&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;co1&quot;&gt;# формируем URL&lt;/span&gt;
&lt;span class=&quot;re0&quot;&gt;$URL&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;st0&quot;&gt;&amp;quot;https://api.telegram.org/bot$token/getUpdates?offset=$UpdateId&amp;amp;allowed_updates=$allowed_updates&amp;amp;timeout=$ChatTimeout&amp;quot;&lt;/span&gt;
&amp;nbsp;
&lt;span class=&quot;co1&quot;&gt;# делаем запрос и преобразуем ответ из json&lt;/span&gt;
&lt;span class=&quot;re0&quot;&gt;$Request&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; Invoke&lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;WebRequest &lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;Uri &lt;span class=&quot;re0&quot;&gt;$URL&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;Method Get
&lt;span class=&quot;re0&quot;&gt;$content&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; ConvertFrom&lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;Json &lt;span class=&quot;re0&quot;&gt;$Request&lt;/span&gt;.content
&amp;nbsp;
&lt;span class=&quot;co1&quot;&gt;# смотрим, что получили, но из содержания массива $content &amp;quot;вытащим&amp;quot; только текст сообщений&lt;/span&gt;
&lt;span class=&quot;re0&quot;&gt;$content&lt;/span&gt;.result.message.text&lt;/pre&gt;
&lt;/dd&gt;&lt;/dl&gt;

&lt;p&gt;
&lt;video class=&quot;mediacenter&quot; width=&quot;800&quot; height=&quot;240&quot; controls=&quot;controls&quot;&gt;
&lt;source src=&quot;https://wiki.soulruins.ru/_media/docs/blog/2017/09/telegram.mp4&quot; type=&quot;video/mp4&quot; /&gt;
&lt;a href=&quot;https://wiki.soulruins.ru/_media/docs/blog/2017/09/telegram.mp4&quot; class=&quot;media mediafile mf_mp4&quot; title=&quot;docs:blog:2017:09:telegram.mp4 (188.4 KB)&quot;&gt;telegram.mp4&lt;/a&gt;&lt;/video&gt;

&lt;/p&gt;

&lt;p&gt;
Разумеется, если мы хотим получить «говорящего» бота, нужно регулярно проверять обновления, чтобы вовремя реагировать на них.
&lt;/p&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u041e\u043f\u0440\u0430\u0448\u0438\u0432\u0430\u0435\u043c \u0431\u043e\u0442\u0430&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;oprashivaem_bota&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:3,&amp;quot;range&amp;quot;:&amp;quot;2931-5988&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit4&quot; id=&quot;sozdajom_zadanie_v_planirovschike&quot;&gt;Создаём задание в планировщике&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
Итак, у нас есть бот, мы умеем «читать» сообщения из чата с ним, теперь нам осталось как-то это автоматизировать. Проще всего запускать наш скрипт заданием из планировщика Windows.
&lt;/p&gt;

&lt;p&gt;
Правда здесь есть одна проблема: планировщик Windows &lt;strong&gt;не умеет запускать задачи чаще чем раз в пять минут&lt;/strong&gt;, а это, согласитесь, достаточно долгая пауза для проверки чата. &lt;img src=&quot;https://wiki.soulruins.ru/lib/images/smileys/smile.svg&quot; class=&quot;icon smiley&quot; alt=&quot;:-)&quot; /&gt; Но можно обойти это ограничение, просто создав несколько триггеров с необходимым интервалом между ними. Сделаем такую задачу в планировщике (не забудьте изменить путь к скрипту):
&lt;/p&gt;
&lt;pre class=&quot;code powershell&quot;&gt;&lt;span class=&quot;co1&quot;&gt;# создаём массив из триггеров&lt;/span&gt;
&lt;span class=&quot;re0&quot;&gt;$triggers&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;@&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt;
&lt;span class=&quot;re0&quot;&gt;$triggers&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;+=&lt;/span&gt; New&lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;ScheduledTaskTrigger &lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;RepetitionInterval &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw1&quot;&gt;New-TimeSpan&lt;/span&gt; &lt;span class=&quot;kw5&quot;&gt;-Minutes&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;RepetitionDuration &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;System.TimeSpan&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;::MaxValue&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;At &lt;span class=&quot;nu0&quot;&gt;12&lt;/span&gt;:00:00 &lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;Once
&lt;span class=&quot;re0&quot;&gt;$triggers&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;+=&lt;/span&gt; New&lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;ScheduledTaskTrigger &lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;RepetitionInterval &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw1&quot;&gt;New-TimeSpan&lt;/span&gt; &lt;span class=&quot;kw5&quot;&gt;-Minutes&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;RepetitionDuration &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;System.TimeSpan&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;::MaxValue&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;At &lt;span class=&quot;nu0&quot;&gt;12&lt;/span&gt;:00:&lt;span class=&quot;nu0&quot;&gt;10&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;Once
&lt;span class=&quot;re0&quot;&gt;$triggers&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;+=&lt;/span&gt; New&lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;ScheduledTaskTrigger &lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;RepetitionInterval &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw1&quot;&gt;New-TimeSpan&lt;/span&gt; &lt;span class=&quot;kw5&quot;&gt;-Minutes&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;RepetitionDuration &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;System.TimeSpan&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;::MaxValue&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;At &lt;span class=&quot;nu0&quot;&gt;12&lt;/span&gt;:00:&lt;span class=&quot;nu0&quot;&gt;20&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;Once
&lt;span class=&quot;re0&quot;&gt;$triggers&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;+=&lt;/span&gt; New&lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;ScheduledTaskTrigger &lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;RepetitionInterval &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw1&quot;&gt;New-TimeSpan&lt;/span&gt; &lt;span class=&quot;kw5&quot;&gt;-Minutes&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;RepetitionDuration &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;System.TimeSpan&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;::MaxValue&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;At &lt;span class=&quot;nu0&quot;&gt;12&lt;/span&gt;:00:&lt;span class=&quot;nu0&quot;&gt;30&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;Once
&lt;span class=&quot;re0&quot;&gt;$triggers&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;+=&lt;/span&gt; New&lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;ScheduledTaskTrigger &lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;RepetitionInterval &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw1&quot;&gt;New-TimeSpan&lt;/span&gt; &lt;span class=&quot;kw5&quot;&gt;-Minutes&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;RepetitionDuration &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;System.TimeSpan&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;::MaxValue&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;At &lt;span class=&quot;nu0&quot;&gt;12&lt;/span&gt;:00:&lt;span class=&quot;nu0&quot;&gt;40&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;Once
&lt;span class=&quot;re0&quot;&gt;$triggers&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;+=&lt;/span&gt; New&lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;ScheduledTaskTrigger &lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;RepetitionInterval &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;kw1&quot;&gt;New-TimeSpan&lt;/span&gt; &lt;span class=&quot;kw5&quot;&gt;-Minutes&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;RepetitionDuration &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;System.TimeSpan&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;::MaxValue&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;At &lt;span class=&quot;nu0&quot;&gt;12&lt;/span&gt;:00:&lt;span class=&quot;nu0&quot;&gt;50&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;Once
&lt;span class=&quot;co1&quot;&gt;# определяем действие (запуск нашего скрипта)&lt;/span&gt;
&lt;span class=&quot;re0&quot;&gt;$action&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; New&lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;ScheduledTaskAction &lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;Execute &lt;span class=&quot;st0&quot;&gt;&#039;powershell.exe&#039;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;Argument &lt;span class=&quot;st0&quot;&gt;&#039;-File &amp;quot;.\Get-TelegramBotUpdates.ps1&amp;quot;&#039;&lt;/span&gt; &lt;span class=&quot;co1&quot;&gt;# путь изменить на свой&lt;/span&gt;
&lt;span class=&quot;re0&quot;&gt;$settings&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; New&lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;ScheduledTaskSettingsSet
&lt;span class=&quot;co1&quot;&gt;# формируем задачу...&lt;/span&gt;
&lt;span class=&quot;re0&quot;&gt;$task&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; New&lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;ScheduledTask &lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;Action &lt;span class=&quot;re0&quot;&gt;$action&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;Trigger &lt;span class=&quot;re0&quot;&gt;$triggers&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;Settings &lt;span class=&quot;re0&quot;&gt;$settings&lt;/span&gt;
&lt;span class=&quot;co1&quot;&gt;# ...и создаём её в планировщике&lt;/span&gt;
Register&lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;ScheduledTask &lt;span class=&quot;st0&quot;&gt;&#039;TelegramBot&#039;&lt;/span&gt; &lt;span class=&quot;kw5&quot;&gt;-InputObject&lt;/span&gt; $task&lt;/pre&gt;

&lt;p&gt;
Вот и всё. Теперь мы проверяем обновления нашего чата каждые 10 секунд.
&lt;/p&gt;

&lt;p&gt;
&lt;i class=&quot;dw-icons fa-fw fa fa-clock-o&quot; style=&quot;&quot; title=&quot;&quot;&gt;&lt;/i&gt; Продолжение следует…
&lt;/p&gt;


&lt;div class=&quot;tags&quot;&gt;&lt;span&gt;
	&lt;a href=&quot;https://wiki.soulruins.ru/tags/telegram?do=showtag&amp;amp;tag=telegram&quot; class=&quot;wikilink1&quot; title=&quot;tags:telegram&quot; rel=&quot;tag&quot;&gt;telegram&lt;/a&gt;,
	&lt;a href=&quot;https://wiki.soulruins.ru/tags/bot?do=showtag&amp;amp;tag=bot&quot; class=&quot;wikilink1&quot; title=&quot;tags:bot&quot; rel=&quot;tag&quot;&gt;bot&lt;/a&gt;,
	&lt;a href=&quot;https://wiki.soulruins.ru/tags/powershell?do=showtag&amp;amp;tag=powershell&quot; class=&quot;wikilink1&quot; title=&quot;tags:powershell&quot; rel=&quot;tag&quot;&gt;powershell&lt;/a&gt;
&lt;/span&gt;&lt;/div&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0421\u043e\u0437\u0434\u0430\u0451\u043c \u0437\u0430\u0434\u0430\u043d\u0438\u0435 \u0432 \u043f\u043b\u0430\u043d\u0438\u0440\u043e\u0432\u0449\u0438\u043a\u0435&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;sozdajom_zadanie_v_planirovschike&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:1,&amp;quot;secid&amp;quot;:4,&amp;quot;range&amp;quot;:&amp;quot;5989-&amp;quot;} --&gt;</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Fri, 08 Sep 2017 20:36:24 +0000</pubDate>
        </item>
    </channel>
</rss>
