<?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:2016:09</title>
        <description>Персональный wiki-сайт</description>
        <link>https://wiki.soulruins.ru/</link>
        <lastBuildDate>Fri, 17 Apr 2026 18:06:00 +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>[POWERSHELL] Ограничения Test-Connections</title>
            <link>https://wiki.soulruins.ru/docs/blog/2016/09/test-connections_quota?rev=1473409781&amp;do=diff</link>
            <description>
&lt;h1 class=&quot;sectionedit1&quot; id=&quot;powershell_ogranichenija_test-connections&quot;&gt;[POWERSHELL] Ограничения Test-Connections&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
Недавно столкнулся с одной неожиданной проблемой, когда необходимо было проверить сетевую доступность чуть более чем 1000 хостов в локальной сети. Вдруг оказалось, что командлет &lt;code&gt;Test-Connections&lt;/code&gt; начинает ругаться на некое нарушение квоты. Погуглив эту тему, выяснить точную причину не удалось, только убедился в том, что такая проблема действительно есть.
&lt;/p&gt;

&lt;p&gt;
&lt;a href=&quot;https://wiki.soulruins.ru/_detail/docs/blog/2016/09/2016-09-08_181647.png?id=docs%3Ablog%3A2016%3A09%3Atest-connections_quota&quot; class=&quot;media&quot; title=&quot;docs:blog:2016:09:2016-09-08_181647.png&quot;&gt;&lt;img src=&quot;https://wiki.soulruins.ru/_media/docs/blog/2016/09/2016-09-08_181647.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;
&lt;/p&gt;

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

&lt;p&gt;
На деле оказалось, что &lt;code&gt;Test-Connections&lt;/code&gt; принимает не более 500 значений (по крайней мере проблема воспроизводилась на двух разных Win 10) и пришлось придумывать (и гуглить) решение:
&lt;/p&gt;
&lt;pre class=&quot;code powershell&quot;&gt;&lt;span class=&quot;re0&quot;&gt;$counter&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;pscustomobject&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;@&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt; Value &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;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&lt;span class=&quot;re0&quot;&gt;$groupSize&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;500&lt;/span&gt;
&lt;span class=&quot;re0&quot;&gt;$compgroups&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;$computers&lt;/span&gt;.Name &lt;span class=&quot;sy0&quot;&gt;|&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;Group-Object&lt;/span&gt; &lt;span class=&quot;kw5&quot;&gt;-Property&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;math&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;::Floor&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;re0&quot;&gt;$counter&lt;/span&gt;.Value&lt;span class=&quot;sy0&quot;&gt;++&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;$groupSize&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;&lt;/pre&gt;

&lt;p&gt;
Создаём счетчик, обнуляем его, говорим, что группы у нас будут состоять из максимум 500 значений, после чего долбим массив на группы. В результате получаем массив из 1081 значения, разбитый на три части:
&lt;/p&gt;
&lt;pre class=&quot;code powershell&quot;&gt;&lt;span class=&quot;sy0&quot;&gt;&amp;gt;&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;$compgroups&lt;/span&gt;
&amp;nbsp;
Count Name                      &lt;span class=&quot;kw2&quot;&gt;Group&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;sy0&quot;&gt;-----&lt;/span&gt;
  &lt;span class=&quot;nu0&quot;&gt;500&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;0&lt;/span&gt;                         &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;PC1&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; PC2&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; PC&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; PC&lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;2&lt;/span&gt;...&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
  &lt;span class=&quot;nu0&quot;&gt;500&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;                         &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;PC&lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;14&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; PC&lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;22&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; PC11&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; PC&lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;5&lt;/span&gt;&lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;8&lt;/span&gt;...&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
   &lt;span class=&quot;nu0&quot;&gt;81&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;2&lt;/span&gt;                         &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;PC&lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;PC&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; PC&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;sy0&quot;&gt;,&lt;/span&gt; PC&lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;IT&lt;span class=&quot;sy0&quot;&gt;,&lt;/span&gt; PC&lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;&lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt;...&lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;&lt;/pre&gt;

&lt;p&gt;
Как мы видим, идентификатором группы будет её имя (Name), как следствие, просто создаём цикл, в котором за три подхода опросим все хосты. Пример скрипта полностью:
&lt;/p&gt;
&lt;pre class=&quot;code powershell&quot;&gt;&lt;span class=&quot;re0&quot;&gt;$computers&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; Get&lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;ADComputer
&lt;span class=&quot;re0&quot;&gt;$counter&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;pscustomobject&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;@&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt; Value &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;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&lt;span class=&quot;re0&quot;&gt;$groupSize&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;500&lt;/span&gt;
&lt;span class=&quot;re0&quot;&gt;$compgroups&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;=&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;$computers&lt;/span&gt;.Name &lt;span class=&quot;sy0&quot;&gt;|&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;Group-Object&lt;/span&gt; &lt;span class=&quot;kw5&quot;&gt;-Property&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;math&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;::Floor&lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;re0&quot;&gt;$counter&lt;/span&gt;.Value&lt;span class=&quot;sy0&quot;&gt;++&lt;/span&gt; &lt;span class=&quot;sy0&quot;&gt;/&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;$groupSize&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;
&lt;span class=&quot;kw3&quot;&gt;foreach&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#40;&lt;/span&gt;&lt;span class=&quot;re0&quot;&gt;$i&lt;/span&gt; &lt;span class=&quot;kw3&quot;&gt;in&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;$compgroups&lt;/span&gt;.Name&lt;span class=&quot;br0&quot;&gt;&amp;#41;&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt;
    Test&lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;Connection &lt;span class=&quot;kw5&quot;&gt;-ComputerName&lt;/span&gt; &lt;span class=&quot;re0&quot;&gt;$compgroups&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#91;&lt;/span&gt;&lt;span class=&quot;re0&quot;&gt;$i&lt;/span&gt;&lt;span class=&quot;br0&quot;&gt;&amp;#93;&lt;/span&gt;.&lt;span class=&quot;kw2&quot;&gt;Group&lt;/span&gt; &lt;span class=&quot;kw5&quot;&gt;-Count&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt; &lt;span class=&quot;kw5&quot;&gt;-ErrorAction&lt;/span&gt; Ignore
    &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;&lt;/pre&gt;

&lt;p&gt;
&lt;strong&gt;P.S.&lt;/strong&gt; Внимательный читатель резонно может заменить, что такую проблему легко можно решить конструкцией вида:
&lt;/p&gt;
&lt;pre class=&quot;code powershell&quot;&gt;&lt;span class=&quot;re0&quot;&gt;$computers&lt;/span&gt;.name &lt;span class=&quot;sy0&quot;&gt;|&lt;/span&gt; &lt;span class=&quot;kw1&quot;&gt;ForEach-Object&lt;/span&gt; &lt;span class=&quot;br0&quot;&gt;&amp;#123;&lt;/span&gt; Test&lt;span class=&quot;sy0&quot;&gt;-&lt;/span&gt;Connection &lt;span class=&quot;kw5&quot;&gt;-ComputerName&lt;/span&gt; &lt;a target=&quot;_blank&quot; href=&quot;about:blank&quot;&gt;&lt;span class=&quot;kw6&quot;&gt;$_&lt;/span&gt;&lt;/a&gt; &lt;span class=&quot;kw5&quot;&gt;-Count&lt;/span&gt; &lt;span class=&quot;nu0&quot;&gt;1&lt;/span&gt; &lt;span class=&quot;kw5&quot;&gt;-ErrorAction&lt;/span&gt; Ignore &lt;span class=&quot;br0&quot;&gt;&amp;#125;&lt;/span&gt;&lt;/pre&gt;

&lt;p&gt;
Есть одно но, в примере я не акцентировал на этом внимания и не озвучивал, но опрашивать хосты планировалось в фоне (фоновые задания). Это получается сильно быстрее и не работает с такой простой конструкцией скрипта.
&lt;/p&gt;
&lt;div class=&quot;tags&quot;&gt;&lt;span&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;a href=&quot;https://wiki.soulruins.ru/tags/test-connections?do=showtag&amp;amp;tag=test-connections&quot; class=&quot;wikilink1&quot; title=&quot;tags:test-connections&quot; rel=&quot;tag&quot;&gt;test-connections&lt;/a&gt;,
	&lt;a href=&quot;https://wiki.soulruins.ru/tags/ping?do=showtag&amp;amp;tag=ping&quot; class=&quot;wikilink1&quot; title=&quot;tags:ping&quot; rel=&quot;tag&quot;&gt;ping&lt;/a&gt;,
	&lt;a href=&quot;https://wiki.soulruins.ru/tags/quota?do=showtag&amp;amp;tag=quota&quot; class=&quot;wikilink1&quot; title=&quot;tags:quota&quot; rel=&quot;tag&quot;&gt;quota&lt;/a&gt;
&lt;/span&gt;&lt;/div&gt;



&lt;/div&gt;
</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Fri, 09 Sep 2016 08:29:41 +0000</pubDate>
        </item>
    </channel>
</rss>
