<?xml version="1.0" encoding="UTF-8"?>
<!-- generator="FeedCreator 1.8" -->
<?xml-stylesheet href="https://wiki.autosys.tk/lib/exe/css.php?s=feed" type="text/css"?>
<rss version="2.0">
    <channel xmlns:g="http://base.google.com/ns/1.0">
        <title>wiki.autosys.tk - ms_windows_ms_sql</title>
        <description></description>
        <link>https://wiki.autosys.tk/</link>
        <lastBuildDate>Sun, 19 Apr 2026 11:45:02 +0000</lastBuildDate>
        <generator>FeedCreator 1.8</generator>
        <image>
            <url>https://wiki.autosys.tk/_media/wiki/dokuwiki.svg</url>
            <title>wiki.autosys.tk</title>
            <link>https://wiki.autosys.tk/</link>
        </image>
        <item>
            <title>1с-7-7-ошибка-sql-attempt-to-fetch-logical-page-database-failed</title>
            <link>https://wiki.autosys.tk/ms_windows_ms_sql/1%D1%81-7-7-%D0%BE%D1%88%D0%B8%D0%B1%D0%BA%D0%B0-sql-attempt-to-fetch-logical-page-database-failed</link>
            <description>
&lt;h1 class=&quot;sectionedit1&quot; id=&quot;ошибка&quot;&gt;Ошибка&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
Ошибка 1С 7.7 выглядела как-то так:&lt;br/&gt;

&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;SQL State: 425000
Native: 605
Message: [Microsoft][ODBC SQL Server Driver][SQL Server[Attempt to fetch logical page (10:4232) in database &amp;#039;sql_1c&amp;#039; belongs to object &amp;#039;SC9656&amp;#039;, not to object &amp;#039;SC9519&amp;#039;..&lt;/pre&gt;

&lt;p&gt;
В первую очередь - сделал бекап SQL базы. На всякий случай.&lt;br/&gt;

При попытке выгрузить базу средствами 1С - то же самое. Восстановление базы SQL из самого последнего бекапа (несколько часов назад) не помогло. &lt;br/&gt;

&lt;/p&gt;

&lt;p&gt;
При попытке выполнить &lt;br/&gt;

&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;DBCC CHECKDB (sql_1c, repair_rebuild)&lt;/pre&gt;

&lt;p&gt;
Говорит что &lt;br/&gt;

&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;consistency errors in sysobjects, sysindexes, syscolumns, or systypes prevent further CHECK processing.&lt;/pre&gt;

&lt;p&gt;
Переиндексация командой &lt;br/&gt;

&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;EXEC _1sp_DBReindex&lt;/pre&gt;

&lt;p&gt;
тоже не помогла. &lt;br/&gt;

&lt;/p&gt;

&lt;p&gt;
А помогла проверка и исправление таблицы, которая указана в ошибке второй (то есть SC9519) с параметром &lt;strong&gt;REPAIR_ALLOW_DATA_LOSS&lt;/strong&gt;:&lt;br/&gt;

&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;USE sql_1c
GO
alter database sql_1c set single_user with rollback immediate
GO

DBCC CHECKTABLE (SC9519, REPAIR_ALLOW_DATA_LOSS)

alter database sql_1c set multi_user
GO&lt;/pre&gt;

&lt;p&gt;
На всякий случай - проверяем эту таблицу дважды.
&lt;/p&gt;

&lt;/div&gt;
</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Mon, 11 Feb 2019 09:13:27 +0000</pubDate>
        </item>
        <item>
            <title>10016_error_application_specific_permission_settings_do_not_grant</title>
            <link>https://wiki.autosys.tk/ms_windows_ms_sql/10016_error_application_specific_permission_settings_do_not_grant</link>
            <description>
&lt;h1 class=&quot;sectionedit1&quot; id=&quot;проблема&quot;&gt;Проблема&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
На одном из серверов я начал наблюдать в журнале ошибки &lt;strong&gt;Error 100016&lt;/strong&gt;.
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;The machine-default permission settings do not grant Local Activation permission for the COM Server application with CLSID 
{C2F03A33-21F5-47FA-B4BB-156362A2F239}
 and APPID 
{316CDED5-E4AE-4B15-9113-7055D84DCC97}
 to the user DOMAIN\user SID (S-1-5-21-578429825-1942577684-262303683-18162) from address LocalHost (Using LRPC) running in the application container Unavailable SID (Unavailable). This security permission can be modified using the Component Services administrative tool.&lt;/pre&gt;

&lt;p&gt;
Это означает, что у пользователя &lt;strong&gt;RIMOS_NT_01\CitrixAdmin&lt;/strong&gt; нехватает прав для &lt;strong&gt;Local Activation&lt;/strong&gt; &lt;br/&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;\u041f\u0440\u043e\u0431\u043b\u0435\u043c\u0430&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0430&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:1,&amp;quot;range&amp;quot;:&amp;quot;1-800&amp;quot;} --&gt;
&lt;h1 class=&quot;sectionedit2&quot; id=&quot;решение&quot;&gt;Решение&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
Поиск в реестре по &lt;strong&gt;CLSID&lt;/strong&gt; {C2F03A33-21F5-47FA-B4BB-156362A2F239} позволил выявить имя приложения &lt;strong&gt;DCOM&lt;/strong&gt;. В моем случае это  &lt;strong&gt;Immersive Shell&lt;/strong&gt;. &lt;br/&gt;

Дальше запускаем &lt;strong&gt;dcomcnfg&lt;/strong&gt; и идем &lt;strong&gt;Component Services&lt;/strong&gt; → &lt;strong&gt;Computers&lt;/strong&gt; → &lt;strong&gt;My Computer&lt;/strong&gt; → &lt;strong&gt;DCOM Config&lt;/strong&gt; → &lt;strong&gt;Immersive Shell&lt;/strong&gt; → &lt;strong&gt;Properties&lt;/strong&gt; и открываем вкладку &lt;strong&gt;Security&lt;/strong&gt;.
Однако, на вкладке &lt;strong&gt;Security&lt;/strong&gt; все серое. &lt;br/&gt;

Значит надо получить права.
&lt;/p&gt;

&lt;p&gt;
Открываем regedit и находим ключ в реестстре в ветке &lt;strong&gt;[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID]&lt;/strong&gt; с именем &lt;strong&gt;{C2F03A33-21F5-47FA-B4BB-156362A2F239}&lt;/strong&gt;. Жмем правой кнопкой и идем в &lt;strong&gt;Permissions&lt;/strong&gt;. Затем - &lt;strong&gt;Advanced&lt;/strong&gt;. &lt;br/&gt;

Сверху указан &lt;strong&gt;Owner&lt;/strong&gt; и скорее всего это &lt;strong&gt;TrustedInstaller&lt;/strong&gt;. Для того, чтобы назначать права необходимо стать владельцем. Жмем &lt;strong&gt;Change&lt;/strong&gt;, выбираем свою учетную запись и жмем &lt;strong&gt;Apply&lt;/strong&gt;.
После этого даем своей учетке (или группе) права &lt;strong&gt;Full Control&lt;/strong&gt;. &lt;br/&gt;

Теперь нужно повторить это и получить права &lt;strong&gt;Full Control&lt;/strong&gt; для  &lt;strong&gt;APPID&lt;/strong&gt; {316CDED5-E4AE-4B15-9113-7055D84DCC97} в ветке &lt;strong&gt;[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Wow6432Node\AppID\]&lt;/strong&gt;.
&lt;/p&gt;

&lt;p&gt;
В результате в свойствах DCOM приложения на вкладке &lt;strong&gt;Security&lt;/strong&gt; можно будет отредактировать права на запуск. Открываем &lt;strong&gt;dcomcnfg&lt;/strong&gt;, идем &lt;strong&gt;Component Services&lt;/strong&gt; → &lt;strong&gt;Computers&lt;/strong&gt; → &lt;strong&gt;My Computer&lt;/strong&gt; → &lt;strong&gt;DCOM Config&lt;/strong&gt; → &lt;strong&gt;Immersive Shell&lt;/strong&gt; → &lt;strong&gt;Properties&lt;/strong&gt; и на вкладке &lt;strong&gt;Security&lt;/strong&gt; жмем &lt;strong&gt;Edit&lt;/strong&gt; в разделе &lt;strong&gt;Launch and Activation Permissions&lt;/strong&gt; и даем необходимые права (в данном случае &lt;strong&gt;Local Activation&lt;/strong&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;\u0420\u0435\u0448\u0435\u043d\u0438\u0435&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0440\u0435\u0448\u0435\u043d\u0438\u0435&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:1,&amp;quot;secid&amp;quot;:2,&amp;quot;range&amp;quot;:&amp;quot;801-&amp;quot;} --&gt;</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Mon, 11 Feb 2019 09:13:27 +0000</pubDate>
        </item>
        <item>
            <title>add_private_key_to_ssl_certificate</title>
            <link>https://wiki.autosys.tk/ms_windows_ms_sql/add_private_key_to_ssl_certificate</link>
            <description>
&lt;h1 class=&quot;sectionedit1&quot; id=&quot;проблема&quot;&gt;Проблема&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
Thawte выдал сертификат SSL123, но в сертификате нет private key.
Нужно извлечь private key из файла pfx и пришить его к выданному сертификату.
&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;\u041f\u0440\u043e\u0431\u043b\u0435\u043c\u0430&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0430&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:1,&amp;quot;range&amp;quot;:&amp;quot;1-259&amp;quot;} --&gt;
&lt;h1 class=&quot;sectionedit2&quot; id=&quot;решение&quot;&gt;Решение&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
Предполагается, что запрос сертификата был создан с помощью оснастки &lt;strong&gt;certmgr.msc&lt;/strong&gt;.
&lt;/p&gt;

&lt;p&gt;
Открываем &lt;strong&gt;mmc.exe&lt;/strong&gt; добавляем оснастку &lt;strong&gt;Certificates (local computer)&lt;/strong&gt;. 
Дальше идем в &lt;strong&gt;Certificate Enrollment Requests (Запросы заявок на сертификат)&lt;/strong&gt; и экспортируем файл с личными данными &lt;strong&gt;.pfx&lt;/strong&gt;. 
При экспорте указываем, что нам нужен закрытый ключ и вводим пароль.
На выходе имеем файл &lt;strong&gt;.pfx&lt;/strong&gt;. В файле &lt;strong&gt;.pfx&lt;/strong&gt; лежит самоподписаннный сертификат и приватный (закрытый) ключ. Мы должны извлечь из этого файла приватный ключ и склеить его с сертификатом Thawte в новый файл &lt;strong&gt;.pfx&lt;/strong&gt;. 
&lt;/p&gt;

&lt;p&gt;
Скачиваем и ставим &lt;a href=&quot;http://slproweb.com/download/Win64OpenSSL_Light-1_0_2c.exe&quot; class=&quot;urlextern&quot; title=&quot;http://slproweb.com/download/Win64OpenSSL_Light-1_0_2c.exe&quot; rel=&quot;ugc nofollow&quot;&gt;http://slproweb.com/download/Win64OpenSSL_Light-1_0_2c.exe&lt;/a&gt;
Сначала преобразуем контейнер формата &lt;strong&gt;pfx&lt;/strong&gt; в формат &lt;strong&gt;pem&lt;/strong&gt;, но указываем, что экспортировать сертификат не надо:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;c:\OpenSSL-Win64\bin&amp;gt;openssl pkcs12 -in request_with_key.pfx -nocerts -out key.pem
WARNING: can&amp;#039;t open config file: /usr/local/ssl/openssl.cnf
Enter Import Password:
MAC verified OK
Enter PEM pass phrase:
Verifying - Enter PEM pass phrase:&lt;/pre&gt;

&lt;p&gt;
Утилита спросит пароль, который вводили при экспорте &lt;strong&gt;pfx&lt;/strong&gt; и два раза пароль для контейнера &lt;strong&gt;pem&lt;/strong&gt;.
&lt;/p&gt;

&lt;p&gt;
Затем получаем из закрытого ключа открытый:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;openssl rsa -in key.pem -out myserver.key&lt;/pre&gt;

&lt;p&gt;
А теперь создаем новый pfx, в котором будет ключ и сертификат Thawte:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;openssl pkcs12 -export -out domain.name.pfx -inkey domain.name.key -in domain.name.crt&lt;/pre&gt;

&lt;p&gt;
тут &lt;strong&gt;domain.name.pfx&lt;/strong&gt; - это выходной файл в который попадет сертификат и ключ, &lt;strong&gt;domain.name.key&lt;/strong&gt; - это файлик &lt;strong&gt;myserver.key&lt;/strong&gt;, вытащенный на предыдущем этапе, &lt;strong&gt;domain.name.crt&lt;/strong&gt; - это сертификат, полученный от Thawte.
&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;\u0420\u0435\u0448\u0435\u043d\u0438\u0435&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0440\u0435\u0448\u0435\u043d\u0438\u0435&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:2,&amp;quot;range&amp;quot;:&amp;quot;260-&amp;quot;} --&gt;</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Mon, 11 Feb 2019 09:13:27 +0000</pubDate>
        </item>
        <item>
            <title>advanced_disk_diag</title>
            <link>https://wiki.autosys.tk/ms_windows_ms_sql/advanced_disk_diag</link>
            <description>
&lt;p&gt;
Случайно наткнулся в интернетах на &lt;a href=&quot;https://rlab.ru/tools/rtester.html&quot; class=&quot;urlextern&quot; title=&quot;https://rlab.ru/tools/rtester.html&quot; rel=&quot;ugc nofollow&quot;&gt;R.tester&lt;/a&gt; от Михаила Маврицина. &lt;br/&gt;

описание очень многообещающее. &lt;br/&gt;

Утащил к себе, на всякий случай: &lt;a href=&quot;https://wiki.autosys.tk/_media/ms_windows_ms_sql/r.tester.zip&quot; class=&quot;media mediafile mf_zip&quot; title=&quot;ms_windows_ms_sql:r.tester.zip (1.1 MB)&quot;&gt;r.tester.zip - 25.04.2019&lt;/a&gt;
&lt;/p&gt;
</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Thu, 25 Apr 2019 13:35:33 +0000</pubDate>
        </item>
        <item>
            <title>adws_warning_event_1400</title>
            <link>https://wiki.autosys.tk/ms_windows_ms_sql/adws_warning_event_1400</link>
            <description>
&lt;h1 class=&quot;sectionedit1&quot; id=&quot;проблема&quot;&gt;Проблема&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
Система - &lt;strong&gt;Windows Server 2012 R2&lt;/strong&gt;.
В журналах ошибки 1202, 1206, 1400.
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;Active Directory Web Services could not find a server certificate with the specified certificate name. A certificate is required to use SSL/TLS connections. To use SSL/TLS connections, verify that a valid server authentication certificate from a trusted Certificate Authority (CA) is installed on the machine.
 
 Certificate name: DC01.emr.local&lt;/pre&gt;

&lt;p&gt;
Судя по тексту - отсутствует нормальный сертификат.
Однако, сертификат имеется. &lt;strong&gt;Certification Authority&lt;/strong&gt; размещен на этом же DC. Перевыпуск сертификата по темплейту &lt;strong&gt;Domain Controller Authentication&lt;/strong&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;\u041f\u0440\u043e\u0431\u043b\u0435\u043c\u0430&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0430&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:1,&amp;quot;range&amp;quot;:&amp;quot;1-845&amp;quot;} --&gt;
&lt;h1 class=&quot;sectionedit2&quot; id=&quot;причина_и_решение&quot;&gt;Причина и решение&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
&lt;a href=&quot;https://social.technet.microsoft.com/Forums/Lync/en-US/21849a06-e89b-4c53-b4b4-bf0ba5087c0b/adws-certificate-warning-1400-despite-valid-certificate-on-all-dcs?forum=winserversecurity&quot; class=&quot;urlextern&quot; title=&quot;https://social.technet.microsoft.com/Forums/Lync/en-US/21849a06-e89b-4c53-b4b4-bf0ba5087c0b/adws-certificate-warning-1400-despite-valid-certificate-on-all-dcs?forum=winserversecurity&quot; rel=&quot;ugc nofollow&quot;&gt;https://social.technet.microsoft.com/Forums/Lync/en-US/21849a06-e89b-4c53-b4b4-bf0ba5087c0b/adws-certificate-warning-1400-despite-valid-certificate-on-all-dcs?forum=winserversecurity&lt;/a&gt; &lt;br/&gt;

Причиной является не вполне корректный темплейт &lt;strong&gt;Domain Controller Authentication&lt;/strong&gt;. Для того, чтобы его исправить:
&lt;/p&gt;
&lt;ol&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt;
 запускаем &lt;strong&gt;mmc.exe&lt;/strong&gt;.
&lt;/div&gt;&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt;
 &lt;strong&gt;File&lt;/strong&gt; → &lt;strong&gt;Add/Remove Snap-in…&lt;/strong&gt; → &lt;strong&gt;Certificate Templates&lt;/strong&gt; → &lt;strong&gt;Add&lt;/strong&gt;.
&lt;/div&gt;&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt;
 Находим и открываем &lt;strong&gt;Domain Controller Authentication&lt;/strong&gt;.
&lt;/div&gt;&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt;
 Сразу можно поставить срок валидности подольше и поставить галочку &lt;strong&gt;Publish Certificate in Active Directory&lt;/strong&gt;.
&lt;/div&gt;&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt;
 Дальше самое главное - идем во вкладку &lt;strong&gt;Subject Name&lt;/strong&gt; и в поле &lt;strong&gt;Subject Name Format&lt;/strong&gt; выбираем &lt;strong&gt;Common Name&lt;/strong&gt;, а также оставляем только галку &lt;strong&gt;&lt;abbr title=&quot;Domain Name System&quot;&gt;DNS&lt;/abbr&gt; Name&lt;/strong&gt;.
&lt;/div&gt;&lt;/li&gt;
&lt;/ol&gt;


&lt;p&gt;
Все. Теперь можно перевыпускать сертификат по шаблону &lt;strong&gt;Domain Controller Authentication&lt;/strong&gt;. При выпуске указываем &lt;strong&gt;Common Name&lt;/strong&gt; с FQDN-именем контроллера домена. После выпуска сертификата перезапускаем службу &lt;strong&gt;ADWS&lt;/strong&gt; и радуемся:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;net stop adws
net start adws&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u041f\u0440\u0438\u0447\u0438\u043d\u0430 \u0438 \u0440\u0435\u0448\u0435\u043d\u0438\u0435&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u043f\u0440\u0438\u0447\u0438\u043d\u0430_\u0438_\u0440\u0435\u0448\u0435\u043d\u0438\u0435&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:1,&amp;quot;secid&amp;quot;:2,&amp;quot;range&amp;quot;:&amp;quot;846-&amp;quot;} --&gt;</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Mon, 11 Feb 2019 09:13:27 +0000</pubDate>
        </item>
        <item>
            <title>ad_changes_monitoring</title>
            <link>https://wiki.autosys.tk/ms_windows_ms_sql/ad_changes_monitoring</link>
            <description>
&lt;p&gt;
&lt;a href=&quot;https://www.lepide.com/how-to/track-changes-in-active-directory.html&quot; class=&quot;urlextern&quot; title=&quot;https://www.lepide.com/how-to/track-changes-in-active-directory.html&quot; rel=&quot;ugc nofollow&quot;&gt;https://www.lepide.com/how-to/track-changes-in-active-directory.html&lt;/a&gt; &lt;br/&gt;

&lt;a href=&quot;https://www.lepide.com/how-to/audit-chnages-made-to-group-policy-objects.html&quot; class=&quot;urlextern&quot; title=&quot;https://www.lepide.com/how-to/audit-chnages-made-to-group-policy-objects.html&quot; rel=&quot;ugc nofollow&quot;&gt;https://www.lepide.com/how-to/audit-chnages-made-to-group-policy-objects.html&lt;/a&gt; &lt;br/&gt;

&lt;a href=&quot;https://www.manageengine.com/products/active-directory-audit/windows-security-eventlog-monitoring.html&quot; class=&quot;urlextern&quot; title=&quot;https://www.manageengine.com/products/active-directory-audit/windows-security-eventlog-monitoring.html&quot; rel=&quot;ugc nofollow&quot;&gt;https://www.manageengine.com/products/active-directory-audit/windows-security-eventlog-monitoring.html&lt;/a&gt; &lt;br/&gt;

&lt;a href=&quot;https://blogs.technet.microsoft.com/askpfeplat/2012/04/22/who-moved-the-ad-cheese/&quot; class=&quot;urlextern&quot; title=&quot;https://blogs.technet.microsoft.com/askpfeplat/2012/04/22/who-moved-the-ad-cheese/&quot; rel=&quot;ugc nofollow&quot;&gt;https://blogs.technet.microsoft.com/askpfeplat/2012/04/22/who-moved-the-ad-cheese/&lt;/a&gt; - исчерпывающая статья о мониторинге AD &lt;br/&gt;

&lt;a href=&quot;https://dzone.com/articles/create-windows-services-in-c&quot; class=&quot;urlextern&quot; title=&quot;https://dzone.com/articles/create-windows-services-in-c&quot; rel=&quot;ugc nofollow&quot;&gt;https://dzone.com/articles/create-windows-services-in-c&lt;/a&gt; - создание сервиса с помощью Visual Studio&lt;br/&gt;

&lt;a href=&quot;https://www.c-sharpcorner.com/article/monitoring-remote-log-remotely-using-wmi-in-C-Sharp-and-net/&quot; class=&quot;urlextern&quot; title=&quot;https://www.c-sharpcorner.com/article/monitoring-remote-log-remotely-using-wmi-in-C-Sharp-and-net/&quot; rel=&quot;ugc nofollow&quot;&gt;https://www.c-sharpcorner.com/article/monitoring-remote-log-remotely-using-wmi-in-C-Sharp-and-net/&lt;/a&gt; - remote log watching using WMI &lt;br/&gt;

&lt;a href=&quot;https://www.loggly.com/ultimate-guide/centralizing-windows-logs/&quot; class=&quot;urlextern&quot; title=&quot;https://www.loggly.com/ultimate-guide/centralizing-windows-logs/&quot; rel=&quot;ugc nofollow&quot;&gt;https://www.loggly.com/ultimate-guide/centralizing-windows-logs/&lt;/a&gt; - про сбор логов на одной машине с помощью подписок (Subscriptions)&lt;br/&gt;

&lt;a href=&quot;https://blog.netwrix.com/2016/01/15/how-to-get-user-logon-session-times-from-event-log/&quot; class=&quot;urlextern&quot; title=&quot;https://blog.netwrix.com/2016/01/15/how-to-get-user-logon-session-times-from-event-log/&quot; rel=&quot;ugc nofollow&quot;&gt;https://blog.netwrix.com/2016/01/15/how-to-get-user-logon-session-times-from-event-log/&lt;/a&gt; &lt;br/&gt;

Файл с &lt;strong&gt;Message Templates&lt;/strong&gt; - &lt;strong&gt;%SystemRoot%\system32\adtschema.dll&lt;/strong&gt;, посмотреть содержимое можно с помощью &lt;a href=&quot;http://www.angusj.com/resourcehacker/#download&quot; class=&quot;urlextern&quot; title=&quot;http://www.angusj.com/resourcehacker/#download&quot; rel=&quot;ugc nofollow&quot;&gt;Resource Hacker&lt;/a&gt;
&lt;/p&gt;

&lt;h1 class=&quot;sectionedit1&quot; id=&quot;active_directory_related_event_ids&quot;&gt;Active Directory related Event IDs&lt;/h1&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;Active Directory related Event IDs&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;active_directory_related_event_ids&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:1,&amp;quot;range&amp;quot;:&amp;quot;1158-1206&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit2&quot; id=&quot;groups_related_event_ids&quot;&gt;Groups related Event IDs&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;
&lt;pre class=&quot;code&quot;&gt;4727 A security-enabled global group was created.
4730 A security-enabled global group was deleted.
4731 A security-enabled local group was created.
4734 A security-enabled local group was deleted.
4735 A security-enabled local group was changed.
4737 A security-enabled global group was changed.
4744 A security-disabled local group was created.
4745 A security-disabled local group was changed.
4748 A security-disabled local group was deleted.
4749 A security-disabled global group was created.
4750 A security-disabled global group was changed.
4753 A security-disabled global group was deleted.
4754 A security-enabled universal group was created.
4755 A security-enabled universal group was changed.
4758 A security-enabled universal group was deleted.
4759 A security-disabled universal group was created.
4760 A security-disabled universal group was changed.
4763 A security-disabled universal group was deleted. 
4764 A group type was changed.&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Groups related Event IDs&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;groups_related_event_ids&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:2,&amp;quot;range&amp;quot;:&amp;quot;1207-2211&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit3&quot; id=&quot;group_members_related_event_ids&quot;&gt;Group members related Event IDs&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;
&lt;pre class=&quot;code&quot;&gt;4728 A member was added to a security-enabled global group.
4729 A member was removed from a security-enabled global group.
4732 A member was added to a security-enabled local group.
4733 A member was removed from a security-enabled local group.
4746 A member was added to a security-disabled local group.
4747 A member was removed from a security-disabled local group.
4751 A member was added to a security-disabled global group.
4752 A member was removed from a security-disabled global group.
4756 A member was added to a security-enabled universal group.
4757 A member was removed from a security-enabled universal group.
4761 A member was added to a security-disabled universal group.
4762 A member was removed from a security-disabled universal group.
4780 The ACL was set on accounts which are members of administrators groups.&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Group members related Event IDs&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;group_members_related_event_ids&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:1,&amp;quot;secid&amp;quot;:3,&amp;quot;range&amp;quot;:&amp;quot;2212-3105&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit4&quot; id=&quot;user_accounts_related_event_ids&quot;&gt;User Accounts related Event IDs&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;
&lt;pre class=&quot;code&quot;&gt;4720 A user account was created.
4722 A user account was enabled.
4725 A user account was disabled.
4726 A user account was deleted.
4738 A user account was changed.
4740 A user account was locked out.
4767 A user account was unlocked.
4781 The name of an account was changed.&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;User Accounts related Event IDs&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;user_accounts_related_event_ids&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:2,&amp;quot;secid&amp;quot;:4,&amp;quot;range&amp;quot;:&amp;quot;3106-3441&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit5&quot; id=&quot;computer_accounts_related_event_ids&quot;&gt;Computer Accounts related Event IDs&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;
&lt;pre class=&quot;code&quot;&gt;4741 A computer account was created.
4742 A computer account was changed.
4743 A computer account was deleted.&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Computer Accounts related Event IDs&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;computer_accounts_related_event_ids&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:3,&amp;quot;secid&amp;quot;:5,&amp;quot;range&amp;quot;:&amp;quot;3442-3615&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit6&quot; id=&quot;ad_objects_related_event_ids&quot;&gt;AD Objects related Event IDs&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;
&lt;pre class=&quot;code&quot;&gt;4661 A handle to an object was requested
4662 An operation was performed on an object.
5136 A directory service object was modified.
5137 A directory service object was created.
5138 A directory service object was undeleted
5139 A directory service object was moved.
5141 A directory service object was deleted.&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;AD Objects related Event IDs&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;ad_objects_related_event_ids&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:4,&amp;quot;secid&amp;quot;:6,&amp;quot;range&amp;quot;:&amp;quot;3616-3983&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit7&quot; id=&quot;credentials_and_passwords_related_event_ids&quot;&gt;Credentials and Passwords related Event IDs&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;
&lt;pre class=&quot;code&quot;&gt;4723 An attempt was made to change an account&amp;#039;s password.
4724 An attempt was made to reset an accounts password.
4794 An attempt was made to set the Directory Services Restore Mode administrator password
5376 Credential Manager credentials were backed up.
5377 Credential Manager credentials were restored from a backup.&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Credentials and Passwords related Event IDs&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;credentials_and_passwords_related_event_ids&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:5,&amp;quot;secid&amp;quot;:7,&amp;quot;range&amp;quot;:&amp;quot;3984-4377&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit8&quot; id=&quot;user_logonlogoff_computer_lockunlock_events&quot;&gt;User LogOn/LogOff, Computer Lock/Unlock Events&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;
&lt;pre class=&quot;code&quot;&gt;4624 - An account was successfully logged on.
4634 - An account was logged off.
﻿4800 - Lock
4801 - UnLock&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;User LogOn\/LogOff, Computer Lock\/Unlock Events&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;user_logonlogoff_computer_lockunlock_events&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:6,&amp;quot;secid&amp;quot;:8,&amp;quot;range&amp;quot;:&amp;quot;4378-&amp;quot;} --&gt;</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Wed, 26 Jun 2019 10:01:18 +0000</pubDate>
        </item>
        <item>
            <title>asp_show_loading_gif_on_postback_and_submit</title>
            <link>https://wiki.autosys.tk/ms_windows_ms_sql/asp_show_loading_gif_on_postback_and_submit</link>
            <description>
&lt;h1 class=&quot;sectionedit1&quot; id=&quot;задача&quot;&gt;Задача&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
Показать изображение в формате &lt;strong&gt;gif&lt;/strong&gt; при обновлении данных на странице &lt;strong&gt;ASP&lt;/strong&gt; (например - postback или загрузка и обработка файлов) &lt;br/&gt;

&lt;a href=&quot;https://www.aspsnippets.com/Articles/Display-loading-image-while-PostBack-calls-in-ASPNet.aspx&quot; class=&quot;urlextern&quot; title=&quot;https://www.aspsnippets.com/Articles/Display-loading-image-while-PostBack-calls-in-ASPNet.aspx&quot; rel=&quot;ugc nofollow&quot;&gt;https://www.aspsnippets.com/Articles/Display-loading-image-while-PostBack-calls-in-ASPNet.aspx&lt;/a&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;\u0417\u0430\u0434\u0430\u0447\u0430&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0437\u0430\u0434\u0430\u0447\u0430&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:1,&amp;quot;range&amp;quot;:&amp;quot;1-352&amp;quot;} --&gt;
&lt;h1 class=&quot;sectionedit2&quot; id=&quot;файлы&quot;&gt;Файлы&lt;/h1&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;\u0424\u0430\u0439\u043b\u044b&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0444\u0430\u0439\u043b\u044b&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:2,&amp;quot;range&amp;quot;:&amp;quot;353-377&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit3&quot; id=&quot;loaderjs&quot;&gt;loader.js&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;
&lt;pre class=&quot;code&quot;&gt;function ShowProgress() {
    setTimeout(function () {
        var modal = $(&amp;#039;&amp;lt;div /&amp;gt;&amp;#039;);
        modal.addClass(&amp;quot;modal&amp;quot;);
        $(&amp;#039;body&amp;#039;).append(modal);
        var loading = $(&amp;quot;.loading&amp;quot;);
        loading.show();
        var top = Math.max($(window).height() / 2 - loading[0].offsetHeight / 2, 0);
        var left = Math.max($(window).width() / 2 - loading[0].offsetWidth / 2, 0);
        //loading.css({ top: top, left: left });
        loading.css({ top: 500, left: left });
    }, 200);
}
$(&amp;#039;form&amp;#039;).live(&amp;quot;submit&amp;quot;, function () {
    ShowProgress();
});&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;loader.js&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;loaderjs&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:3,&amp;quot;range&amp;quot;:&amp;quot;378-973&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit4&quot; id=&quot;stylecss&quot;&gt;style.css&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;
&lt;pre class=&quot;code&quot;&gt;    .modal
    {
        position: fixed;
        top: 0;
        left: 0;
        background-color: black;
        z-index: 99;
        opacity: 0.8;
        filter: alpha(opacity=80);
        -moz-opacity: 0.8;
        min-height: 100%;
        width: 100%;
    }
    .loading
    {
        font-family: Arial;
        font-size: 10pt;
        border: 5px solid #67CFF5;
        width: 200px;
        height: 100px;
        display: none;
        position: fixed;
        background-color: White;
        z-index: 999;
    }&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;style.css&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;stylecss&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:1,&amp;quot;secid&amp;quot;:4,&amp;quot;range&amp;quot;:&amp;quot;974-1538&amp;quot;} --&gt;
&lt;h1 class=&quot;sectionedit5&quot; id=&quot;код&quot;&gt;Код&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&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;\u041a\u043e\u0434&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u043a\u043e\u0434&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:2,&amp;quot;secid&amp;quot;:5,&amp;quot;range&amp;quot;:&amp;quot;1539-1618&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit6&quot; id=&quot;head&quot;&gt;&amp;lt;head&amp;gt;&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;
&lt;pre class=&quot;code&quot;&gt;    &amp;lt;link rel=&amp;quot;stylesheet&amp;quot; href=&amp;quot;style.css&amp;quot; type=&amp;quot;text/css&amp;quot; media=&amp;quot;screen&amp;quot; /&amp;gt;
     &amp;lt;script type=&amp;quot;text/javascript&amp;quot; src=&amp;quot;http://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;
    &amp;lt;script type=&amp;quot;text/javascript&amp;quot; src=&amp;quot;loader.js&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;/pre&gt;

&lt;p&gt;
&lt;strong&gt;jquery.min.js&lt;/strong&gt; можно сохранить в локальный файл и поменять &lt;strong&gt;src&lt;/strong&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;&amp;lt;head&amp;gt;&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;head&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:2,&amp;quot;secid&amp;quot;:6,&amp;quot;range&amp;quot;:&amp;quot;1619-2015&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit7&quot; id=&quot;body&quot;&gt;&amp;lt;body&amp;gt;&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;
&lt;pre class=&quot;code&quot;&gt;        &amp;lt;div class=&amp;quot;loading&amp;quot; align=&amp;quot;center&amp;quot;&amp;gt;
            Uploading Files. Please wait...&amp;lt;br /&amp;gt;
            &amp;lt;br /&amp;gt;
            &amp;lt;img src=&amp;quot;images/loader.gif&amp;quot; alt=&amp;quot;&amp;quot; /&amp;gt;
        &amp;lt;/div&amp;gt;&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;&amp;lt;body&amp;gt;&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;body&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:3,&amp;quot;secid&amp;quot;:7,&amp;quot;range&amp;quot;:&amp;quot;2016-2230&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit8&quot; id=&quot;для_postback&quot;&gt;Для Postback&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
Для того, чтобы показывать &lt;strong&gt;gif&lt;/strong&gt; на постбеках нужно добавить к контролам, вызывающим постбек &lt;strong&gt;onchange=“ShowProgress()&lt;/strong&gt; :
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;&amp;lt;asp:DropDownList ID=&amp;quot;Year_DropDownList&amp;quot; runat=&amp;quot;server&amp;quot;  AutoPostBack=&amp;quot;true&amp;quot; OnSelectedIndexChanged=&amp;quot;Refresh_BillingTable&amp;quot; onchange=&amp;quot;ShowProgress()&amp;quot;&amp;gt;&amp;lt;/asp:DropDownList&amp;gt;&lt;/pre&gt;

&lt;p&gt;
Если используются динамические контролы, то нужно добавить аттрибут &lt;strong&gt;onchange&lt;/strong&gt;:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;      DropDownList Month_DropDownList = new DropDownList();
      Month_DropDownList.ID = &amp;quot;Month_DropDownList&amp;quot;;
      Month_DropDownList.Attributes.Add(&amp;quot;onchange&amp;quot;, &amp;quot;ShowProgress()&amp;quot;);
  &lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0414\u043b\u044f Postback&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0434\u043b\u044f_postback&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:4,&amp;quot;secid&amp;quot;:8,&amp;quot;range&amp;quot;:&amp;quot;2231-&amp;quot;} --&gt;</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Mon, 11 Feb 2019 09:13:27 +0000</pubDate>
        </item>
        <item>
            <title>azure_sql_database_export</title>
            <link>https://wiki.autosys.tk/ms_windows_ms_sql/azure_sql_database_export</link>
            <description>
&lt;h1 class=&quot;sectionedit1&quot; id=&quot;проблема&quot;&gt;Проблема&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
У клиента есть приложение &lt;strong&gt;node.js&lt;/strong&gt; на &lt;strong&gt;Ubuntu Linux&lt;/strong&gt;, развернутое в &lt;strong&gt;Azure&lt;/strong&gt;. Приложение использует SQL-базу, также размещенную в &lt;strong&gt;Azure&lt;/strong&gt;. &lt;br/&gt;

Задача - выгрузить базу данных и приложение для того, чтобы организовать отладочную среду. &lt;br/&gt;

Задача несколько осложняется тем, что на сервере базы данных настроен &lt;strong&gt;firewall&lt;/strong&gt;, ограничивающий доступ к базе с единственного хоста. Настроить &lt;strong&gt;firewall&lt;/strong&gt; возможности нет. &lt;br/&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;\u041f\u0440\u043e\u0431\u043b\u0435\u043c\u0430&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0430&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:1,&amp;quot;range&amp;quot;:&amp;quot;1-828&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit2&quot; id=&quot;экспорт-импорт_базы_данных_sql_из_azure&quot;&gt;Экспорт-Импорт базы данных SQL из Azure&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
Для того, чтобы я смог подключиться к &lt;strong&gt;SQL&lt;/strong&gt;-серверу с хоста не разрешенного в &lt;strong&gt;firewall&lt;/strong&gt;, пришлось на хосте с приложением установить &lt;strong&gt;haproxy&lt;/strong&gt; и настроить &lt;strong&gt;tcp-proxy&lt;/strong&gt; до &lt;strong&gt;SQL&lt;/strong&gt;-сервера в &lt;strong&gt;Azure&lt;/strong&gt;:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;frontend tcp-in-mssql
  bind :1433
  mode tcp
  use_backend mssql

backend mssql
  mode tcp
  server mssqlserver clientname.database.windows.net:1433 check&lt;/pre&gt;

&lt;p&gt;
Теперь я смог подключиться к &lt;strong&gt;SQL&lt;/strong&gt;-серверру в &lt;strong&gt;Azure&lt;/strong&gt;, указав в качестве адреса &lt;strong&gt;SQL&lt;/strong&gt;-сервера адрес хоста с приложением. &lt;br/&gt;

Для того, чтобы экспортировать базу нужно:
&lt;/p&gt;
&lt;ol&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt;
 Создать на локальном SQL-сервере пустую базу данных.
&lt;/div&gt;&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt;
 Кликнуть правой кнопкой по пустой базе и выбрать &lt;strong&gt;Tasks → Import Data…&lt;/strong&gt;
&lt;/div&gt;&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt;
 В качестве &lt;strong&gt;Data Source&lt;/strong&gt; выбрать &lt;strong&gt;.Net Framework Data Provider for SqlServer&lt;/strong&gt;, а в поле &lt;strong&gt;Data → Connection String&lt;/strong&gt; написать такое:&lt;pre class=&quot;code&quot;&gt;Data Source=app.hostname.com;Initial Catalog=Web_db;User ID=user;Password=*********;&lt;/pre&gt;

&lt;p&gt;
 и нажать &lt;strong&gt;Next&amp;gt;&lt;/strong&gt;
&lt;/div&gt;&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt;
 В качестве &lt;strong&gt;Destination&lt;/strong&gt; выбрать &lt;strong&gt;.Net Framework Data Provider for SqlServer&lt;/strong&gt;, и заполнить поле &lt;strong&gt;Data → Connection String&lt;/strong&gt; аналогично, указав данные локального сервера: 
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;Data Source=localsqlhost;Initial Catalog=Web_db;&lt;/pre&gt;

&lt;p&gt;
 и, если используется интегрированная аутентификация, укажем ее тип: 
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;Authentication=&amp;quot;Active Directory Integrated&amp;quot;;&lt;/pre&gt;

&lt;p&gt;
 или логин/пароль в случае SQL-аутентификации. Также, возможно, понадобится выставить &lt;strong&gt;Security→TrustServerCertificate = True&lt;/strong&gt;. Жмем &lt;strong&gt;Next&lt;/strong&gt;.
&lt;/div&gt;&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt;
 Дальше выбираем &lt;strong&gt;Copy Data from one or more tables or views&lt;/strong&gt;
&lt;/div&gt;&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt;
 Выбираем все объекты БД, жмем &lt;strong&gt;Next&lt;/strong&gt;, ставим галочку &lt;strong&gt;Run immidiatelly&lt;/strong&gt; → &lt;strong&gt;Next&lt;/strong&gt; → &lt;strong&gt;Finish&lt;/strong&gt;!.
&lt;/p&gt;

&lt;/div&gt;&lt;/li&gt;
&lt;/ol&gt;


&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u042d\u043a\u0441\u043f\u043e\u0440\u0442-\u0418\u043c\u043f\u043e\u0440\u0442 \u0431\u0430\u0437\u044b \u0434\u0430\u043d\u043d\u044b\u0445 SQL \u0438\u0437 Azure&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u044d\u043a\u0441\u043f\u043e\u0440\u0442-\u0438\u043c\u043f\u043e\u0440\u0442_\u0431\u0430\u0437\u044b_\u0434\u0430\u043d\u043d\u044b\u0445_sql_\u0438\u0437_azure&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:2,&amp;quot;range&amp;quot;:&amp;quot;829-&amp;quot;} --&gt;</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Mon, 11 Feb 2019 09:13:28 +0000</pubDate>
        </item>
        <item>
            <title>bat_and_powershell_to_exe</title>
            <link>https://wiki.autosys.tk/ms_windows_ms_sql/bat_and_powershell_to_exe</link>
            <description>
&lt;h1 class=&quot;sectionedit1&quot; id=&quot;задача&quot;&gt;Задача&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
У меня есть скрипт на &lt;strong&gt;Powershell&lt;/strong&gt;. Мне нужно сделать из него исполняемый файл. Желательно - встроенными средствами &lt;strong&gt;Windows&lt;/strong&gt; (10/2016). &lt;br/&gt;

&lt;br/&gt;

Так как я давно знаю о существовании &lt;strong&gt;bat2exe&lt;/strong&gt;, то задача разбивается на две подзадачи. &lt;br/&gt;

&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt;
 встроить многострочный скрипт &lt;strong&gt;Powershell&lt;/strong&gt; в bat-скрипт
&lt;/div&gt;&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt;
 конвертировать полученный &lt;strong&gt;bat&lt;/strong&gt;-скрипт в исполняемый &lt;strong&gt;exe&lt;/strong&gt;-файл
&lt;/div&gt;&lt;/li&gt;
&lt;/ul&gt;


&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0417\u0430\u0434\u0430\u0447\u0430&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0437\u0430\u0434\u0430\u0447\u0430&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:1,&amp;quot;range&amp;quot;:&amp;quot;1-628&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit2&quot; id=&quot;встроить_powershell-скрипт_в_bat-скрипт&quot;&gt;Встроить PowerShell-скрипт в bat-скрипт&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
&lt;a href=&quot;https://stackoverflow.com/questions/9366080/batch-launching-powershell-with-a-multiline-command-parameter&quot; class=&quot;urlextern&quot; title=&quot;https://stackoverflow.com/questions/9366080/batch-launching-powershell-with-a-multiline-command-parameter&quot; rel=&quot;ugc nofollow&quot;&gt;https://stackoverflow.com/questions/9366080/batch-launching-powershell-with-a-multiline-command-parameter&lt;/a&gt; &lt;br/&gt;

Оказалось все несложно при соблюдении некоторых условностей. &lt;br/&gt;

Для исполнения многострочной команды &lt;strong&gt;powershell&lt;/strong&gt; внутри &lt;strong&gt;bat&lt;/strong&gt;-скрипта нужно делать так:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;powershell -command ^

for ($i=1; $i -lt 10; $i++){^

   Write-Host $(\&amp;quot;Iteration - $i\&amp;quot;) }^

Write-Host&lt;/pre&gt;

&lt;p&gt;
Это &lt;strong&gt;bat&lt;/strong&gt;-скрипт, исполняющий блок кода &lt;strong&gt;Powershell&lt;/strong&gt;. &lt;br/&gt;

На что обратить внимание:
&lt;/p&gt;
&lt;ol&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt;
 Строки, после которых будет продолжение - оканчиваются символом &lt;strong&gt;^&lt;/strong&gt;. Последняя строка блока &lt;strong&gt;powershell&lt;/strong&gt; - без этого символа!
&lt;/div&gt;&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt;
 Между строками - пустые строки. Без них команды &lt;strong&gt;powershell&lt;/strong&gt; склеются в одну длинную строку, что допустимо не всегда.
&lt;/div&gt;&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt;
 Экранирование символов. В данном случае экранированы двойные кавычки &lt;strong&gt;“&lt;/strong&gt;. Это нужно не всегда, но об этом нужно помнить, если что-то работает не так как нужно.
&lt;/div&gt;&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt;
 Не стоит оставлять фигурные скобки в одиночестве на строке.
&lt;/div&gt;&lt;/li&gt;
&lt;/ol&gt;


&lt;p&gt;
Вот однострочник &lt;strong&gt;bash&lt;/strong&gt;, который берет заданный Powershell-скрипт и выводит соответствующий ему bat-скрипт:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;echo -e &amp;quot;powershell -command ^\n\n`sed &amp;#039;s/&amp;quot;/\\\\&amp;quot;/g&amp;#039; ./Script.ps1 | sed &amp;#039;/^#.*$/d&amp;#039; | sed &amp;#039;/^[[:space:]]*$/d&amp;#039; | sed &amp;#039;s/$/\^\r\n/g&amp;#039;`\n\n#&amp;quot;&lt;/pre&gt;

&lt;p&gt;
Вот более сложный скрипт, который запускает &lt;strong&gt;IDE Eclipse&lt;/strong&gt;, установленную в &lt;strong&gt;WSL&lt;/strong&gt; (&lt;strong&gt;Windows Subsystem For Linux&lt;/strong&gt;):
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;powershell -command ^

$UbuntuAppxPackagename=&amp;#039;CanonicalGroupLimited.Ubuntu18.04onWindows&amp;#039;^

$ubuntu_exe=&amp;#039;ubuntu1804.exe&amp;#039;^

$ubuntu_exe=\&amp;quot;$($(Get-AppxPackage | Where {$_.Name -eq $UbuntuAppxPackagename }).InstallLocation)\$ubuntu_exe\&amp;quot;^

$username=$(whoami /upn).Split(&amp;#039;@&amp;#039;)[0]^

$XServerProcessName=&amp;#039;vcxsrv&amp;#039;^

$XServerExePath=&amp;#039;C:\Program Files\VcXsrv\vcxsrv.exe&amp;#039;^

$XServerArguments=&amp;#039;:0 -multiwindow -clipboard -wgl&amp;#039;^

$cmd = &amp;#039;\&amp;quot;&amp;#039; + $ubuntu_exe + &amp;#039;\&amp;quot; &amp;#039; + \&amp;quot;run useradd -m -s /bin/bash $username\&amp;quot;^

cmd /c $cmd^

if ($(Get-Process -Name $XServerProcessName) -eq $null) { Start-Process -NoNewWindow -FilePath $XServerExePath -ArgumentList $XServerArguments }^

$cmd = &amp;#039;\&amp;quot;&amp;#039; + $ubuntu_exe + &amp;#039;\&amp;quot; &amp;#039; + \&amp;quot;run sudo -u $username DISPLAY=:0.0 /opt/eclipse/eclipse\&amp;quot;^

cmd /c $cmd&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0412\u0441\u0442\u0440\u043e\u0438\u0442\u044c PowerShell-\u0441\u043a\u0440\u0438\u043f\u0442 \u0432 bat-\u0441\u043a\u0440\u0438\u043f\u0442&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0432\u0441\u0442\u0440\u043e\u0438\u0442\u044c_powershell-\u0441\u043a\u0440\u0438\u043f\u0442_\u0432_bat-\u0441\u043a\u0440\u0438\u043f\u0442&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:2,&amp;quot;range&amp;quot;:&amp;quot;629-3450&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit3&quot; id=&quot;конвертирование_bat_в_exe_с_помощью_встронных_средств_windows&quot;&gt;Конвертирование bat в exe с помощью встронных средств Windows&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
&lt;a href=&quot;https://stackoverflow.com/questions/51098378/converting-bat-to-exe-with-no-additional-external-software-create-sfx/51104332&quot; class=&quot;urlextern&quot; title=&quot;https://stackoverflow.com/questions/51098378/converting-bat-to-exe-with-no-additional-external-software-create-sfx/51104332&quot; rel=&quot;ugc nofollow&quot;&gt;https://stackoverflow.com/questions/51098378/converting-bat-to-exe-with-no-additional-external-software-create-sfx/51104332&lt;/a&gt; &lt;br/&gt;

&lt;a href=&quot;https://github.com/npocmaka/batch.scripts/edit/master/hybrids/iexpress/bat2exeIEXP.bat&quot; class=&quot;urlextern&quot; title=&quot;https://github.com/npocmaka/batch.scripts/edit/master/hybrids/iexpress/bat2exeIEXP.bat&quot; rel=&quot;ugc nofollow&quot;&gt;https://github.com/npocmaka/batch.scripts/edit/master/hybrids/iexpress/bat2exeIEXP.bat&lt;/a&gt; &lt;br/&gt;

&lt;br/&gt;

Это вообще похоже на магию. &lt;br/&gt;

Есть такая утилита &lt;strong&gt;IEXPRESS&lt;/strong&gt;. Она есть во всех версиях Windows, начиная с Windows 2000 и предназначена для создания самораспаковывающихся архивов из набора файлов. &lt;br/&gt;

Вот &lt;strong&gt;bat&lt;/strong&gt;-файл, который делает то что нужно. &lt;br/&gt;

Пользоваться им очень просто - создаем файл с этим скриптом и перетаскиваем на его иконку &lt;strong&gt;bat&lt;/strong&gt;-скрипт, который нужно сконвертировать в &lt;strong&gt;exe&lt;/strong&gt;. Всё. Рядом с исходным скриптом появится &lt;strong&gt;exe&lt;/strong&gt;-файл.
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;;@echo off
;Title Converting batch scripts to file.exe with iexpress
;Mode 75,3 &amp;amp; color 0A
;Rem Original Script https://github.com/npocmaka/batch.scripts/edit/master/hybrids/iexpress/bat2exeIEXP.bat
;echo(
;if &amp;quot;%~1&amp;quot; equ &amp;quot;&amp;quot; (
    ;echo  Usage : Drag and Drop your batch file over this script:&amp;quot;%~nx0&amp;quot;  
    ;Timeout /T 5 /nobreak&amp;gt;nul &amp;amp; Exit
;)
;set &amp;quot;target.exe=%__cd__%%~n1.exe&amp;quot;
;set &amp;quot;batch_file=%~f1&amp;quot;
;set &amp;quot;bat_name=%~nx1&amp;quot;
;set &amp;quot;bat_dir=%~dp1&amp;quot;
;Set &amp;quot;sed=%temp%\2exe.sed&amp;quot;
;echo              Please  wait a while ...  Creating &amp;quot;%~n1.exe&amp;quot; ...
;copy /y &amp;quot;%~f0&amp;quot; &amp;quot;%sed%&amp;quot; &amp;gt;nul
;(
    ;(echo()
    ;(echo(AppLaunched=cmd /c &amp;quot;%bat_name%&amp;quot;)
    ;(echo(TargetName=%target.exe%)
    ;(echo(FILE0=&amp;quot;%bat_name%&amp;quot;)
    ;(echo([SourceFiles])
    ;(echo(SourceFiles0=%bat_dir%)
    ;(echo([SourceFiles0])
    ;(echo(%%FILE0%%=)
;)&amp;gt;&amp;gt;&amp;quot;%sed%&amp;quot;

;iexpress /n /q /m %sed%
;del /q /f &amp;quot;%sed%&amp;quot;
;exit /b 0

[Version]
Class=IEXPRESS
SEDVersion=3
[Options]
PackagePurpose=InstallApp
ShowInstallProgramWindow=0
HideExtractAnimation=1
UseLongFileName=1
InsideCompressed=0
CAB_FixedSize=0
CAB_ResvCodeSigning=0
RebootMode=N
InstallPrompt=%InstallPrompt%
DisplayLicense=%DisplayLicense%
FinishMessage=%FinishMessage%
TargetName=%TargetName%
FriendlyName=%FriendlyName%
AppLaunched=%AppLaunched%
PostInstallCmd=%PostInstallCmd%
AdminQuietInstCmd=%AdminQuietInstCmd%
UserQuietInstCmd=%UserQuietInstCmd%
SourceFiles=SourceFiles

[Strings]
InstallPrompt=
DisplayLicense=
FinishMessage=
FriendlyName=-
PostInstallCmd=&amp;lt;None&amp;gt;
AdminQuietInstCmd=&lt;/pre&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;\u041a\u043e\u043d\u0432\u0435\u0440\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 bat \u0432 exe \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0432\u0441\u0442\u0440\u043e\u043d\u043d\u044b\u0445 \u0441\u0440\u0435\u0434\u0441\u0442\u0432 Windows&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u043a\u043e\u043d\u0432\u0435\u0440\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435_bat_\u0432_exe_\u0441_\u043f\u043e\u043c\u043e\u0449\u044c\u044e_\u0432\u0441\u0442\u0440\u043e\u043d\u043d\u044b\u0445_\u0441\u0440\u0435\u0434\u0441\u0442\u0432_windows&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:2,&amp;quot;secid&amp;quot;:3,&amp;quot;range&amp;quot;:&amp;quot;3451-6213&amp;quot;} --&gt;
&lt;h1 class=&quot;sectionedit4&quot; id=&quot;скрываем_окно_любого_процесса_средствами_powershell&quot;&gt;Скрываем окно любого процесса средствами Powershell&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
&lt;a href=&quot;https://community.idera.com/database-tools/powershell/powertips/b/tips/posts/show-or-hide-windows&quot; class=&quot;urlextern&quot; title=&quot;https://community.idera.com/database-tools/powershell/powertips/b/tips/posts/show-or-hide-windows&quot; rel=&quot;ugc nofollow&quot;&gt;https://community.idera.com/database-tools/powershell/powertips/b/tips/posts/show-or-hide-windows&lt;/a&gt; &lt;br/&gt;

Нижеприведенный powershell-код позволяет скрыть окно любого процесса:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;Enum ShowStates
{
  Hide = 0
  Normal = 1
  Minimized = 2
  Maximized = 3
  ShowNoActivateRecentPosition = 4
  Show = 5
  MinimizeActivateNext = 6
  MinimizeNoActivate = 7
  ShowNoActivate = 8
  Restore = 9
  ShowDefault = 10
  ForceMinimize = 11
}


# the C#-style signature of an API function (see also www.pinvoke.net)
$code = &amp;#039;[DllImport(&amp;quot;user32.dll&amp;quot;)] public static extern bool ShowWindowAsync(IntPtr hWnd, int nCmdShow);&amp;#039;

# add signature as new type to PowerShell (for this session)
$type = Add-Type -MemberDefinition $code -Name myAPI -PassThru

# access a process
# (in this example, we are accessing the current PowerShell host
#  with its process ID being present in $pid, but you can use
#  any process ID instead)
$process = Get-Process -Id $PID

# get the process window handle
$hwnd = $process.MainWindowHandle

# apply a new window size to the handle, i.e. hide the window completely
$type::ShowWindowAsync($hwnd, [ShowStates]::Hide)

Start-Sleep -Seconds 2
# restore the window handle again
$type::ShowWindowAsync($hwnd, [ShowStates]::Show)&lt;/pre&gt;

&lt;p&gt;
Чтобы работало в старых версиях &lt;strong&gt;Powershell&lt;/strong&gt; (2-4) определение типов видимости нужно делать так:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;Add-Type -TypeDefinition &amp;#039;
public enum ShowStates
{
    Hide = 0,
    Normal = 1,
    Minimized = 2,
    Maximized = 3,
    ShowNoActivateRecentPosition = 4,
    Show = 5,
    MinimizeActivateNext = 6,
    MinimizeNoActivate = 7,
    ShowNoActivate = 8,
    Restore = 9,
    ShowDefault = 10,
    ForceMinimize = 11,
}
&amp;#039;&lt;/pre&gt;

&lt;p&gt;
Вот bat-скрипт, который скрывает окно консоли и делает нужную работу (открывает процесс средствами powershell):
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;powershell -command ^

Enum ShowStates {^

  Hide = 0^

  Normal = 1^

  Minimized = 2^

  Maximized = 3^

  ShowNoActivateRecentPosition = 4^

  Show = 5^

  MinimizeActivateNext = 6^

  MinimizeNoActivate = 7^

  ShowNoActivate = 8^

  Restore = 9^

  ShowDefault = 10^

  ForceMinimize = 11 } ^

$code = &amp;#039;[DllImport(\&amp;quot;user32.dll\&amp;quot;)] public static extern bool ShowWindowAsync(IntPtr hWnd, int nCmdShow);&amp;#039;^

$type = Add-Type -MemberDefinition $code -Name myAPI -PassThru ^

$ParentProcessId = $(Get-CimInstance Win32_Process -Filter \&amp;quot;ProcessId = $PID\&amp;quot;).ParentProcessId^

$process = Get-Process -Id $ParentProcessId^

$hwnd = $process.MainWindowHandle^

$type::ShowWindowAsync($hwnd, [ShowStates]::Hide)^

#############################################################^

$UbuntuAppxPackagename=\&amp;quot;CanonicalGroupLimited.Ubuntu18.04onWindows\&amp;quot;^

$ubuntu_exe=\&amp;quot;$($(Get-AppxPackage | Where {$_.Name -eq $UbuntuAppxPackagename }).InstallLocation)\ubuntu1804.exe\&amp;quot;^

$username=$(whoami /upn).Split(&amp;#039;@&amp;#039;)[0]^

$XServerProcessName=&amp;#039;vcxsrv&amp;#039;^

$XServerExePath=&amp;#039;C:\Program Files\VcXsrv\vcxsrv.exe&amp;#039;^

$XServerArguments=&amp;#039;:0 -multiwindow -clipboard -wgl&amp;#039;^

$cmd = &amp;#039;\&amp;quot;&amp;#039; + $ubuntu_exe + &amp;#039;\&amp;quot; &amp;#039; + \&amp;quot;run useradd -m -s /bin/bash $username\&amp;quot;^

cmd /c $cmd^

if ($(Get-Process -Name $XServerProcessName) -eq $null) { Start-Process -NoNewWindow -FilePath $XServerExePath -ArgumentList $XServerArguments }^

$cmd = &amp;#039;\&amp;quot;&amp;#039; + $ubuntu_exe + &amp;#039;\&amp;quot; &amp;#039; + \&amp;quot;run sudo -u $username DISPLAY=:0.0 /opt/eclipse/eclipse\&amp;quot;^

cmd /c $cmd
&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0421\u043a\u0440\u044b\u0432\u0430\u0435\u043c \u043e\u043a\u043d\u043e \u043b\u044e\u0431\u043e\u0433\u043e \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0430 \u0441\u0440\u0435\u0434\u0441\u0442\u0432\u0430\u043c\u0438 Powershell&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0441\u043a\u0440\u044b\u0432\u0430\u0435\u043c_\u043e\u043a\u043d\u043e_\u043b\u044e\u0431\u043e\u0433\u043e_\u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0430_\u0441\u0440\u0435\u0434\u0441\u0442\u0432\u0430\u043c\u0438_powershell&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:3,&amp;quot;secid&amp;quot;:4,&amp;quot;range&amp;quot;:&amp;quot;6214-&amp;quot;} --&gt;</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Wed, 06 Nov 2019 14:04:22 +0000</pubDate>
        </item>
        <item>
            <title>bulk_copy_sql_database_from_one_server_to_another</title>
            <link>https://wiki.autosys.tk/ms_windows_ms_sql/bulk_copy_sql_database_from_one_server_to_another</link>
            <description>
&lt;p&gt;
&lt;a href=&quot;https://www.sqlshack.com/six-different-methods-to-copy-tables-between-databases-in-sql-server/&quot; class=&quot;urlextern&quot; title=&quot;https://www.sqlshack.com/six-different-methods-to-copy-tables-between-databases-in-sql-server/&quot; rel=&quot;ugc nofollow&quot;&gt;https://www.sqlshack.com/six-different-methods-to-copy-tables-between-databases-in-sql-server/&lt;/a&gt; &lt;br/&gt;

&lt;a href=&quot;http://eddiejackson.net/wp/?p=10719&quot; class=&quot;urlextern&quot; title=&quot;http://eddiejackson.net/wp/?p=10719&quot; rel=&quot;ugc nofollow&quot;&gt;http://eddiejackson.net/wp/?p=10719&lt;/a&gt; &lt;br/&gt;

&lt;/p&gt;
</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Thu, 05 Dec 2019 07:37:32 +0000</pubDate>
        </item>
        <item>
            <title>clean_thinprint_printers</title>
            <link>https://wiki.autosys.tk/ms_windows_ms_sql/clean_thinprint_printers</link>
            <description>
&lt;p&gt;
Есть принтсервер &lt;strong&gt;ThinPrint&lt;/strong&gt; на базе &lt;strong&gt;Windows 2012 R2&lt;/strong&gt;. На нем устновлено несколько сотен принтеров, многие из которых уже не актуальны. Кроме того, в результате миграции с более старой версии сбились настройки, которые восстанвливаются при установке принтера с помощью &lt;strong&gt;tpautoconnect.exe -a -f -I&lt;/strong&gt;  &lt;br/&gt;

Задача - вычистить неактуальные принтеры, установленные на уже несуществующих компах и переустановить существующие.&lt;br/&gt;

&lt;/p&gt;

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

&lt;/p&gt;

&lt;p&gt;
1. Выгружаем список принтеров из оснастки Windows Print management в формате &lt;strong&gt;Unicode Comma Delimited csv&lt;/strong&gt;.&lt;br/&gt;

&lt;strong&gt;All Printers&lt;/strong&gt; → правой кнопкой и потом &lt;strong&gt;Export List…&lt;/strong&gt;&lt;br/&gt;

2. Затем формируем скрипт, который будет удалять и заново ставить принтеры. Я это сделал на Linux. На выходе будет windows cmd-скрипт, который удалит и заново поставит все принтеры, имена которых соотвествуют соглашению об именах ThinPrint и имеют Id.  &lt;br/&gt;

&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;#!/bin/bash
while read LINE; do
   printstr=$( echo $LINE | awk -F&amp;quot;#&amp;quot; &amp;#039;{print $2}&amp;#039; | awk -F&amp;quot;,&amp;quot; &amp;#039;{print $1}&amp;#039;)
   printstr_with_name=$( echo $LINE | awk -F&amp;quot;,&amp;quot; &amp;#039;{print $1}&amp;#039;)
host_name=$(echo $printstr | awk -F&amp;quot;:&amp;quot; &amp;#039;{print $1}&amp;#039;)
printer_id=$(echo $printstr | awk -F&amp;quot;:&amp;quot; &amp;#039;{print $2}&amp;#039;)
#echo $printstr
if [ -n &amp;quot;$printer_id&amp;quot; ]
then
        echo rundll32 printui.dll PrintUIEntry /dl /n\&amp;quot;$printstr_with_name\&amp;quot;
        echo tpautoconnect.exe -a $host_name -f -I $printer_id -v
#       echo -n $host_name&amp;quot; &amp;quot;
#       echo $printer_id
fi

done &amp;lt; $1&lt;/pre&gt;

&lt;p&gt;
Запускаем этот скрипт, передавая ему в качестве параметра файл со списком принтеров:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;./printers_parse.sh /mnt/sdb1/Printers_list.csv &amp;gt; reinstall_printers.cmd&lt;/pre&gt;

&lt;p&gt;
Вывод перенаправляем в файл &lt;strong&gt;reinstall_printers.cmd&lt;/strong&gt;, который потом положим в папку &lt;strong&gt;C:\Program Files\Common Files\ThinPrint&lt;/strong&gt; и запустим на принтсервере Windows:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;cd &amp;quot;C:\Program Files\Common Files\ThinPrint&amp;quot;
reinstall_printers.cmd&lt;/pre&gt;

&lt;p&gt;
В результате будут удалены и переустановлены все принтеры имена которых соотвествуют соглашению об именах ThinPrint.
&lt;/p&gt;

&lt;p&gt;
Или тоже самое на powershell:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;#-------------- Restore ThinPrint Printers Dummies --------------------------
$printers = Get-WMIObject -Class Win32_Printer | Where { $_.Name -like &amp;#039;_#*&amp;#039; } | Select Name,DriverName,PortName
foreach($printer in $printers)
{
#Add-Printer -name $printer.Name -drivername $printer.DriverName -port $printer.PortName
    #Get-WMIObject -Class Win32_Printer | Select Name,DriverName,PortName
}
#-------------- Restore ThinPrint Printers ---------------------------
$printers = Get-WMIObject -Class Win32_Printer | Where { $_.Name -like &amp;#039;*#*:*&amp;#039; }
foreach($printer in $printers)
{
    $printername = $printer.Name
    Write-Host &amp;quot;Имя...............&amp;quot; $printername
    $printer_id = 0
    $printer_host_id = $printer.Name.Split(&amp;quot;#&amp;quot;)[1]
    $printer_host = $printer_host_id.Split(&amp;quot;:&amp;quot;)[0]
    $printer_id = $printer_host_id.Split(&amp;quot;:&amp;quot;)[1]

    #-----------------------------------------
    Write-Host &amp;quot;Host....&amp;quot; $printer_host &amp;quot;, ID..........&amp;quot; $printer_id
    $cmd = &amp;quot;rundll32 printui.dll PrintUIEntry /dl /n&amp;quot;&amp;quot;$printername&amp;quot;&amp;quot;&amp;quot;
    echo $cmd 
    $cmd = [string]::Concat(&amp;#039;&amp;quot;c:\Program Files\Common Files\ThinPrint\TPAutoConnect.exe&amp;quot;&amp;#039;, &amp;#039; -a &amp;#039;, $printer_host, &amp;#039; -f -I &amp;#039;, $printer_id, &amp;#039; -v&amp;#039;)
    echo $cmd
    #-----------------------------------------

}&lt;/pre&gt;

&lt;p&gt;
Этим же скриптом после небольшой модификации можно клонировать принтсервер, прочитав список принтеров с существующего сервера и выполнив команды установки притеров на новом принтсервере.
&lt;/p&gt;
</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Mon, 11 Feb 2019 09:13:27 +0000</pubDate>
        </item>
        <item>
            <title>close_all_file_handlers_by_path_or_process_name</title>
            <link>https://wiki.autosys.tk/ms_windows_ms_sql/close_all_file_handlers_by_path_or_process_name</link>
            <description>
&lt;h1 class=&quot;sectionedit1&quot; id=&quot;проблема&quot;&gt;Проблема&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
на терминальном сервере заглючил &lt;strong&gt;Citrix Profile Manager&lt;/strong&gt; и остались открытыми кучи &lt;strong&gt;file handlers&lt;/strong&gt; в профилях пользователей. Завершить процесс &lt;strong&gt;Citrix Profile Manager&lt;/strong&gt; безболезненно нельзя, но файлы с зависшими &lt;strong&gt;file handlers&lt;/strong&gt; удалить необходимо. &lt;br/&gt;

С помощью &lt;strong&gt;Process Explorer&lt;/strong&gt; можно закрывать по одному хендлеру, но если их много сотен, то это не выход.&lt;br/&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;\u041f\u0440\u043e\u0431\u043b\u0435\u043c\u0430&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0430&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:1,&amp;quot;range&amp;quot;:&amp;quot;1-610&amp;quot;} --&gt;
&lt;h1 class=&quot;sectionedit2&quot; id=&quot;решение&quot;&gt;Решение&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
У &lt;strong&gt;Sysinternals&lt;/strong&gt; есть утилита &lt;a href=&quot;http://technet.microsoft.com/en-us/sysinternals/bb896655&quot; class=&quot;urlextern&quot; title=&quot;http://technet.microsoft.com/en-us/sysinternals/bb896655&quot; rel=&quot;ugc nofollow&quot;&gt;Handle&lt;/a&gt;. &lt;br/&gt;

Утащил к себе: &lt;a href=&quot;https://wiki.autosys.tk/_media/ms_windows_ms_sql/handle.zip&quot; class=&quot;media mediafile mf_zip&quot; title=&quot;ms_windows_ms_sql:handle.zip (255.8 KB)&quot;&gt;handle.zip&lt;/a&gt;&lt;br/&gt;

Эта утилитка предоставляет интерфейс командной строки к функционалу Process Explorer.
Копируем &lt;strong&gt;handle.exe&lt;/strong&gt; в &lt;strong&gt;c:\windows\system32&lt;/strong&gt;.&lt;br/&gt;

Для закрытия всех хендлеров в заданной папке в командной строке с правами администратора выполняем:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;for /f &amp;quot;tokens=3,6,8 delims=: &amp;quot; %i in (&amp;#039;handle e:\folder_name\&amp;#039;) do echo Releasing %k &amp;amp; handle -c %j -y -p %i&lt;/pre&gt;

&lt;p&gt;
Также можно добавить фильтр по имени процесса (указав в вызове &lt;strong&gt;handle -p processname&lt;/strong&gt;):
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;for /f &amp;quot;tokens=3,6,8 delims=: &amp;quot; %i in (&amp;#039;handle -p eclipse e:\git\&amp;#039;) do echo Releasing %k &amp;amp; handle -c %j -y -p %i&lt;/pre&gt;

&lt;p&gt;
Если добавить в систему &lt;strong&gt;grep.exe&lt;/strong&gt; из &lt;a href=&quot;http://gnuwin32.sourceforge.net/packages/grep.htm&quot; class=&quot;urlextern&quot; title=&quot;http://gnuwin32.sourceforge.net/packages/grep.htm&quot; rel=&quot;ugc nofollow&quot;&gt;GnuWin32&lt;/a&gt;, то можно закрывать хендлеры только определенного типа файлов:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;for /f &amp;quot;tokens=3,6,8 delims=: &amp;quot; %i in (&amp;#039;handle -p eclipse e:\git\ ^| grep .xml&amp;#039;) do echo Releasing %k &amp;amp; handle -c %j -y -p %i&lt;/pre&gt;

&lt;p&gt;
Хотя последний вариант можно исполнить и без &lt;strong&gt;grep&lt;/strong&gt;, заменив его на виндовый &lt;strong&gt;find&lt;/strong&gt;.
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;for /f &amp;quot;tokens=3,6,8 delims=: &amp;quot; %i in (&amp;#039;handle c:\users\ ^| find &amp;quot;AppData\Local\&amp;quot; ^| find &amp;quot;.tmp&amp;quot;&amp;#039;) do echo Releasing %k &amp;amp; handle -c %j -y -p %i&lt;/pre&gt;

&lt;p&gt;
Чтобы быстрее закрывать эти хендлы если их много можно использовать start перед последним вызовом handle. В этом случае скрипт не будет дожидаться закрытия handle каждый раз.
&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;\u0420\u0435\u0448\u0435\u043d\u0438\u0435&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0440\u0435\u0448\u0435\u043d\u0438\u0435&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:2,&amp;quot;range&amp;quot;:&amp;quot;611-2551&amp;quot;} --&gt;
&lt;h1 class=&quot;sectionedit3&quot; id=&quot;если_handle_is_invalid&quot;&gt;Если handle is invalid&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
Если при закрытии хендла появляются сообщения типа &lt;strong&gt;Handle is invalid&lt;/strong&gt; или просто &lt;strong&gt;Error T&lt;/strong&gt;, то предлагается сделать так:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;fsutil reparsepoint delete &amp;lt;file name&amp;gt;&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0415\u0441\u043b\u0438 handle is invalid&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0435\u0441\u043b\u0438_handle_is_invalid&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:3,&amp;quot;range&amp;quot;:&amp;quot;2552-&amp;quot;} --&gt;</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Mon, 11 Feb 2019 09:13:27 +0000</pubDate>
        </item>
        <item>
            <title>c_sharp_7.0_import_data_from_csv_to_sql_database</title>
            <link>https://wiki.autosys.tk/ms_windows_ms_sql/c_sharp_7.0_import_data_from_csv_to_sql_database</link>
            <description>
&lt;h1 class=&quot;sectionedit1&quot; id=&quot;задача&quot;&gt;Задача&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
Мне понадобилось из приложения &lt;strong&gt;ASP.NET C#&lt;/strong&gt; загрузить в базу данных &lt;strong&gt;MS SQL&lt;/strong&gt; немного информации из файлов в формате &lt;strong&gt;CSV&lt;/strong&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;\u0417\u0430\u0434\u0430\u0447\u0430&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0437\u0430\u0434\u0430\u0447\u0430&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:1,&amp;quot;range&amp;quot;:&amp;quot;1-239&amp;quot;} --&gt;
&lt;h1 class=&quot;sectionedit2&quot; id=&quot;варианты_решения&quot;&gt;Варианты решения.&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
Если таблица в базе уже есть, то можно воспользоваться &lt;strong&gt;BULK INSERT&lt;/strong&gt;:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;BULK INSERT  [yourdb].[dbo].[yourtable]
  FROM &amp;#039;C:\temp\yourtextfile.txt&amp;#039;
  WITH
     (
        FIELDTERMINATOR =&amp;#039;,&amp;#039;,
        ROWTERMINATOR =&amp;#039;\n&amp;#039;,
        FirstRow=1
     ); &lt;/pre&gt;

&lt;p&gt;
Вот другой вариант. Этот код работает только в 32-битных реализациях MS SQL, потому что в 64-бит отсутствует &lt;strong&gt;Microsoft Text Driver&lt;/strong&gt;.
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;SELECT *
FROM OPENROWSET
(&amp;#039;MSDASQL&amp;#039;, &amp;#039;Driver={Microsoft Text Driver (*.txt; *.csv)};DBQ=C:\test\;&amp;#039;, &amp;#039;SELECT * from Unit__c.csv &amp;#039;); &lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0412\u0430\u0440\u0438\u0430\u043d\u0442\u044b \u0440\u0435\u0448\u0435\u043d\u0438\u044f.&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0432\u0430\u0440\u0438\u0430\u043d\u0442\u044b_\u0440\u0435\u0448\u0435\u043d\u0438\u044f&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:2,&amp;quot;range&amp;quot;:&amp;quot;240-&amp;quot;} --&gt;</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Mon, 11 Feb 2019 09:13:27 +0000</pubDate>
        </item>
        <item>
            <title>dfs_namespace_could_not_contact_or_inaccessible</title>
            <link>https://wiki.autosys.tk/ms_windows_ms_sql/dfs_namespace_could_not_contact_or_inaccessible</link>
            <description>
&lt;h1 class=&quot;sectionedit1&quot; id=&quot;проблема&quot;&gt;Проблема&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
Ошибки такие:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;dfsdiag /testdfsintegrity /dfsroot:...
Warning: The following DFS path is inaccessible and will not be tested again.
  
DFSDiag /TestDFSConfig /DFSRoot:...
Error: Element not found.
Error: Could not contact the following namespace root:...
  
DFSDiag /TestSites /DFSPath:...
Warning: Unable to access the DFS metadata for the following namespace:...
  
New-DfsnRootTarget -Path &amp;quot;...&amp;quot; -TargetPath &amp;quot;...&amp;quot;
New-DfsnRootTarget : Operation cannot be carried out because an object already exists.

Remove-DfsnRootTarget -Targetpath &amp;quot;...&amp;quot;
Remove-DfsnRootTarget : A general error occurred that is not covered by a more specific error code.

DFS Namespace Cannot Be Queried&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u041f\u0440\u043e\u0431\u043b\u0435\u043c\u0430&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0430&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:1,&amp;quot;range&amp;quot;:&amp;quot;1-734&amp;quot;} --&gt;
&lt;h1 class=&quot;sectionedit2&quot; id=&quot;решение&quot;&gt;Решение&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
Решение состоит в том, чтобы удалить глючный неймспейс из AD. Для этого:
&lt;/p&gt;
&lt;ol&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt;
 Открываем оснастку &lt;strong&gt;ADSI Edit&lt;/strong&gt; (&lt;strong&gt;ADSIedit.msc&lt;/strong&gt; )
&lt;/div&gt;&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt;
 Подключаемся к &lt;strong&gt;Default naming context&lt;/strong&gt;.
&lt;/div&gt;&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt;
 Находим в дереве раздел &lt;strong&gt;DC=&amp;lt;domain DN&amp;gt;, CN=System, CN=Dfs-Configuration&lt;/strong&gt;
&lt;/div&gt;&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt;
 Внутри этого раздела находим объект, соотвествующий глючному неймспейсу, кликаем правой кнопкой по нему и удаляем со всем содержимым.
&lt;/div&gt;&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt;
 Дожидаемся репликации по AD или выполняем
&lt;/div&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;pre class=&quot;code&quot;&gt;repadmin /syncall&lt;/pre&gt;

&lt;p&gt;
для ускорения процесса.
&lt;/p&gt;

&lt;p&gt;
&lt;a href=&quot;https://techjourney.net/dfs-namespace-cannot-be-queried-error-remove-delete-orphaned-namespace/&quot; class=&quot;urlextern&quot; title=&quot;https://techjourney.net/dfs-namespace-cannot-be-queried-error-remove-delete-orphaned-namespace/&quot; rel=&quot;ugc nofollow&quot;&gt;https://techjourney.net/dfs-namespace-cannot-be-queried-error-remove-delete-orphaned-namespace/&lt;/a&gt; &lt;br/&gt;

&lt;a href=&quot;https://support.microsoft.com/ru-ru/help/977511/&quot; class=&quot;urlextern&quot; title=&quot;https://support.microsoft.com/ru-ru/help/977511/&quot; rel=&quot;ugc nofollow&quot;&gt;https://support.microsoft.com/ru-ru/help/977511/&lt;/a&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;\u0420\u0435\u0448\u0435\u043d\u0438\u0435&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0440\u0435\u0448\u0435\u043d\u0438\u0435&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:1,&amp;quot;secid&amp;quot;:2,&amp;quot;range&amp;quot;:&amp;quot;735-&amp;quot;} --&gt;</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Mon, 11 Feb 2019 09:13:27 +0000</pubDate>
        </item>
        <item>
            <title>disable_smb2.0</title>
            <link>https://wiki.autosys.tk/ms_windows_ms_sql/disable_smb2.0</link>
            <description>
&lt;p&gt;
Paste the 4 lines of text below into a .txt file (via Notepad) and rename it so the extension is .bat instead of .txt (eg. “Disable SMB2.bat”).  Right click on the .bat file and select “Run as Administrator” and then restart your PC when complete.  
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;title Disable SMB 2.0
sc config lanmanworkstation depend= bowser/mrxsmb10/nsi
sc config mrxsmb20 start= disabled
pause&lt;/pre&gt;

&lt;p&gt;
If you decide you want to re-enable SMB2, follow the same steps but copy and paste the commands below into a .txt file and rename it to a .bat file:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;title Enable SMB 2.0
sc config lanmanworkstation depend= bowser/mrxsmb10/mrxsmb20/nsi
sc config mrxsmb20 start= auto
pause&lt;/pre&gt;

&lt;p&gt;
Excel Slow to open on network drive.
&lt;/p&gt;

&lt;p&gt;
Fix:
&lt;/p&gt;

&lt;p&gt;
Disable SMB 2.0.
&lt;/p&gt;

&lt;p&gt;
You need to apply the fix (below) to both the “client” and the “server” operating systems.
&lt;/p&gt;

&lt;p&gt;
Client
&lt;/p&gt;

&lt;p&gt;
To disable SMB 2.0 for Windows Vista, Windows 7 or Windows systems that are the “client” systems run the following two commands:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;sc config lanmanworkstation depend= bowser/mrxsmb10/nsi
sc config mrxsmb20 start= disabled&lt;/pre&gt;

&lt;p&gt;
Note there&amp;#039;s an extra “ ” (space) after the “=” sign.
&lt;/p&gt;

&lt;p&gt;
Server
&lt;/p&gt;

&lt;p&gt;
Run “regedit” on Windows Server 2008 based computer.
&lt;/p&gt;

&lt;p&gt;
Expand and locate the sub tree as follows.
&lt;/p&gt;

&lt;p&gt;
HKLM\System\CurrentControlSet\Services\LanmanServer\Parameters
&lt;/p&gt;

&lt;p&gt;
Add a new REG_DWORD key with the name of “Smb2” (without quotation mark)
&lt;/p&gt;

&lt;p&gt;
Value name: Smb2
&lt;/p&gt;

&lt;p&gt;
Value type: REG_DWORD
&lt;/p&gt;

&lt;p&gt;
0 = disabled
&lt;/p&gt;

&lt;p&gt;
Set the value to 0 to disable SMB 2.0.
&lt;/p&gt;

&lt;p&gt;
Reboot the server.
&lt;/p&gt;

&lt;p&gt;
Issue is fixed
&lt;/p&gt;
</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Mon, 11 Feb 2019 09:13:27 +0000</pubDate>
        </item>
        <item>
            <title>dynamicaly_created_controls_in_asp_pages</title>
            <link>https://wiki.autosys.tk/ms_windows_ms_sql/dynamicaly_created_controls_in_asp_pages</link>
            <description>
&lt;h1 class=&quot;sectionedit1&quot; id=&quot;asp_html_code&quot;&gt;ASP HTML Code&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;
&lt;pre class=&quot;code&quot;&gt;    &amp;lt;asp:Panel ID=&amp;quot;pnlQuestions&amp;quot; runat=&amp;quot;server&amp;quot; Width=&amp;quot;100%&amp;quot;&amp;gt;
    &amp;lt;/asp:Panel&amp;gt;
    &amp;lt;asp:LinkButton ID=&amp;quot;lbtnNext&amp;quot; runat=&amp;quot;server&amp;quot; CssClass=&amp;quot;button&amp;quot; ToolTip=&amp;quot;Next&amp;quot;
    OnClick=&amp;quot;lbtnNext_Click&amp;quot;&amp;gt;&amp;lt;span&amp;gt;Save &amp;amp; Next&amp;lt;/span&amp;gt;&amp;lt;/asp:LinkButton&amp;gt;&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;ASP HTML Code&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;asp_html_code&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:1,&amp;quot;range&amp;quot;:&amp;quot;1-274&amp;quot;} --&gt;
&lt;h1 class=&quot;sectionedit2&quot; id=&quot;aspxcs&quot;&gt;aspx.cs&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;
&lt;pre class=&quot;code&quot;&gt;    protected void Page_Init(object sender, EventArgs e)
    {
         TextBox txt = new  TextBox();
         txt.Text = QuestionText;
         txt.ID = &amp;quot;que1&amp;quot;;
         pnlQuestions.Controls.Add(txt);
    }&lt;/pre&gt;

&lt;p&gt;
Обработка динамического контрола
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;     protected void lbtnNext_Click(object sender,EventArgs e)
     {
          TextBox txt = ((TextBox)pnlQuestions.FindControl(&amp;quot;que1&amp;quot;));
          AnswerText = txt.Text.Trim();
          Response.Write(AnswerText); 
     }&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;aspx.cs&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;aspxcs&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:1,&amp;quot;secid&amp;quot;:2,&amp;quot;range&amp;quot;:&amp;quot;275-&amp;quot;} --&gt;</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Mon, 11 Feb 2019 09:13:27 +0000</pubDate>
        </item>
        <item>
            <title>enable_sebackuppolicy</title>
            <link>https://wiki.autosys.tk/ms_windows_ms_sql/enable_sebackuppolicy</link>
            <description>
&lt;p&gt;
&lt;a href=&quot;https://gallery.technet.microsoft.com/Adjusting-Token-Privileges-9b6724fc&quot; class=&quot;urlextern&quot; title=&quot;https://gallery.technet.microsoft.com/Adjusting-Token-Privileges-9b6724fc&quot; rel=&quot;ugc nofollow&quot;&gt;https://gallery.technet.microsoft.com/Adjusting-Token-Privileges-9b6724fc&lt;/a&gt;
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;function Set-LHSTokenPrivilege
{
&amp;lt;#
.SYNOPSIS
    Enables or disables privileges in a specified access token.

.DESCRIPTION
    Enables or disables privileges in a specified access token.

.PARAMETER Privilege
    The privilege to adjust. This set is taken from
    http://msdn.microsoft.com/en-us/library/bb530716(VS.85).aspx

.PARAMETER $ProcessId
    The process on which to adjust the privilege. Defaults to the current process.

.PARAMETER Disable
    Switch to disable the privilege, rather than enable it.

.EXAMPLE
    Set-LHSTokenPrivilege -Privilege SeRestorePrivilege

    To set the &amp;#039;Restore Privilege&amp;#039; for the current Powershell Process.

.EXAMPLE
    Set-LHSTokenPrivilege -Privilege SeRestorePrivilege -Disable

    To disable &amp;#039;Restore Privilege&amp;#039; for the current Powershell Process.

.EXAMPLE
    Set-LHSTokenPrivilege -Privilege SeShutdownPrivilege -ProcessId 4711
    
    To set the &amp;#039;Shutdown Privilege&amp;#039; for the Process with Process ID 4711

.INPUTS
    None to the pipeline

.OUTPUTS
    System.Boolean, True if the privilege could be enabled

.NOTES
    to check privileges use whoami
    PS:\&amp;gt; whoami /priv

    PRIVILEGES INFORMATION
    ----------------------

    Privilege Name                Description                          State
    ============================= ==================================== ========
    SeShutdownPrivilege           Shut down the system                 Disabled
    SeChangeNotifyPrivilege       Bypass traverse checking             Enabled
    SeUndockPrivilege             Remove computer from docking station Disabled
    SeIncreaseWorkingSetPrivilege Increase a process working set       Disabled


    AUTHOR: Pasquale Lantella 
    LASTEDIT: 
    KEYWORDS: Token Privilege

.LINK
    http://www.leeholmes.com/blog/2010/09/24/adjusting-token-privileges-in-powershell/

    The privilege to adjust. This set is taken from
    http://msdn.microsoft.com/en-us/library/bb530716(VS.85).aspx

    pinvoke AdjustTokenPrivileges (advapi32)
    http://www.pinvoke.net/default.aspx/advapi32.AdjustTokenPrivileges

#Requires -Version 2.0
#&amp;gt;
   
[cmdletbinding(  
    ConfirmImpact = &amp;#039;low&amp;#039;,
    SupportsShouldProcess = $false
)]  

[OutputType(&amp;#039;System.Boolean&amp;#039;)]

Param(

    [Parameter(Position=0,Mandatory=$True,ValueFromPipeline=$False,HelpMessage=&amp;#039;An Token Privilege.&amp;#039;)]
    [ValidateSet(
        &amp;quot;SeAssignPrimaryTokenPrivilege&amp;quot;, &amp;quot;SeAuditPrivilege&amp;quot;, &amp;quot;SeBackupPrivilege&amp;quot;,
        &amp;quot;SeChangeNotifyPrivilege&amp;quot;, &amp;quot;SeCreateGlobalPrivilege&amp;quot;, &amp;quot;SeCreatePagefilePrivilege&amp;quot;,
        &amp;quot;SeCreatePermanentPrivilege&amp;quot;, &amp;quot;SeCreateSymbolicLinkPrivilege&amp;quot;, &amp;quot;SeCreateTokenPrivilege&amp;quot;,
        &amp;quot;SeDebugPrivilege&amp;quot;, &amp;quot;SeEnableDelegationPrivilege&amp;quot;, &amp;quot;SeImpersonatePrivilege&amp;quot;, &amp;quot;SeIncreaseBasePriorityPrivilege&amp;quot;,
        &amp;quot;SeIncreaseQuotaPrivilege&amp;quot;, &amp;quot;SeIncreaseWorkingSetPrivilege&amp;quot;, &amp;quot;SeLoadDriverPrivilege&amp;quot;,
        &amp;quot;SeLockMemoryPrivilege&amp;quot;, &amp;quot;SeMachineAccountPrivilege&amp;quot;, &amp;quot;SeManageVolumePrivilege&amp;quot;,
        &amp;quot;SeProfileSingleProcessPrivilege&amp;quot;, &amp;quot;SeRelabelPrivilege&amp;quot;, &amp;quot;SeRemoteShutdownPrivilege&amp;quot;,
        &amp;quot;SeRestorePrivilege&amp;quot;, &amp;quot;SeSecurityPrivilege&amp;quot;, &amp;quot;SeShutdownPrivilege&amp;quot;, &amp;quot;SeSyncAgentPrivilege&amp;quot;,
        &amp;quot;SeSystemEnvironmentPrivilege&amp;quot;, &amp;quot;SeSystemProfilePrivilege&amp;quot;, &amp;quot;SeSystemtimePrivilege&amp;quot;,
        &amp;quot;SeTakeOwnershipPrivilege&amp;quot;, &amp;quot;SeTcbPrivilege&amp;quot;, &amp;quot;SeTimeZonePrivilege&amp;quot;, &amp;quot;SeTrustedCredManAccessPrivilege&amp;quot;,
        &amp;quot;SeUndockPrivilege&amp;quot;, &amp;quot;SeUnsolicitedInputPrivilege&amp;quot;)]
    [String]$Privilege,

    [Parameter(Position=1)]
    $ProcessId = $pid,

    [Switch]$Disable
   )

BEGIN {

    Set-StrictMode -Version Latest
    ${CmdletName} = $Pscmdlet.MyInvocation.MyCommand.Name

## Taken from P/Invoke.NET with minor adjustments.

$definition = @&amp;#039;
 using System;
 using System.Runtime.InteropServices;
  
 public class AdjPriv
 {
  [DllImport(&amp;quot;advapi32.dll&amp;quot;, ExactSpelling = true, SetLastError = true)]
  internal static extern bool AdjustTokenPrivileges(IntPtr htok, bool disall, ref TokPriv1Luid newst, int len, IntPtr prev, IntPtr relen);
  
  [DllImport(&amp;quot;advapi32.dll&amp;quot;, ExactSpelling = true, SetLastError = true)]
  internal static extern bool OpenProcessToken(IntPtr h, int acc, ref IntPtr phtok);

  [DllImport(&amp;quot;advapi32.dll&amp;quot;, SetLastError = true)]
  internal static extern bool LookupPrivilegeValue(string host, string name, ref long pluid);

  [StructLayout(LayoutKind.Sequential, Pack = 1)]
  internal struct TokPriv1Luid
  {
   public int Count;
   public long Luid;
   public int Attr;
  }
  
  internal const int SE_PRIVILEGE_ENABLED = 0x00000002;
  internal const int SE_PRIVILEGE_DISABLED = 0x00000000;
  internal const int TOKEN_QUERY = 0x00000008;
  internal const int TOKEN_ADJUST_PRIVILEGES = 0x00000020;

  public static bool EnablePrivilege(long processHandle, string privilege, bool disable)
  {
   bool retVal;
   TokPriv1Luid tp;
   IntPtr hproc = new IntPtr(processHandle);
   IntPtr htok = IntPtr.Zero;
   retVal = OpenProcessToken(hproc, TOKEN_ADJUST_PRIVILEGES | TOKEN_QUERY, ref htok);
   tp.Count = 1;
   tp.Luid = 0;
   if(disable)
   {
    tp.Attr = SE_PRIVILEGE_DISABLED;
   }
   else
   {
    tp.Attr = SE_PRIVILEGE_ENABLED;
   }
   retVal = LookupPrivilegeValue(null, privilege, ref tp.Luid);
   retVal = AdjustTokenPrivileges(htok, false, ref tp, 0, IntPtr.Zero, IntPtr.Zero);
   return retVal;
  }
 }
&amp;#039;@



} # end BEGIN

PROCESS {

    $processHandle = (Get-Process -id $ProcessId).Handle
    
    $type = Add-Type $definition -PassThru
    $type[0]::EnablePrivilege($processHandle, $Privilege, $Disable)

} # end PROCESS

END { Write-Verbose &amp;quot;Function ${CmdletName} finished.&amp;quot; }

} # end Function Set-LHSTokenPrivilege                
 &lt;/pre&gt;
</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Mon, 11 Feb 2019 09:13:27 +0000</pubDate>
        </item>
        <item>
            <title>fill_unused_disk_space_with_0x00</title>
            <link>https://wiki.autosys.tk/ms_windows_ms_sql/fill_unused_disk_space_with_0x00</link>
            <description>
&lt;p&gt;
Для того, чтобы уменьшить объем дискового пространства, занимаемого темплейтами виртуальных машин я решил заполнить свободное место на дисках нулями. &lt;br/&gt;

В этому случае, при размещении темплейта на томе со сжатием или дедупликацией, объем занимаемого места будет минимален. &lt;br/&gt;

&lt;/p&gt;

&lt;h1 class=&quot;sectionedit1&quot; id=&quot;linux_disk_zeroing&quot;&gt;Linux disk zeroing&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
Для &lt;strong&gt;linux&lt;/strong&gt; все просто:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;dd if=/dev/zero of=/dev/ZERO bs=16384
rm -f /dev/ZERO&lt;/pre&gt;

&lt;p&gt;
Создаем файлик в который пишем нули.  &lt;br/&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;Linux disk zeroing&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;linux_disk_zeroing&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:1,&amp;quot;range&amp;quot;:&amp;quot;506-707&amp;quot;} --&gt;
&lt;h1 class=&quot;sectionedit2&quot; id=&quot;windows_disk_zeroing&quot;&gt;Windows Disk Zeroing&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
Для &lt;strong&gt;Windows&lt;/strong&gt; решений несколько. &lt;br/&gt;

Первое - стандатрная утилита &lt;strong&gt;cipher&lt;/strong&gt;. Для этого у нее есть ключ /W.
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;cipher /W:c:\&lt;/pre&gt;

&lt;p&gt;
Второй вариант - &lt;a href=&quot;http://technet.microsoft.com/en-us/sysinternals/bb897443.aspx&quot; class=&quot;urlextern&quot; title=&quot;http://technet.microsoft.com/en-us/sysinternals/bb897443.aspx&quot; rel=&quot;ugc nofollow&quot;&gt;sdelete&lt;/a&gt;
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;sdelete -z c:&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Windows Disk Zeroing&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;windows_disk_zeroing&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:2,&amp;quot;range&amp;quot;:&amp;quot;708-&amp;quot;} --&gt;</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Wed, 13 Feb 2019 10:30:00 +0000</pubDate>
        </item>
        <item>
            <title>fsmo_transfer</title>
            <link>https://wiki.autosys.tk/ms_windows_ms_sql/fsmo_transfer</link>
            <description>
&lt;p&gt;
В моей &lt;a href=&quot;https://wiki.autosys.tk/proxmox/small_home_proxmox_box&quot; class=&quot;wikilink1&quot; title=&quot;proxmox:small_home_proxmox_box&quot; data-wiki-id=&quot;proxmox:small_home_proxmox_box&quot;&gt;домашней тестовой инфраструктуре&lt;/a&gt; единственный контроллер домена &lt;strong&gt;Active Directory&lt;/strong&gt; (&lt;strong&gt;Domain Controller&lt;/strong&gt;) и для его обновления (например с &lt;strong&gt;Windows Server 2016&lt;/strong&gt; до &lt;strong&gt;Windows server 2019&lt;/strong&gt;) я использую такой метод:
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt;
 Поднимаю новый временный &lt;strong&gt;DC&lt;/strong&gt; с новым именем и IP-адресом.
&lt;/div&gt;&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt;
 Передаю временному контроллеру роли &lt;strong&gt;FSMO&lt;/strong&gt;. На него переезжает фактически вся база &lt;strong&gt;AD&lt;/strong&gt; и &lt;strong&gt;&lt;abbr title=&quot;Domain Name System&quot;&gt;DNS&lt;/abbr&gt;&lt;/strong&gt;.
&lt;/div&gt;&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt;
 старый &lt;strong&gt;DC&lt;/strong&gt; убиваю (&lt;strong&gt;demote&lt;/strong&gt;) и удаляю его из &lt;strong&gt;AD&lt;/strong&gt;.
&lt;/div&gt;&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt;
 поднимаю еще один новый постоянный &lt;strong&gt;DC&lt;/strong&gt;, с именем и IP-адресом старого постоянного
&lt;/div&gt;&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt;
 Передаю новому постоянному &lt;strong&gt;DC&lt;/strong&gt; роли &lt;strong&gt;FSMO&lt;/strong&gt; с временного.
&lt;/div&gt;&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt;
 Убиваю (&lt;strong&gt;demote&lt;/strong&gt;) временный контроллер.
&lt;/div&gt;&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;
В итоге, для клиентов, если на них контроллер был прописан в качестве &lt;strong&gt;&lt;abbr title=&quot;Domain Name System&quot;&gt;DNS&lt;/abbr&gt;&lt;/strong&gt; или как-то еще, ничего не меняется.&lt;br/&gt;

Самый важный момент тут - передача ролей &lt;strong&gt;FSMO&lt;/strong&gt;.&lt;br/&gt;

Итак. Ролей вcего пять:
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt;
 &lt;strong&gt;PDCEmulator&lt;/strong&gt;
&lt;/div&gt;&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt;
 &lt;strong&gt;RIDMaster&lt;/strong&gt;
&lt;/div&gt;&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt;
 &lt;strong&gt;InfrastructureMaster&lt;/strong&gt;
&lt;/div&gt;&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt;
 &lt;strong&gt;SchemaMaster&lt;/strong&gt;
&lt;/div&gt;&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt;
 &lt;strong&gt;DomainNamingMaster&lt;/strong&gt;
&lt;/div&gt;&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;
Посмотреть какому хосту в данный момент принадлежат роли:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;Get-ADDomain
Get-ADForest&lt;/pre&gt;

&lt;p&gt;
Перенести роли можно с помощью &lt;strong&gt;powershell&lt;/strong&gt; по одной:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;Move-ADDirectoryServerOperationMasterRole -Identity &amp;quot;NewDC1&amp;quot; PDCEmulator&lt;/pre&gt;

&lt;p&gt;
Либо - сразу несколько:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;Move-ADDirectoryServerOperationMasterRole -Identity &amp;quot;NewDC1&amp;quot; PDCEmulator,InfrastructureMaster&lt;/pre&gt;

&lt;p&gt;
Либо даже сразу все и без указания полных имен ролей:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;Move-ADDirectoryServerOperationMasterRole -Identity &amp;quot;NewDC1&amp;quot; 0,1,2,3,4&lt;/pre&gt;

&lt;p&gt;
Соответствия номеров именам приведены в табличке:
&lt;/p&gt;
&lt;div class=&quot;table sectionedit1&quot;&gt;&lt;table class=&quot;inline&quot;&gt;
	&lt;thead&gt;
	&lt;tr class=&quot;row0&quot;&gt;
		&lt;th class=&quot;col0&quot;&gt;Имя&lt;/th&gt;&lt;th class=&quot;col1&quot;&gt;Номер&lt;/th&gt;
	&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tr class=&quot;row1&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;PDCEmulator&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;0&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row2&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;RIDMaster&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;1&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row3&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;InfrastructureMaster&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;2&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row4&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;SchemaMaster&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;3&lt;/td&gt;
	&lt;/tr&gt;
	&lt;tr class=&quot;row5&quot;&gt;
		&lt;td class=&quot;col0&quot;&gt;DomainNamingMaster&lt;/td&gt;&lt;td class=&quot;col1&quot;&gt;4&lt;/td&gt;
	&lt;/tr&gt;
&lt;/table&gt;&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;table&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;table&amp;quot;,&amp;quot;secid&amp;quot;:1,&amp;quot;range&amp;quot;:&amp;quot;2216-2330&amp;quot;} --&gt;</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Thu, 20 May 2021 12:21:58 +0000</pubDate>
        </item>
        <item>
            <title>grab_windows_key_from_bios</title>
            <link>https://wiki.autosys.tk/ms_windows_ms_sql/grab_windows_key_from_bios</link>
            <description>
&lt;p&gt;
как посмотреть ключ Windows, прошитый в BIOS??
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;sudo cat /sys/firmware/acpi/tables/MSDM | tail -c 32 | xargs -0 echo&lt;/pre&gt;
</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Sun, 27 Sep 2020 06:34:13 +0000</pubDate>
        </item>
        <item>
            <title>how_to_use_dynamic_sql_querys</title>
            <link>https://wiki.autosys.tk/ms_windows_ms_sql/how_to_use_dynamic_sql_querys</link>
            <description>
&lt;p&gt;
Иногда, при формировании запроса к базе данных необходимо использовать данные из ранее полученных запросов. То есть, например, в качестве имени запрашиваемого поля или таблицы использовать данные получаемые динамически в цикле. Для этих целей существует &lt;strong&gt;dynamic sql&lt;/strong&gt;. 
&lt;/p&gt;

&lt;h1 class=&quot;sectionedit1&quot; id=&quot;формирование_запроса_dynamic_sql&quot;&gt;Формирование запроса Dynamic SQL&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
При использовании &lt;strong&gt;dynamic sql&lt;/strong&gt; запрос формируется как строка:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;SET @SQLQuery=&amp;#039;SELECT @Customer_Svc_ID=&amp;#039;+@Table_Name+&amp;#039;_id FROM Customers WHERE Customer_ID=&amp;#039;+CONVERT(nvarchar(10),@Customer_ID);&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0424\u043e\u0440\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0437\u0430\u043f\u0440\u043e\u0441\u0430 Dynamic SQL&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0444\u043e\u0440\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435_\u0437\u0430\u043f\u0440\u043e\u0441\u0430_dynamic_sql&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:1,&amp;quot;range&amp;quot;:&amp;quot;488-794&amp;quot;} --&gt;
&lt;h1 class=&quot;sectionedit2&quot; id=&quot;выполнение_запроса_dynamic_sql&quot;&gt;Выполнение запроса Dynamic SQL&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
Использование динамических запросов возможно только из хранимых процедур и невозможно из функций. При попытке выполнить динамический запрос из функции вы получите сообщение:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;Only functions and some extended stored procedures can be executed from within a function.&lt;/pre&gt;

&lt;p&gt;
Формирование динамического запроса, выполнение его и возврат результата включает этапы:
&lt;/p&gt;
&lt;ol&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt;
 Вызов хранимой процедуры с параметрами, один из которых (необязательно) - переменная куда будет записан результат.
&lt;/div&gt;&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt;
 В процедуре формируется строка динамического запроса, включающая в себя переданные в процедуру параметры.
&lt;/div&gt;&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt;
 Динамический запрос выполняется и возвращает результат в хранимую процедуру. 
&lt;/div&gt;&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt;
 Хранимая процедура возвращает результат в вызвавший её код (приложение или другая хранимая процедура)
&lt;/div&gt;&lt;/li&gt;
&lt;/ol&gt;


&lt;p&gt;
Динамические запросы выполняются с помощью ключевого слова &lt;strong&gt;EXEC/EXECUTE&lt;/strong&gt; или хранимой процедуры &lt;strong&gt;sp_executesql&lt;/strong&gt;.
Исполнение динамических запросов с помощью &lt;strong&gt;EXEC/EXECUTE&lt;/strong&gt; считается довольно неудобным и  очень небезопасным. Поэтому для исполнения динамических запросов рекомендуется использовать хранимую процедуру &lt;strong&gt;sp_executesql&lt;/strong&gt;. &lt;br/&gt;

В моем случае мне нужно было выполнить пару динамических запросов для получения нужного результата:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;ALTER PROCEDURE [dbo].[get_svc_quantity]
(	@Customer_ID int,
	@Svc_Name nvarchar(30),
	@Month nvarchar(30)
)
AS
BEGIN
SET NOCOUNT ON;
DECLARE @SQLQuery nvarchar(1000),
		@Billing_Event_Name nvarchar(200),
		@Customer_Svc_ID nvarchar(100),
		@Table_Name nvarchar(20),
		@Quantity int

SELECT @Billing_Event_Name = Billing_Event_Name FROM HZN_Subscription_Services WHERE Name=@Svc_Name
SELECT @Table_Name = Table_Name FROM HZN_Subscription_Services WHERE Name=@Svc_Name
----------------
SET @SQLQuery=&amp;#039;SELECT @Customer_Svc_ID=&amp;#039;+@Table_Name+&amp;#039;_id FROM Customers WHERE Customer_ID=&amp;#039;+CONVERT(nvarchar(10),@Customer_ID);
exec sp_executesql @SQLQuery, N&amp;#039; @Customer_Svc_ID nvarchar(100) OUTPUT&amp;#039;, @Customer_Svc_ID OUTPUT
----------------------
SET @SQLQuery=&amp;#039;SELECT @Quantity = Quantity FROM &amp;#039;+ @Table_Name + &amp;#039; WHERE id=@Customer_Svc_ID AND Month=@Month AND Billing_Event_Name=@Billing_Event_Name AND id=@Customer_Svc_ID&amp;#039;
exec sp_executesql @SQLQuery, N&amp;#039;@Customer_Svc_ID nvarchar(100), @Month nvarchar(30), @Billing_Event_Name nvarchar(200), @Quantity int OUTPUT&amp;#039;, @Customer_Svc_ID=@Customer_Svc_ID, @Month=@Month, @Billing_Event_Name=@Billing_Event_Name, @Quantity = @Quantity OUTPUT
SELECT @Quantity AS Quantity
RETURN
END&lt;/pre&gt;

&lt;p&gt;
Формирование самого запроса обычно проблем не вызывает. Это обычная конкатенация строк. При использовании &lt;strong&gt;sp_executesql&lt;/strong&gt; переменные в запросе не нужно как-то дополнительно обрабатывать с помощью кавычек. Просто на месте переменной пишем ее имя. Например - &lt;strong&gt;@Customer_Svc_ID&lt;/strong&gt;.&lt;br/&gt;

При вызове &lt;strong&gt;sp_executesql&lt;/strong&gt; этой процедуре нужно передать текст запроса, список переменных и их типов и значения переменных. 
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;DECLARE @sqlCommand nvarchar(1000)
DECLARE @columnList varchar(75)
DECLARE @city varchar(75)
SET @columnList = &amp;#039;CustomerID, ContactName, City&amp;#039;
SET @city = &amp;#039;London&amp;#039;
SET @sqlCommand = &amp;#039;SELECT &amp;#039; + @columnList + &amp;#039; FROM customers WHERE City = @city&amp;#039;
EXECUTE sp_executesql @sqlCommand, N&amp;#039;@city nvarchar(75)&amp;#039;, @city = @city&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0412\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435 \u0437\u0430\u043f\u0440\u043e\u0441\u0430 Dynamic SQL&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0432\u044b\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435_\u0437\u0430\u043f\u0440\u043e\u0441\u0430_dynamic_sql&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:2,&amp;quot;range&amp;quot;:&amp;quot;795-5223&amp;quot;} --&gt;
&lt;h1 class=&quot;sectionedit3&quot; id=&quot;использование_значений_возвращаемых_динамическим_запросом&quot;&gt;Использование значений, возвращаемых динамическим запросом&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
Для того, чтобы динамический запрос мог мог возвращать значение (чтобы потом его использовать в родительской процедуре) в него нужно передать переменную, которая пример это значение. например:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;SELECT @Variable = .....&lt;/pre&gt;

&lt;p&gt;
А в списке переменных обозначить эту переменную как &lt;strong&gt;OUTPUT&lt;/strong&gt;. 
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;SET @SQLQuery=&amp;#039;SELECT @Quantity = Quantity FROM &amp;#039;+ @Table_Name + &amp;#039; WHERE id=@Customer_Svc_ID AND Month=@Month AND Billing_Event_Name=@Billing_Event_Name AND id=@Customer_Svc_ID&amp;#039;
exec sp_executesql @SQLQuery, N&amp;#039;@Customer_Svc_ID nvarchar(100), @Month nvarchar(30), @Billing_Event_Name nvarchar(200), @Quantity int OUTPUT&amp;#039;, @Customer_Svc_ID=@Customer_Svc_ID, @Month=@Month, @Billing_Event_Name=@Billing_Event_Name, @Quantity = @Quantity OUTPUT&lt;/pre&gt;

&lt;p&gt;
В конце хранимой процедуры, которая должна возвращать значение нужно явно выполнить &lt;strong&gt;SELECT AS&lt;/strong&gt;, чтобы значение (или значения) возвращалось как таблица и к элементам можно было обращаться по имени. В моем случае:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;SELECT @Quantity AS Quantity&lt;/pre&gt;

&lt;p&gt;
Вызов процедуры, содержащей динамический запрос, выполняется так:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;EXEC get_svc_quantity 3, &amp;#039;VOIP_Ext_BB&amp;#039;, &amp;#039;April 2018&amp;#039;&lt;/pre&gt;

&lt;p&gt;
То есть указывается ключевое слово &lt;strong&gt;EXEC&lt;/strong&gt;, затем имя процедуры и список параметров через запятую. &lt;br/&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;\u0418\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439, \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u043c\u044b\u0445 \u0434\u0438\u043d\u0430\u043c\u0438\u0447\u0435\u0441\u043a\u0438\u043c \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u043c&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435_\u0437\u043d\u0430\u0447\u0435\u043d\u0438\u0439_\u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u043c\u044b\u0445_\u0434\u0438\u043d\u0430\u043c\u0438\u0447\u0435\u0441\u043a\u0438\u043c_\u0437\u0430\u043f\u0440\u043e\u0441\u043e\u043c&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:2,&amp;quot;secid&amp;quot;:3,&amp;quot;range&amp;quot;:&amp;quot;5224-7053&amp;quot;} --&gt;
&lt;h1 class=&quot;sectionedit4&quot; id=&quot;использование_результатов_возвращаемых_процедурой_с_динамическими_запросами&quot;&gt;Использование результатов, возвращаемых процедурой с динамическими запросами&lt;/h1&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;\u0418\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u043e\u0432, \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u043c\u044b\u0445 \u043f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u043e\u0439 \u0441 \u0434\u0438\u043d\u0430\u043c\u0438\u0447\u0435\u0441\u043a\u0438\u043c\u0438 \u0437\u0430\u043f\u0440\u043e\u0441\u0430\u043c\u0438&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435_\u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u043e\u0432_\u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u043c\u044b\u0445_\u043f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u043e\u0439_\u0441_\u0434\u0438\u043d\u0430\u043c\u0438\u0447\u0435\u0441\u043a\u0438\u043c\u0438_\u0437\u0430\u043f\u0440\u043e\u0441\u0430\u043c\u0438&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:2,&amp;quot;secid&amp;quot;:4,&amp;quot;range&amp;quot;:&amp;quot;7054-7213&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit5&quot; id=&quot;c&quot;&gt;C#&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
В коде &lt;strong&gt;C#&lt;/strong&gt; вызов процедуры и обработка результата выполняется также как и любой другой запрос:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;SqlCommand get_selected_month_quantity = new SqlCommand(&amp;quot;EXEC get_svc_quantity &amp;quot; + HZN_Subscriptions_Customers.SelectedValue.ToString() + &amp;quot;, &amp;#039;&amp;quot; +
                                                                servicename + &amp;quot;&amp;#039;, &amp;#039;&amp;quot; + Month_DropDownList.SelectedValue.ToString() + &amp;quot; &amp;quot; +
                                                                Year_DropDownList.SelectedValue.ToString() + &amp;quot;&amp;#039;;&amp;quot;, conn);
//EXEC get_svc_quantity 3, &amp;#039;VOIP_Ext_BB&amp;#039;, &amp;#039;April 2018&amp;#039;
using (SqlDataReader selected_month_quantity = get_selected_month_quantity.ExecuteReader())
{
    selected_month_quantity.Read();
    Cells[2].Text = selected_month_quantity[&amp;quot;Quantity&amp;quot;].ToString();
}&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;C#&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;c&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:2,&amp;quot;secid&amp;quot;:5,&amp;quot;range&amp;quot;:&amp;quot;7214-8081&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit6&quot; id=&quot;в_хранимых_процедурах_sql&quot;&gt;В хранимых процедурах SQL&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
Для того, чтобы результаты, возвращаемые процедурой можно было использовать в других (вызывающих процедуру с динамическим запросом) процедурах, процедуре с динамическим запросом нужно передать в качестве параметра переменную, в которую будет записано возвращаемое значение. Это не нужно делать для процедур, вызываемых из приложения, но нужно для процедур вызываемых из других процедур. Для использования в других процедурах моя процедура будет выглядеть так:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;ALTER PROCEDURE [dbo].[get_svc_quantity_]
(	@Customer_ID int,
	@Svc_Name nvarchar(30),
	@Month nvarchar(30),
	@Quantity int OUTPUT
)
AS
BEGIN
SET NOCOUNT ON;
DECLARE @SQLQuery nvarchar(1000),
		@Billing_Event_Name nvarchar(200),
		@Customer_Svc_ID nvarchar(100),
		@Table_Name nvarchar(20)

SELECT @Billing_Event_Name = Billing_Event_Name FROM HZN_Subscription_Services WHERE Name=@Svc_Name
SELECT @Table_Name = Table_Name FROM HZN_Subscription_Services WHERE Name=@Svc_Name
----------------
SET @SQLQuery=&amp;#039;SELECT @Customer_Svc_ID=&amp;#039;+@Table_Name+&amp;#039;_id FROM Customers WHERE Customer_ID=&amp;#039;+CONVERT(nvarchar(10),@Customer_ID);
exec sp_executesql @SQLQuery, N&amp;#039; @Customer_Svc_ID nvarchar(100) OUTPUT&amp;#039;, @Customer_Svc_ID OUTPUT
----------------------
SET @SQLQuery=&amp;#039;SELECT @Quantity = Quantity FROM &amp;#039;+ @Table_Name + &amp;#039; WHERE id=@Customer_Svc_ID AND Month=@Month AND Billing_Event_Name=@Billing_Event_Name AND id=@Customer_Svc_ID&amp;#039;
exec sp_executesql @SQLQuery, N&amp;#039;@Customer_Svc_ID nvarchar(100), @Month nvarchar(30), @Billing_Event_Name nvarchar(200), @Quantity int OUTPUT&amp;#039;, @Customer_Svc_ID=@Customer_Svc_ID, @Month=@Month, @Billing_Event_Name=@Billing_Event_Name, @Quantity = @Quantity OUTPUT

RETURN
END&lt;/pre&gt;

&lt;p&gt;
И вызов ее можно делать так:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;DECLARE @q int
EXEC get_svc_quantity_ 3, &amp;#039;VOIP_Ext_BB&amp;#039;, &amp;#039;April 2018&amp;#039;, @q OUTPUT

PRINT @q&lt;/pre&gt;

&lt;p&gt;
&lt;a href=&quot;https://www.mssqltips.com/sqlservertip/1160/execute-dynamic-sql-commands-in-sql-server/&quot; class=&quot;urlextern&quot; title=&quot;https://www.mssqltips.com/sqlservertip/1160/execute-dynamic-sql-commands-in-sql-server/&quot; rel=&quot;ugc nofollow&quot;&gt;https://www.mssqltips.com/sqlservertip/1160/execute-dynamic-sql-commands-in-sql-server/&lt;/a&gt; &lt;br/&gt;

&lt;a href=&quot;https://docs.microsoft.com/en-us/sql/relational-databases/stored-procedures/return-data-from-a-stored-procedure?view=sql-server-2017&quot; class=&quot;urlextern&quot; title=&quot;https://docs.microsoft.com/en-us/sql/relational-databases/stored-procedures/return-data-from-a-stored-procedure?view=sql-server-2017&quot; rel=&quot;ugc nofollow&quot;&gt;https://docs.microsoft.com/en-us/sql/relational-databases/stored-procedures/return-data-from-a-stored-procedure?view=sql-server-2017&lt;/a&gt; &lt;br/&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;\u0412 \u0445\u0440\u0430\u043d\u0438\u043c\u044b\u0445 \u043f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u0430\u0445 SQL&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0432_\u0445\u0440\u0430\u043d\u0438\u043c\u044b\u0445_\u043f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u0430\u0445_sql&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:3,&amp;quot;secid&amp;quot;:6,&amp;quot;range&amp;quot;:&amp;quot;8082-&amp;quot;} --&gt;</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Mon, 11 Feb 2019 09:13:27 +0000</pubDate>
        </item>
        <item>
            <title>iis_7.5_acme_the_page_you_are_requesting_cannot_be_served_because_of_the_extension_configuration</title>
            <link>https://wiki.autosys.tk/ms_windows_ms_sql/iis_7.5_acme_the_page_you_are_requesting_cannot_be_served_because_of_the_extension_configuration</link>
            <description>
&lt;p&gt;
При попытке получить сертификат по протоколу ACME с помощью утилиты &lt;a href=&quot;https://github.com/Lone-Coder/letsencrypt-win-simple&quot; class=&quot;urlextern&quot; title=&quot;https://github.com/Lone-Coder/letsencrypt-win-simple&quot; rel=&quot;ugc nofollow&quot;&gt;letsencrypt-win-simple&lt;/a&gt; не получалось валидировать сервер. Файл &lt;strong&gt;/.well-known/acme-challenge/….&lt;/strong&gt; был недоступен. &lt;br/&gt;

При попытке загрузить этот файл вручную с помощью браузера появлялась ошибка:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;The page you are requesting cannot be served because of the extension configuration&lt;/pre&gt;

&lt;p&gt;
Решение - добавить в &lt;strong&gt;IIS&lt;/strong&gt; в типы &lt;strong&gt;MIME&lt;/strong&gt; в конфигурацию папки &lt;strong&gt;/.well-known/acme-challenge/&lt;/strong&gt; все файлы, то есть просто звездочку - &lt;strong&gt;&lt;/strong&gt;*, а также просто точку &lt;strong&gt;.&lt;/strong&gt; (это позволит избежать &lt;strong&gt;Error 404&lt;/strong&gt; при проверке &lt;strong&gt;acme-challenge&lt;/strong&gt;). 
&lt;/p&gt;
</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Mon, 11 Feb 2019 09:13:27 +0000</pubDate>
        </item>
        <item>
            <title>iis_authenticate_windows_isers_using_forms</title>
            <link>https://wiki.autosys.tk/ms_windows_ms_sql/iis_authenticate_windows_isers_using_forms</link>
            <description>
&lt;h1 class=&quot;sectionedit1&quot; id=&quot;задача&quot;&gt;Задача&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
Есть приложение, написанное на ASP. Оно аутентифицирует пользователя использую &lt;strong&gt;Windows Authentication&lt;/strong&gt;. &lt;br/&gt;

Пользователям не нравится стандартное окно аутентификации &lt;strong&gt;Internet Explorer&lt;/strong&gt; и они желают чтобы был красивый &lt;strong&gt;Login Page&lt;/strong&gt;.
&lt;br/&gt;

&lt;br/&gt;

&lt;a href=&quot;https://www.codeproject.com/Articles/37558/Windows-Authentication-Using-Form-Authentication&quot; class=&quot;urlextern&quot; title=&quot;https://www.codeproject.com/Articles/37558/Windows-Authentication-Using-Form-Authentication&quot; rel=&quot;ugc nofollow&quot;&gt;https://www.codeproject.com/Articles/37558/Windows-Authentication-Using-Form-Authentication&lt;/a&gt;
&lt;/p&gt;
&lt;hr /&gt;

&lt;p&gt;
You can implement forms authentication with your own custom Login page. In the controller code you can check if the given username/password is correct through Windows authentication mechanisms.
&lt;/p&gt;

&lt;p&gt;
We are using it in our MVC application and it just works with Forms Authentication. You have to implement the authentication against AD on your own. After successful authentication you set a cookie
&lt;/p&gt;

&lt;p&gt;
FormsAuthentication.SetAuthCookie(model.UserId, true);
&lt;/p&gt;

&lt;p&gt;
and the user is authenticated on your site. You need to decorate your controllers with [Authorize] attribute.
&lt;/p&gt;
&lt;hr /&gt;

&lt;p&gt;
&lt;a href=&quot;https://msdn.microsoft.com/en-us/library/ms972958.aspx&quot; class=&quot;urlextern&quot; title=&quot;https://msdn.microsoft.com/en-us/library/ms972958.aspx&quot; rel=&quot;ugc nofollow&quot;&gt;https://msdn.microsoft.com/en-us/library/ms972958.aspx&lt;/a&gt; &lt;br/&gt;

Суть описанного метода такова.&lt;br/&gt;

Включается &lt;strong&gt;Forms Authentication&lt;/strong&gt;,  а в качестве &lt;strong&gt;loginUrl&lt;/strong&gt; указывается страница &lt;strong&gt;WinLogin.aspx&lt;/strong&gt;, которая проверит &lt;strong&gt;Windows Integrated security&lt;/strong&gt; и если пользователь не признается залогиненым, то перенаправляет его на страницу с &lt;strong&gt;Forms Authentication&lt;/strong&gt;. 
&lt;/p&gt;

&lt;/div&gt;
</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Mon, 11 Feb 2019 09:13:27 +0000</pubDate>
        </item>
        <item>
            <title>iis_non_root_default_document</title>
            <link>https://wiki.autosys.tk/ms_windows_ms_sql/iis_non_root_default_document</link>
            <description>&lt;pre class=&quot;code&quot;&gt;&amp;lt;script type=&amp;quot;text/javascript&amp;quot;&amp;gt;
&amp;lt;!--
window.location=&amp;quot;/Director&amp;quot;;
// --&amp;gt;
&amp;lt;/script&amp;gt;&lt;/pre&gt;
</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Mon, 11 Feb 2019 09:13:27 +0000</pubDate>
        </item>
        <item>
            <title>install_printer_error_6_error_1796</title>
            <link>https://wiki.autosys.tk/ms_windows_ms_sql/install_printer_error_6_error_1796</link>
            <description>
&lt;h1 class=&quot;sectionedit1&quot; id=&quot;проблема&quot;&gt;Проблема&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
С какого-то момента на нескольких терминальных серверах перестали устанавливаться принтеры &lt;strong&gt;ThinPrint&lt;/strong&gt;.&lt;br/&gt;

При установке с помощью &lt;strong&gt;tpautoconnect&lt;/strong&gt; возникали ошибки &lt;strong&gt;invalid handle error 6&lt;/strong&gt; или &lt;strong&gt;invalid handle error 1796&lt;/strong&gt;.&lt;br/&gt;

При попытке установить принтер вручную возникала ошибка &lt;strong&gt;Windows cannot connect to the printer. Operation failed with error 0x00000006&lt;/strong&gt;.&lt;br/&gt;

Обращение в техническую поддержку &lt;strong&gt;ThinPrint&lt;/strong&gt; результата не дало. Они что-то невнятно буровили про &lt;strong&gt;wmi&lt;/strong&gt; и помочь не смогли.&lt;br/&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;\u041f\u0440\u043e\u0431\u043b\u0435\u043c\u0430&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0430&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:1,&amp;quot;range&amp;quot;:&amp;quot;1-790&amp;quot;} --&gt;
&lt;h1 class=&quot;sectionedit2&quot; id=&quot;решение&quot;&gt;Решение&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
Решение нашлось в онторнетах. &lt;br/&gt;

Нужно в реестре удалить ветку &lt;strong&gt;HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Print\Providers\Client Side Rendering Print Providers&lt;/strong&gt;. Предварительно нужно ее забекапить, на всякий случай.&lt;br/&gt;

&lt;br/&gt;

После удаления нужно перезапустить &lt;strong&gt;Print Spooler&lt;/strong&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;\u0420\u0435\u0448\u0435\u043d\u0438\u0435&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0440\u0435\u0448\u0435\u043d\u0438\u0435&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:2,&amp;quot;range&amp;quot;:&amp;quot;791-&amp;quot;} --&gt;</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Mon, 11 Feb 2019 09:13:27 +0000</pubDate>
        </item>
        <item>
            <title>install_software_using_wmi_and_powershell</title>
            <link>https://wiki.autosys.tk/ms_windows_ms_sql/install_software_using_wmi_and_powershell</link>
            <description>
&lt;h1 class=&quot;sectionedit1&quot; id=&quot;задача&quot;&gt;Задача&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
Есть сеть с виртуальными машинами &lt;strong&gt;Windows 7&lt;/strong&gt;. Задача - закинуть на каждую машинку дистрибутив (~400Mb) и запустить его с нужными параметрами. &lt;br/&gt;

В сети запрещены файловые шары, на всех машинах отключены &lt;strong&gt;RPC&lt;/strong&gt; (служба &lt;strong&gt;Сервер&lt;/strong&gt; (&lt;strong&gt;Server&lt;/strong&gt;)) и &lt;strong&gt;Powershell Remote Execution&lt;/strong&gt;. Таким образом, невозможно использовать &lt;strong&gt;psexec&lt;/strong&gt; (&lt;strong&gt;winexe&lt;/strong&gt;) или &lt;strong&gt;powershell&lt;/strong&gt;. Однако у нас есть права локального админа на каждой машине, работоспособен &lt;strong&gt;Windows Management Interface (WMI)&lt;/strong&gt; и в сети доступен сервер &lt;strong&gt;http&lt;/strong&gt;. &lt;br/&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;\u0417\u0430\u0434\u0430\u0447\u0430&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0437\u0430\u0434\u0430\u0447\u0430&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:1,&amp;quot;range&amp;quot;:&amp;quot;1-827&amp;quot;} --&gt;
&lt;h1 class=&quot;sectionedit2&quot; id=&quot;решение&quot;&gt;Решение&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
Дистрибутив выкладываем на &lt;strong&gt;http&lt;/strong&gt; сервер. План такой - вызвав метод &lt;strong&gt;WMI&lt;/strong&gt; из скрипта &lt;strong&gt;powershell&lt;/strong&gt; запустить &lt;strong&gt;powershell&lt;/strong&gt; на целевой машине и скачать дистр на машину. Для скачивания с помощью &lt;strong&gt;powershell 2.0&lt;/strong&gt; из состава &lt;strong&gt;Windows 7&lt;/strong&gt; можно применить такой метод:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;wmic /node:RemotePC /user:admin /password:pass process call create &amp;quot;powershell -Command &amp;quot;(New-Object Net.WebClient).DownloadFile(&amp;#039;http://www.foo.com/package.zip&amp;#039;, &amp;#039;package.zip&amp;#039;)&amp;quot;&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0420\u0435\u0448\u0435\u043d\u0438\u0435&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0440\u0435\u0448\u0435\u043d\u0438\u0435&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:2,&amp;quot;range&amp;quot;:&amp;quot;828-&amp;quot;} --&gt;</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Mon, 11 Feb 2019 09:13:27 +0000</pubDate>
        </item>
        <item>
            <title>intel_hd_audio_1c20_error_code_10</title>
            <link>https://wiki.autosys.tk/ms_windows_ms_sql/intel_hd_audio_1c20_error_code_10</link>
            <description>
&lt;p&gt;
&lt;a href=&quot;https://answers.microsoft.com/en-us/windows/forum/all/high-definition-audio-device-device-cannot-start/f6bb86ad-8097-41ec-acb4-c0da0cd217c0&quot; class=&quot;urlextern&quot; title=&quot;https://answers.microsoft.com/en-us/windows/forum/all/high-definition-audio-device-device-cannot-start/f6bb86ad-8097-41ec-acb4-c0da0cd217c0&quot; rel=&quot;ugc nofollow&quot;&gt;https://answers.microsoft.com/en-us/windows/forum/all/high-definition-audio-device-device-cannot-start/f6bb86ad-8097-41ec-acb4-c0da0cd217c0&lt;/a&gt; &lt;br/&gt;

&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt; Fixed.

Found out that it&amp;#039;s all about the Intel DisplayAudio driver, which is not installed unless the device is active. So here is what I did:

- I downloaded once more the latest Intel HD graphics driver from the Intel site, but this time the zip file, not the executable: https://downloadcenter.intel.com/Detail_Desc.aspx?agr=Y&amp;amp;DwnldID=23323&amp;amp;lang=eng.

- Extracted the file to some location.

- I changed the display config from single output to my pc monitor to &amp;#039;extended desktop&amp;#039;, so the HDMI output to my receiver became active.

- In Device Manager I right clicked the device with the yellow exclamation mark and updated the driver manually by pointing to the DisplayAudio subfolder in the folder into which I extracted the driver files.

- Done, the exclamation mark was gone. To be sure I rebooted the pc and was able to play audio over HDMI.

See, I had the driver package installed for the most part, just the DisplayAudio bit was missing, because the HDMI output was not active during the first install.

Hope you all get it fixed too!&lt;/pre&gt;
</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Tue, 29 Sep 2020 07:34:04 +0000</pubDate>
        </item>
        <item>
            <title>internet_explorer_не_сохраняет_отступы_page_setup_margins_not_saved</title>
            <link>https://wiki.autosys.tk/ms_windows_ms_sql/internet_explorer_%D0%BD%D0%B5_%D1%81%D0%BE%D1%85%D1%80%D0%B0%D0%BD%D1%8F%D0%B5%D1%82_%D0%BE%D1%82%D1%81%D1%82%D1%83%D0%BF%D1%8B_page_setup_margins_not_saved</link>
            <description>
&lt;h1 class=&quot;sectionedit1&quot; id=&quot;проблема&quot;&gt;Проблема&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
В Internet Explorer есть неприятный глюк с отступами при печати, кторые задаются в &lt;strong&gt;Параметрах страницы&lt;/strong&gt; ( &lt;strong&gt;Page Setup&lt;/strong&gt; ). &lt;br/&gt;

Суть глюка в том, что заданные отступы не сохряняются при нажатии на &lt;strong&gt;ОК&lt;/strong&gt; и всякий раз сбрасываются. Не помогает даже редактирование параметров &lt;strong&gt;margin&lt;/strong&gt; в реестре в ключе &lt;strong&gt;HKCU\Software\Microsoft\Internet Explorer\Page Setup&lt;/strong&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;\u041f\u0440\u043e\u0431\u043b\u0435\u043c\u0430&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0430&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:1,&amp;quot;range&amp;quot;:&amp;quot;1-599&amp;quot;} --&gt;
&lt;h1 class=&quot;sectionedit2&quot; id=&quot;причина&quot;&gt;Причина&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&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;\u041f\u0440\u0438\u0447\u0438\u043d\u0430&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u043f\u0440\u0438\u0447\u0438\u043d\u0430&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:2,&amp;quot;range&amp;quot;:&amp;quot;600-974&amp;quot;} --&gt;
&lt;h1 class=&quot;sectionedit3&quot; id=&quot;решение&quot;&gt;Решение&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
В моем случае удалось решить эту проблему с помощью &lt;strong&gt;Print Preview&lt;/strong&gt;.
Нужно зайти в &lt;strong&gt;Print Preview&lt;/strong&gt; и там уменьшить отступы до ноля. После этого их можно будте задавать и в &lt;strong&gt;Page Setup&lt;/strong&gt; и они будут сохраняться. &lt;br/&gt;

При этом, в моем случае в &lt;strong&gt;Page Setup&lt;/strong&gt; удалось задать не любые значения отступов. Если я устанавливал все отступы 1 или 2 мм, то после нажатия на &lt;strong&gt;ОК&lt;/strong&gt; они сбрасывались на 10 и 20 соотвественно. Однако, если задать все отступы 3 мм - все успешно сохранялось.
&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;\u0420\u0435\u0448\u0435\u043d\u0438\u0435&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0440\u0435\u0448\u0435\u043d\u0438\u0435&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:3,&amp;quot;range&amp;quot;:&amp;quot;975-&amp;quot;} --&gt;</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Mon, 11 Feb 2019 09:13:27 +0000</pubDate>
        </item>
        <item>
            <title>join_ad_with_read-only_domain_controller</title>
            <link>https://wiki.autosys.tk/ms_windows_ms_sql/join_ad_with_read-only_domain_controller</link>
            <description>
&lt;h1 class=&quot;sectionedit1&quot; id=&quot;задача&quot;&gt;Задача&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
Присоединить к домену Active Directory компьютер, который не имеет сетевого подключения или ему доступен только контроллер домена в режиме read-only.
&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;\u0417\u0430\u0434\u0430\u0447\u0430&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0437\u0430\u0434\u0430\u0447\u0430&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:1,&amp;quot;range&amp;quot;:&amp;quot;1-282&amp;quot;} --&gt;
&lt;h1 class=&quot;sectionedit2&quot; id=&quot;решение&quot;&gt;Решение&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
В состав &lt;strong&gt;Windows 7&lt;/strong&gt; и &lt;strong&gt;Windows Server 2008 R2&lt;/strong&gt; входит утилита &lt;strong&gt;jdomain&lt;/strong&gt;.
Для того, чтобы присоединить машину к домену нужно на машине которой контроллер домена доступен, создать,  файл с данными, которые будут импортированы в реестр присоединяемой машины.&lt;br/&gt;

Итак, сначала создаем в AD учетную запись компьютера, а затем на машине, которой контроллер домена доступен (можно на самом контроллере домена) в командной строке с повышенными правами выполняем:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;Djoin /provision /domain mydomain.com /machine mywindowsclient /savefile c:\offlinejoin.txt&lt;/pre&gt;

&lt;p&gt;
Затем полученный файл &lt;strong&gt;c:\offlinejoin.txt&lt;/strong&gt; передаем на присоединяемую машину и на ней выполняем:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;Djoin /requestODJ /loadfile c:\offlinejoin.txt /windowspath %systemroot% /localos&lt;/pre&gt;

&lt;p&gt;
После этого машину перезагружаем.&lt;br/&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;\u0420\u0435\u0448\u0435\u043d\u0438\u0435&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0440\u0435\u0448\u0435\u043d\u0438\u0435&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:2,&amp;quot;range&amp;quot;:&amp;quot;283-&amp;quot;} --&gt;</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Mon, 11 Feb 2019 09:13:27 +0000</pubDate>
        </item>
        <item>
            <title>kerio_vpn_client_7.2</title>
            <link>https://wiki.autosys.tk/ms_windows_ms_sql/kerio_vpn_client_7.2</link>
            <description>
&lt;p&gt;
&lt;a href=&quot;https://wiki.autosys.tk/_media/ms_windows_ms_sql/files.zip&quot; class=&quot;media mediafile mf_zip&quot; title=&quot;ms_windows_ms_sql:files.zip (14.6 MB)&quot;&gt;Kerio vpn client 7.2 for Windows&lt;/a&gt;
&lt;/p&gt;
</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Mon, 11 Feb 2019 09:13:27 +0000</pubDate>
        </item>
        <item>
            <title>logoff_users_with_long_idletime_using_powershell</title>
            <link>https://wiki.autosys.tk/ms_windows_ms_sql/logoff_users_with_long_idletime_using_powershell</link>
            <description>
&lt;p&gt;
Вот пара однострочников на &lt;strong&gt;powershell&lt;/strong&gt;, которые позволяют выгнать отключенных и неактивных пользователей с терминального сервера.
&lt;/p&gt;

&lt;p&gt;
Выгоняем (logoff) всех в состояниии &lt;strong&gt;Disconnect&lt;/strong&gt; и всех у кого &lt;strong&gt;IDLE TIME&lt;/strong&gt; больше часа:  
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;quser | foreach { (($_.trim() -replace &amp;quot;\s{2}&amp;quot;,&amp;quot;,&amp;quot;)) } | foreach { (($_ -replace &amp;quot;,{2,}&amp;quot;,&amp;quot;,&amp;quot;)) } | foreach { (($_ -replace &amp;quot;\s&amp;quot;,&amp;quot;&amp;quot;)) } | ConvertFrom-Csv | Where-Object {$_.IDLETIME -like &amp;#039;*:*&amp;#039;} | foreach {((iex &amp;#039;logoff $_.SESSIONNAME&amp;#039;))}&lt;/pre&gt;

&lt;p&gt;
Выгоняем всех в состояниии &lt;strong&gt;Disconnect&lt;/strong&gt; и тех, у кого время &lt;strong&gt;IDLE TIME&lt;/strong&gt; больше заданного (в данном случае 20 минут):  
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;quser | foreach { (($_.trim() -replace &amp;quot;\s{2}&amp;quot;,&amp;quot;,&amp;quot;)) } | foreach { (($_ -replace &amp;quot;,{2,}&amp;quot;,&amp;quot;,&amp;quot;)) } | foreach { (($_ -replace &amp;quot;\s&amp;quot;,&amp;quot;&amp;quot;)) } | ConvertFrom-Csv | Where-Object {($_.IDLETIME -match &amp;quot;\d&amp;quot; ) } | Where-Object { ([int64]($_.IDLETIME -replace &amp;quot;[:.]&amp;quot;,&amp;quot;&amp;quot;)) -gt 20 } | foreach {((iex &amp;#039;logoff $_.SESSIONNAME&amp;#039;))}&lt;/pre&gt;
</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Mon, 11 Feb 2019 09:13:27 +0000</pubDate>
        </item>
        <item>
            <title>mainpage</title>
            <link>https://wiki.autosys.tk/ms_windows_ms_sql/mainpage</link>
            <description>
&lt;div&gt;&lt;div id=&quot;nojs_indexmenu_37100709069e3d8f2b8789&quot; data-jsajax=&quot;&amp;group=1&quot; class=&quot;indexmenu_nojs&quot;&gt;
&lt;ul class=&quot;idx&quot;&gt;
&lt;li class=&quot;level1&quot; &gt;&lt;div class=&quot;li&quot;&gt;&lt;a href=&quot;https://wiki.autosys.tk/ms_windows_ms_sql/1%D1%81-7-7-%D0%BE%D1%88%D0%B8%D0%B1%D0%BA%D0%B0-sql-attempt-to-fetch-logical-page-database-failed&quot; class=&quot;wikilink1&quot; title=&quot;ms_windows_ms_sql:1с-7-7-ошибка-sql-attempt-to-fetch-logical-page-database-failed&quot; data-wiki-id=&quot;ms_windows_ms_sql:1с-7-7-ошибка-sql-attempt-to-fetch-logical-page-database-failed&quot;&gt;1с-7-7-ошибка-sql-attempt-to-fetch-logical-page-database-failed&lt;/a&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li class=&quot;level1&quot; &gt;&lt;div class=&quot;li&quot;&gt;&lt;a href=&quot;https://wiki.autosys.tk/ms_windows_ms_sql/10016_error_application_specific_permission_settings_do_not_grant&quot; class=&quot;wikilink1&quot; title=&quot;ms_windows_ms_sql:10016_error_application_specific_permission_settings_do_not_grant&quot; data-wiki-id=&quot;ms_windows_ms_sql:10016_error_application_specific_permission_settings_do_not_grant&quot;&gt;10016_error_application_specific_permission_settings_do_not_grant&lt;/a&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li class=&quot;level1&quot; &gt;&lt;div class=&quot;li&quot;&gt;&lt;a href=&quot;https://wiki.autosys.tk/ms_windows_ms_sql/add_private_key_to_ssl_certificate&quot; class=&quot;wikilink1&quot; title=&quot;ms_windows_ms_sql:add_private_key_to_ssl_certificate&quot; data-wiki-id=&quot;ms_windows_ms_sql:add_private_key_to_ssl_certificate&quot;&gt;add_private_key_to_ssl_certificate&lt;/a&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li class=&quot;level1&quot; &gt;&lt;div class=&quot;li&quot;&gt;&lt;a href=&quot;https://wiki.autosys.tk/ms_windows_ms_sql/advanced_disk_diag&quot; class=&quot;wikilink1&quot; title=&quot;ms_windows_ms_sql:advanced_disk_diag&quot; data-wiki-id=&quot;ms_windows_ms_sql:advanced_disk_diag&quot;&gt;advanced_disk_diag&lt;/a&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li class=&quot;level1&quot; &gt;&lt;div class=&quot;li&quot;&gt;&lt;a href=&quot;https://wiki.autosys.tk/ms_windows_ms_sql/adws_warning_event_1400&quot; class=&quot;wikilink1&quot; title=&quot;ms_windows_ms_sql:adws_warning_event_1400&quot; data-wiki-id=&quot;ms_windows_ms_sql:adws_warning_event_1400&quot;&gt;adws_warning_event_1400&lt;/a&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li class=&quot;level1&quot; &gt;&lt;div class=&quot;li&quot;&gt;&lt;a href=&quot;https://wiki.autosys.tk/ms_windows_ms_sql/ad_changes_monitoring&quot; class=&quot;wikilink1&quot; title=&quot;ms_windows_ms_sql:ad_changes_monitoring&quot; data-wiki-id=&quot;ms_windows_ms_sql:ad_changes_monitoring&quot;&gt;ad_changes_monitoring&lt;/a&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li class=&quot;level1&quot; &gt;&lt;div class=&quot;li&quot;&gt;&lt;a href=&quot;https://wiki.autosys.tk/ms_windows_ms_sql/asp_show_loading_gif_on_postback_and_submit&quot; class=&quot;wikilink1&quot; title=&quot;ms_windows_ms_sql:asp_show_loading_gif_on_postback_and_submit&quot; data-wiki-id=&quot;ms_windows_ms_sql:asp_show_loading_gif_on_postback_and_submit&quot;&gt;asp_show_loading_gif_on_postback_and_submit&lt;/a&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li class=&quot;level1&quot; &gt;&lt;div class=&quot;li&quot;&gt;&lt;a href=&quot;https://wiki.autosys.tk/ms_windows_ms_sql/azure_sql_database_export&quot; class=&quot;wikilink1&quot; title=&quot;ms_windows_ms_sql:azure_sql_database_export&quot; data-wiki-id=&quot;ms_windows_ms_sql:azure_sql_database_export&quot;&gt;azure_sql_database_export&lt;/a&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li class=&quot;level1&quot; &gt;&lt;div class=&quot;li&quot;&gt;&lt;a href=&quot;https://wiki.autosys.tk/ms_windows_ms_sql/bat_and_powershell_to_exe&quot; class=&quot;wikilink1&quot; title=&quot;ms_windows_ms_sql:bat_and_powershell_to_exe&quot; data-wiki-id=&quot;ms_windows_ms_sql:bat_and_powershell_to_exe&quot;&gt;bat_and_powershell_to_exe&lt;/a&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li class=&quot;level1&quot; &gt;&lt;div class=&quot;li&quot;&gt;&lt;a href=&quot;https://wiki.autosys.tk/ms_windows_ms_sql/bulk_copy_sql_database_from_one_server_to_another&quot; class=&quot;wikilink1&quot; title=&quot;ms_windows_ms_sql:bulk_copy_sql_database_from_one_server_to_another&quot; data-wiki-id=&quot;ms_windows_ms_sql:bulk_copy_sql_database_from_one_server_to_another&quot;&gt;bulk_copy_sql_database_from_one_server_to_another&lt;/a&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li class=&quot;level1&quot; &gt;&lt;div class=&quot;li&quot;&gt;&lt;a href=&quot;https://wiki.autosys.tk/ms_windows_ms_sql/clean_thinprint_printers&quot; class=&quot;wikilink1&quot; title=&quot;ms_windows_ms_sql:clean_thinprint_printers&quot; data-wiki-id=&quot;ms_windows_ms_sql:clean_thinprint_printers&quot;&gt;clean_thinprint_printers&lt;/a&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li class=&quot;level1&quot; &gt;&lt;div class=&quot;li&quot;&gt;&lt;a href=&quot;https://wiki.autosys.tk/ms_windows_ms_sql/close_all_file_handlers_by_path_or_process_name&quot; class=&quot;wikilink1&quot; title=&quot;ms_windows_ms_sql:close_all_file_handlers_by_path_or_process_name&quot; data-wiki-id=&quot;ms_windows_ms_sql:close_all_file_handlers_by_path_or_process_name&quot;&gt;close_all_file_handlers_by_path_or_process_name&lt;/a&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li class=&quot;level1&quot; &gt;&lt;div class=&quot;li&quot;&gt;&lt;a href=&quot;https://wiki.autosys.tk/ms_windows_ms_sql/c_sharp_7.0_import_data_from_csv_to_sql_database&quot; class=&quot;wikilink1&quot; title=&quot;ms_windows_ms_sql:c_sharp_7.0_import_data_from_csv_to_sql_database&quot; data-wiki-id=&quot;ms_windows_ms_sql:c_sharp_7.0_import_data_from_csv_to_sql_database&quot;&gt;c_sharp_7.0_import_data_from_csv_to_sql_database&lt;/a&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li class=&quot;level1&quot; &gt;&lt;div class=&quot;li&quot;&gt;&lt;a href=&quot;https://wiki.autosys.tk/ms_windows_ms_sql/dfs_namespace_could_not_contact_or_inaccessible&quot; class=&quot;wikilink1&quot; title=&quot;ms_windows_ms_sql:dfs_namespace_could_not_contact_or_inaccessible&quot; data-wiki-id=&quot;ms_windows_ms_sql:dfs_namespace_could_not_contact_or_inaccessible&quot;&gt;dfs_namespace_could_not_contact_or_inaccessible&lt;/a&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li class=&quot;level1&quot; &gt;&lt;div class=&quot;li&quot;&gt;&lt;a href=&quot;https://wiki.autosys.tk/ms_windows_ms_sql/disable_smb2.0&quot; class=&quot;wikilink1&quot; title=&quot;ms_windows_ms_sql:disable_smb2.0&quot; data-wiki-id=&quot;ms_windows_ms_sql:disable_smb2.0&quot;&gt;disable_smb2.0&lt;/a&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li class=&quot;level1&quot; &gt;&lt;div class=&quot;li&quot;&gt;&lt;a href=&quot;https://wiki.autosys.tk/ms_windows_ms_sql/dynamicaly_created_controls_in_asp_pages&quot; class=&quot;wikilink1&quot; title=&quot;ms_windows_ms_sql:dynamicaly_created_controls_in_asp_pages&quot; data-wiki-id=&quot;ms_windows_ms_sql:dynamicaly_created_controls_in_asp_pages&quot;&gt;dynamicaly_created_controls_in_asp_pages&lt;/a&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li class=&quot;level1&quot; &gt;&lt;div class=&quot;li&quot;&gt;&lt;a href=&quot;https://wiki.autosys.tk/ms_windows_ms_sql/enable_sebackuppolicy&quot; class=&quot;wikilink1&quot; title=&quot;ms_windows_ms_sql:enable_sebackuppolicy&quot; data-wiki-id=&quot;ms_windows_ms_sql:enable_sebackuppolicy&quot;&gt;enable_sebackuppolicy&lt;/a&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li class=&quot;level1&quot; &gt;&lt;div class=&quot;li&quot;&gt;&lt;a href=&quot;https://wiki.autosys.tk/ms_windows_ms_sql/fill_unused_disk_space_with_0x00&quot; class=&quot;wikilink1&quot; title=&quot;ms_windows_ms_sql:fill_unused_disk_space_with_0x00&quot; data-wiki-id=&quot;ms_windows_ms_sql:fill_unused_disk_space_with_0x00&quot;&gt;fill_unused_disk_space_with_0x00&lt;/a&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li class=&quot;level1&quot; &gt;&lt;div class=&quot;li&quot;&gt;&lt;a href=&quot;https://wiki.autosys.tk/ms_windows_ms_sql/fsmo_transfer&quot; class=&quot;wikilink1&quot; title=&quot;ms_windows_ms_sql:fsmo_transfer&quot; data-wiki-id=&quot;ms_windows_ms_sql:fsmo_transfer&quot;&gt;fsmo_transfer&lt;/a&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li class=&quot;level1&quot; &gt;&lt;div class=&quot;li&quot;&gt;&lt;a href=&quot;https://wiki.autosys.tk/ms_windows_ms_sql/grab_windows_key_from_bios&quot; class=&quot;wikilink1&quot; title=&quot;ms_windows_ms_sql:grab_windows_key_from_bios&quot; data-wiki-id=&quot;ms_windows_ms_sql:grab_windows_key_from_bios&quot;&gt;grab_windows_key_from_bios&lt;/a&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li class=&quot;level1&quot; &gt;&lt;div class=&quot;li&quot;&gt;&lt;a href=&quot;https://wiki.autosys.tk/ms_windows_ms_sql/how_to_use_dynamic_sql_querys&quot; class=&quot;wikilink1&quot; title=&quot;ms_windows_ms_sql:how_to_use_dynamic_sql_querys&quot; data-wiki-id=&quot;ms_windows_ms_sql:how_to_use_dynamic_sql_querys&quot;&gt;how_to_use_dynamic_sql_querys&lt;/a&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li class=&quot;level1&quot; &gt;&lt;div class=&quot;li&quot;&gt;&lt;a href=&quot;https://wiki.autosys.tk/ms_windows_ms_sql/iis_7.5_acme_the_page_you_are_requesting_cannot_be_served_because_of_the_extension_configuration&quot; class=&quot;wikilink1&quot; title=&quot;ms_windows_ms_sql:iis_7.5_acme_the_page_you_are_requesting_cannot_be_served_because_of_the_extension_configuration&quot; data-wiki-id=&quot;ms_windows_ms_sql:iis_7.5_acme_the_page_you_are_requesting_cannot_be_served_because_of_the_extension_configuration&quot;&gt;iis_7.5_acme_the_page_you_are_requesting_cannot_be_served_because_of_the_extension_configuration&lt;/a&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li class=&quot;level1&quot; &gt;&lt;div class=&quot;li&quot;&gt;&lt;a href=&quot;https://wiki.autosys.tk/ms_windows_ms_sql/iis_authenticate_windows_isers_using_forms&quot; class=&quot;wikilink1&quot; title=&quot;ms_windows_ms_sql:iis_authenticate_windows_isers_using_forms&quot; data-wiki-id=&quot;ms_windows_ms_sql:iis_authenticate_windows_isers_using_forms&quot;&gt;iis_authenticate_windows_isers_using_forms&lt;/a&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li class=&quot;level1&quot; &gt;&lt;div class=&quot;li&quot;&gt;&lt;a href=&quot;https://wiki.autosys.tk/ms_windows_ms_sql/iis_non_root_default_document&quot; class=&quot;wikilink1&quot; title=&quot;ms_windows_ms_sql:iis_non_root_default_document&quot; data-wiki-id=&quot;ms_windows_ms_sql:iis_non_root_default_document&quot;&gt;iis_non_root_default_document&lt;/a&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li class=&quot;level1&quot; &gt;&lt;div class=&quot;li&quot;&gt;&lt;a href=&quot;https://wiki.autosys.tk/ms_windows_ms_sql/install_printer_error_6_error_1796&quot; class=&quot;wikilink1&quot; title=&quot;ms_windows_ms_sql:install_printer_error_6_error_1796&quot; data-wiki-id=&quot;ms_windows_ms_sql:install_printer_error_6_error_1796&quot;&gt;install_printer_error_6_error_1796&lt;/a&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li class=&quot;level1&quot; &gt;&lt;div class=&quot;li&quot;&gt;&lt;a href=&quot;https://wiki.autosys.tk/ms_windows_ms_sql/install_software_using_wmi_and_powershell&quot; class=&quot;wikilink1&quot; title=&quot;ms_windows_ms_sql:install_software_using_wmi_and_powershell&quot; data-wiki-id=&quot;ms_windows_ms_sql:install_software_using_wmi_and_powershell&quot;&gt;install_software_using_wmi_and_powershell&lt;/a&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li class=&quot;level1&quot; &gt;&lt;div class=&quot;li&quot;&gt;&lt;a href=&quot;https://wiki.autosys.tk/ms_windows_ms_sql/intel_hd_audio_1c20_error_code_10&quot; class=&quot;wikilink1&quot; title=&quot;ms_windows_ms_sql:intel_hd_audio_1c20_error_code_10&quot; data-wiki-id=&quot;ms_windows_ms_sql:intel_hd_audio_1c20_error_code_10&quot;&gt;intel_hd_audio_1c20_error_code_10&lt;/a&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li class=&quot;level1&quot; &gt;&lt;div class=&quot;li&quot;&gt;&lt;a href=&quot;https://wiki.autosys.tk/ms_windows_ms_sql/internet_explorer_%D0%BD%D0%B5_%D1%81%D0%BE%D1%85%D1%80%D0%B0%D0%BD%D1%8F%D0%B5%D1%82_%D0%BE%D1%82%D1%81%D1%82%D1%83%D0%BF%D1%8B_page_setup_margins_not_saved&quot; class=&quot;wikilink1&quot; title=&quot;ms_windows_ms_sql:internet_explorer_не_сохраняет_отступы_page_setup_margins_not_saved&quot; data-wiki-id=&quot;ms_windows_ms_sql:internet_explorer_не_сохраняет_отступы_page_setup_margins_not_saved&quot;&gt;internet_explorer_не_сохраняет_отступы_page_setup_margins_not_saved&lt;/a&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li class=&quot;level1&quot; &gt;&lt;div class=&quot;li&quot;&gt;&lt;a href=&quot;https://wiki.autosys.tk/ms_windows_ms_sql/join_ad_with_read-only_domain_controller&quot; class=&quot;wikilink1&quot; title=&quot;ms_windows_ms_sql:join_ad_with_read-only_domain_controller&quot; data-wiki-id=&quot;ms_windows_ms_sql:join_ad_with_read-only_domain_controller&quot;&gt;join_ad_with_read-only_domain_controller&lt;/a&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li class=&quot;level1&quot; &gt;&lt;div class=&quot;li&quot;&gt;&lt;a href=&quot;https://wiki.autosys.tk/ms_windows_ms_sql/kerio_vpn_client_7.2&quot; class=&quot;wikilink1&quot; title=&quot;ms_windows_ms_sql:kerio_vpn_client_7.2&quot; data-wiki-id=&quot;ms_windows_ms_sql:kerio_vpn_client_7.2&quot;&gt;kerio_vpn_client_7.2&lt;/a&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li class=&quot;level1&quot; &gt;&lt;div class=&quot;li&quot;&gt;&lt;a href=&quot;https://wiki.autosys.tk/ms_windows_ms_sql/logoff_users_with_long_idletime_using_powershell&quot; class=&quot;wikilink1&quot; title=&quot;ms_windows_ms_sql:logoff_users_with_long_idletime_using_powershell&quot; data-wiki-id=&quot;ms_windows_ms_sql:logoff_users_with_long_idletime_using_powershell&quot;&gt;logoff_users_with_long_idletime_using_powershell&lt;/a&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li class=&quot;level1&quot; &gt;&lt;div class=&quot;li&quot;&gt;&lt;a href=&quot;https://wiki.autosys.tk/ms_windows_ms_sql/migrate_printserver_from_x86_to_2012_x64&quot; class=&quot;wikilink1&quot; title=&quot;ms_windows_ms_sql:migrate_printserver_from_x86_to_2012_x64&quot; data-wiki-id=&quot;ms_windows_ms_sql:migrate_printserver_from_x86_to_2012_x64&quot;&gt;migrate_printserver_from_x86_to_2012_x64&lt;/a&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li class=&quot;level1&quot; &gt;&lt;div class=&quot;li&quot;&gt;&lt;a href=&quot;https://wiki.autosys.tk/ms_windows_ms_sql/msi_creation_tools&quot; class=&quot;wikilink1&quot; title=&quot;ms_windows_ms_sql:msi_creation_tools&quot; data-wiki-id=&quot;ms_windows_ms_sql:msi_creation_tools&quot;&gt;msi_creation_tools&lt;/a&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li class=&quot;level1&quot; &gt;&lt;div class=&quot;li&quot;&gt;&lt;a href=&quot;https://wiki.autosys.tk/ms_windows_ms_sql/ntfs_determining_the_size_of_a_folder_without_access_or_permissions&quot; class=&quot;wikilink1&quot; title=&quot;ms_windows_ms_sql:ntfs_determining_the_size_of_a_folder_without_access_or_permissions&quot; data-wiki-id=&quot;ms_windows_ms_sql:ntfs_determining_the_size_of_a_folder_without_access_or_permissions&quot;&gt;ntfs_determining_the_size_of_a_folder_without_access_or_permissions&lt;/a&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li class=&quot;level1&quot; &gt;&lt;div class=&quot;li&quot;&gt;&lt;a href=&quot;https://wiki.autosys.tk/ms_windows_ms_sql/nuget_replace_package_with_same_version&quot; class=&quot;wikilink1&quot; title=&quot;ms_windows_ms_sql:nuget_replace_package_with_same_version&quot; data-wiki-id=&quot;ms_windows_ms_sql:nuget_replace_package_with_same_version&quot;&gt;nuget_replace_package_with_same_version&lt;/a&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li class=&quot;level1&quot; &gt;&lt;div class=&quot;li&quot;&gt;&lt;a href=&quot;https://wiki.autosys.tk/ms_windows_ms_sql/package_config_prerelease_nuget_packages&quot; class=&quot;wikilink1&quot; title=&quot;ms_windows_ms_sql:package_config_prerelease_nuget_packages&quot; data-wiki-id=&quot;ms_windows_ms_sql:package_config_prerelease_nuget_packages&quot;&gt;package_config_prerelease_nuget_packages&lt;/a&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li class=&quot;level1&quot; &gt;&lt;div class=&quot;li&quot;&gt;&lt;a href=&quot;https://wiki.autosys.tk/ms_windows_ms_sql/policy_loopback_processing&quot; class=&quot;wikilink1&quot; title=&quot;ms_windows_ms_sql:policy_loopback_processing&quot; data-wiki-id=&quot;ms_windows_ms_sql:policy_loopback_processing&quot;&gt;policy_loopback_processing&lt;/a&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li class=&quot;level1&quot; &gt;&lt;div class=&quot;li&quot;&gt;&lt;a href=&quot;https://wiki.autosys.tk/ms_windows_ms_sql/powershell_check_opened_files_close_handles&quot; class=&quot;wikilink1&quot; title=&quot;ms_windows_ms_sql:powershell_check_opened_files_close_handles&quot; data-wiki-id=&quot;ms_windows_ms_sql:powershell_check_opened_files_close_handles&quot;&gt;powershell_check_opened_files_close_handles&lt;/a&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li class=&quot;level1&quot; &gt;&lt;div class=&quot;li&quot;&gt;&lt;a href=&quot;https://wiki.autosys.tk/ms_windows_ms_sql/powershell_desired_state_configuration_dsc&quot; class=&quot;wikilink1&quot; title=&quot;ms_windows_ms_sql:powershell_desired_state_configuration_dsc&quot; data-wiki-id=&quot;ms_windows_ms_sql:powershell_desired_state_configuration_dsc&quot;&gt;powershell_desired_state_configuration_dsc&lt;/a&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li class=&quot;level1&quot; &gt;&lt;div class=&quot;li&quot;&gt;&lt;a href=&quot;https://wiki.autosys.tk/ms_windows_ms_sql/powershell_exe_files_in_try_catch&quot; class=&quot;wikilink1&quot; title=&quot;ms_windows_ms_sql:powershell_exe_files_in_try_catch&quot; data-wiki-id=&quot;ms_windows_ms_sql:powershell_exe_files_in_try_catch&quot;&gt;powershell_exe_files_in_try_catch&lt;/a&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li class=&quot;level1&quot; &gt;&lt;div class=&quot;li&quot;&gt;&lt;a href=&quot;https://wiki.autosys.tk/ms_windows_ms_sql/powershell_remote_execution_access_denied&quot; class=&quot;wikilink1&quot; title=&quot;ms_windows_ms_sql:powershell_remote_execution_access_denied&quot; data-wiki-id=&quot;ms_windows_ms_sql:powershell_remote_execution_access_denied&quot;&gt;powershell_remote_execution_access_denied&lt;/a&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li class=&quot;level1&quot; &gt;&lt;div class=&quot;li&quot;&gt;&lt;a href=&quot;https://wiki.autosys.tk/ms_windows_ms_sql/powershell_script_to_rename_photos_based_on_date_taken&quot; class=&quot;wikilink1&quot; title=&quot;ms_windows_ms_sql:powershell_script_to_rename_photos_based_on_date_taken&quot; data-wiki-id=&quot;ms_windows_ms_sql:powershell_script_to_rename_photos_based_on_date_taken&quot;&gt;powershell_script_to_rename_photos_based_on_date_taken&lt;/a&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li class=&quot;level1&quot; &gt;&lt;div class=&quot;li&quot;&gt;&lt;a href=&quot;https://wiki.autosys.tk/ms_windows_ms_sql/powershell_show_modal_popup_window&quot; class=&quot;wikilink1&quot; title=&quot;ms_windows_ms_sql:powershell_show_modal_popup_window&quot; data-wiki-id=&quot;ms_windows_ms_sql:powershell_show_modal_popup_window&quot;&gt;powershell_show_modal_popup_window&lt;/a&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li class=&quot;level1&quot; &gt;&lt;div class=&quot;li&quot;&gt;&lt;a href=&quot;https://wiki.autosys.tk/ms_windows_ms_sql/powershell_skip_certificate_check&quot; class=&quot;wikilink1&quot; title=&quot;ms_windows_ms_sql:powershell_skip_certificate_check&quot; data-wiki-id=&quot;ms_windows_ms_sql:powershell_skip_certificate_check&quot;&gt;powershell_skip_certificate_check&lt;/a&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li class=&quot;level1&quot; &gt;&lt;div class=&quot;li&quot;&gt;&lt;a href=&quot;https://wiki.autosys.tk/ms_windows_ms_sql/powershell_start_transcript_not_record_all_output&quot; class=&quot;wikilink1&quot; title=&quot;ms_windows_ms_sql:powershell_start_transcript_not_record_all_output&quot; data-wiki-id=&quot;ms_windows_ms_sql:powershell_start_transcript_not_record_all_output&quot;&gt;powershell_start_transcript_not_record_all_output&lt;/a&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li class=&quot;level1&quot; &gt;&lt;div class=&quot;li&quot;&gt;&lt;a href=&quot;https://wiki.autosys.tk/ms_windows_ms_sql/powershell_stop_process_with_known_copyright_publisher_productname&quot; class=&quot;wikilink1&quot; title=&quot;ms_windows_ms_sql:powershell_stop_process_with_known_copyright_publisher_productname&quot; data-wiki-id=&quot;ms_windows_ms_sql:powershell_stop_process_with_known_copyright_publisher_productname&quot;&gt;powershell_stop_process_with_known_copyright_publisher_productname&lt;/a&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li class=&quot;level1&quot; &gt;&lt;div class=&quot;li&quot;&gt;&lt;a href=&quot;https://wiki.autosys.tk/ms_windows_ms_sql/powershell_supress_messages&quot; class=&quot;wikilink1&quot; title=&quot;ms_windows_ms_sql:powershell_supress_messages&quot; data-wiki-id=&quot;ms_windows_ms_sql:powershell_supress_messages&quot;&gt;powershell_supress_messages&lt;/a&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li class=&quot;level1&quot; &gt;&lt;div class=&quot;li&quot;&gt;&lt;a href=&quot;https://wiki.autosys.tk/ms_windows_ms_sql/powershell_the_fully_qualified_file_name_must_be_less_than_260_workaround&quot; class=&quot;wikilink1&quot; title=&quot;ms_windows_ms_sql:powershell_the_fully_qualified_file_name_must_be_less_than_260_workaround&quot; data-wiki-id=&quot;ms_windows_ms_sql:powershell_the_fully_qualified_file_name_must_be_less_than_260_workaround&quot;&gt;powershell_the_fully_qualified_file_name_must_be_less_than_260_workaround&lt;/a&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li class=&quot;level1&quot; &gt;&lt;div class=&quot;li&quot;&gt;&lt;a href=&quot;https://wiki.autosys.tk/ms_windows_ms_sql/quick_install_all_drivers_from_folder_and_subfolders&quot; class=&quot;wikilink1&quot; title=&quot;ms_windows_ms_sql:quick_install_all_drivers_from_folder_and_subfolders&quot; data-wiki-id=&quot;ms_windows_ms_sql:quick_install_all_drivers_from_folder_and_subfolders&quot;&gt;quick_install_all_drivers_from_folder_and_subfolders&lt;/a&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li class=&quot;level1&quot; &gt;&lt;div class=&quot;li&quot;&gt;&lt;a href=&quot;https://wiki.autosys.tk/ms_windows_ms_sql/remote_ad_expired_password_reset&quot; class=&quot;wikilink1&quot; title=&quot;ms_windows_ms_sql:remote_ad_expired_password_reset&quot; data-wiki-id=&quot;ms_windows_ms_sql:remote_ad_expired_password_reset&quot;&gt;remote_ad_expired_password_reset&lt;/a&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li class=&quot;level1&quot; &gt;&lt;div class=&quot;li&quot;&gt;&lt;a href=&quot;https://wiki.autosys.tk/ms_windows_ms_sql/remote_copy_files_using_registry&quot; class=&quot;wikilink1&quot; title=&quot;ms_windows_ms_sql:remote_copy_files_using_registry&quot; data-wiki-id=&quot;ms_windows_ms_sql:remote_copy_files_using_registry&quot;&gt;remote_copy_files_using_registry&lt;/a&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li class=&quot;level1&quot; &gt;&lt;div class=&quot;li&quot;&gt;&lt;a href=&quot;https://wiki.autosys.tk/ms_windows_ms_sql/remote_desktop_services_home_folder_not_mapping&quot; class=&quot;wikilink1&quot; title=&quot;ms_windows_ms_sql:remote_desktop_services_home_folder_not_mapping&quot; data-wiki-id=&quot;ms_windows_ms_sql:remote_desktop_services_home_folder_not_mapping&quot;&gt;remote_desktop_services_home_folder_not_mapping&lt;/a&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li class=&quot;level1&quot; &gt;&lt;div class=&quot;li&quot;&gt;&lt;a href=&quot;https://wiki.autosys.tk/ms_windows_ms_sql/reset_computer_account_password&quot; class=&quot;wikilink1&quot; title=&quot;ms_windows_ms_sql:reset_computer_account_password&quot; data-wiki-id=&quot;ms_windows_ms_sql:reset_computer_account_password&quot;&gt;reset_computer_account_password&lt;/a&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li class=&quot;level1&quot; &gt;&lt;div class=&quot;li&quot;&gt;&lt;a href=&quot;https://wiki.autosys.tk/ms_windows_ms_sql/software_restriction_policy_disallowed_start_some_programs&quot; class=&quot;wikilink1&quot; title=&quot;ms_windows_ms_sql:software_restriction_policy_disallowed_start_some_programs&quot; data-wiki-id=&quot;ms_windows_ms_sql:software_restriction_policy_disallowed_start_some_programs&quot;&gt;software_restriction_policy_disallowed_start_some_programs&lt;/a&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li class=&quot;level1&quot; &gt;&lt;div class=&quot;li&quot;&gt;&lt;a href=&quot;https://wiki.autosys.tk/ms_windows_ms_sql/sql_change_column_type&quot; class=&quot;wikilink1&quot; title=&quot;ms_windows_ms_sql:sql_change_column_type&quot; data-wiki-id=&quot;ms_windows_ms_sql:sql_change_column_type&quot;&gt;sql_change_column_type&lt;/a&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li class=&quot;level1&quot; &gt;&lt;div class=&quot;li&quot;&gt;&lt;a href=&quot;https://wiki.autosys.tk/ms_windows_ms_sql/sql_copy_table_schema_to_new_table&quot; class=&quot;wikilink1&quot; title=&quot;ms_windows_ms_sql:sql_copy_table_schema_to_new_table&quot; data-wiki-id=&quot;ms_windows_ms_sql:sql_copy_table_schema_to_new_table&quot;&gt;sql_copy_table_schema_to_new_table&lt;/a&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li class=&quot;level1&quot; &gt;&lt;div class=&quot;li&quot;&gt;&lt;a href=&quot;https://wiki.autosys.tk/ms_windows_ms_sql/sql_loop_over_table_records&quot; class=&quot;wikilink1&quot; title=&quot;ms_windows_ms_sql:sql_loop_over_table_records&quot; data-wiki-id=&quot;ms_windows_ms_sql:sql_loop_over_table_records&quot;&gt;sql_loop_over_table_records&lt;/a&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li class=&quot;level1&quot; &gt;&lt;div class=&quot;li&quot;&gt;&lt;a href=&quot;https://wiki.autosys.tk/ms_windows_ms_sql/ssl_certificate_private_key_permissions&quot; class=&quot;wikilink1&quot; title=&quot;ms_windows_ms_sql:ssl_certificate_private_key_permissions&quot; data-wiki-id=&quot;ms_windows_ms_sql:ssl_certificate_private_key_permissions&quot;&gt;ssl_certificate_private_key_permissions&lt;/a&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li class=&quot;level1&quot; &gt;&lt;div class=&quot;li&quot;&gt;&lt;a href=&quot;https://wiki.autosys.tk/ms_windows_ms_sql/ssl_error_bad_mac_alert_ilo&quot; class=&quot;wikilink1&quot; title=&quot;ms_windows_ms_sql:ssl_error_bad_mac_alert_ilo&quot; data-wiki-id=&quot;ms_windows_ms_sql:ssl_error_bad_mac_alert_ilo&quot;&gt;ssl_error_bad_mac_alert_ilo&lt;/a&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li class=&quot;level1&quot; &gt;&lt;div class=&quot;li&quot;&gt;&lt;a href=&quot;https://wiki.autosys.tk/ms_windows_ms_sql/taskkill-the-remote-system-must-be-running-windows-2000-or-above&quot; class=&quot;wikilink1&quot; title=&quot;ms_windows_ms_sql:taskkill-the-remote-system-must-be-running-windows-2000-or-above&quot; data-wiki-id=&quot;ms_windows_ms_sql:taskkill-the-remote-system-must-be-running-windows-2000-or-above&quot;&gt;taskkill-the-remote-system-must-be-running-windows-2000-or-above&lt;/a&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li class=&quot;level1&quot; &gt;&lt;div class=&quot;li&quot;&gt;&lt;a href=&quot;https://wiki.autosys.tk/ms_windows_ms_sql/tpautoconnect_no_suitable_client_protocol_found&quot; class=&quot;wikilink1&quot; title=&quot;ms_windows_ms_sql:tpautoconnect_no_suitable_client_protocol_found&quot; data-wiki-id=&quot;ms_windows_ms_sql:tpautoconnect_no_suitable_client_protocol_found&quot;&gt;tpautoconnect_no_suitable_client_protocol_found&lt;/a&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li class=&quot;level1&quot; &gt;&lt;div class=&quot;li&quot;&gt;&lt;a href=&quot;https://wiki.autosys.tk/ms_windows_ms_sql/unload_filesystem_driver&quot; class=&quot;wikilink1&quot; title=&quot;ms_windows_ms_sql:unload_filesystem_driver&quot; data-wiki-id=&quot;ms_windows_ms_sql:unload_filesystem_driver&quot;&gt;unload_filesystem_driver&lt;/a&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li class=&quot;level1&quot; &gt;&lt;div class=&quot;li&quot;&gt;&lt;a href=&quot;https://wiki.autosys.tk/ms_windows_ms_sql/upgrade_joomla_1.5.26_to_3.6.5&quot; class=&quot;wikilink1&quot; title=&quot;ms_windows_ms_sql:upgrade_joomla_1.5.26_to_3.6.5&quot; data-wiki-id=&quot;ms_windows_ms_sql:upgrade_joomla_1.5.26_to_3.6.5&quot;&gt;upgrade_joomla_1.5.26_to_3.6.5&lt;/a&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li class=&quot;level1&quot; &gt;&lt;div class=&quot;li&quot;&gt;&lt;a href=&quot;https://wiki.autosys.tk/ms_windows_ms_sql/using_cmac_to_automate_vpn_connection_creation&quot; class=&quot;wikilink1&quot; title=&quot;ms_windows_ms_sql:using_cmac_to_automate_vpn_connection_creation&quot; data-wiki-id=&quot;ms_windows_ms_sql:using_cmac_to_automate_vpn_connection_creation&quot;&gt;using_cmac_to_automate_vpn_connection_creation&lt;/a&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li class=&quot;level1&quot; &gt;&lt;div class=&quot;li&quot;&gt;&lt;a href=&quot;https://wiki.autosys.tk/ms_windows_ms_sql/visual-studio_2017-community-vsto-outlook&quot; class=&quot;wikilink1&quot; title=&quot;ms_windows_ms_sql:visual-studio_2017-community-vsto-outlook&quot; data-wiki-id=&quot;ms_windows_ms_sql:visual-studio_2017-community-vsto-outlook&quot;&gt;visual-studio_2017-community-vsto-outlook&lt;/a&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li class=&quot;level1&quot; &gt;&lt;div class=&quot;li&quot;&gt;&lt;a href=&quot;https://wiki.autosys.tk/ms_windows_ms_sql/visual_basic_6.0_runtime_in_windows-10&quot; class=&quot;wikilink1&quot; title=&quot;ms_windows_ms_sql:visual_basic_6.0_runtime_in_windows-10&quot; data-wiki-id=&quot;ms_windows_ms_sql:visual_basic_6.0_runtime_in_windows-10&quot;&gt;visual_basic_6.0_runtime_in_windows-10&lt;/a&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li class=&quot;level1&quot; &gt;&lt;div class=&quot;li&quot;&gt;&lt;a href=&quot;https://wiki.autosys.tk/ms_windows_ms_sql/web_gui_for_powershell_scripts&quot; class=&quot;wikilink1&quot; title=&quot;ms_windows_ms_sql:web_gui_for_powershell_scripts&quot; data-wiki-id=&quot;ms_windows_ms_sql:web_gui_for_powershell_scripts&quot;&gt;web_gui_for_powershell_scripts&lt;/a&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li class=&quot;level1&quot; &gt;&lt;div class=&quot;li&quot;&gt;&lt;a href=&quot;https://wiki.autosys.tk/ms_windows_ms_sql/win2012_deduplication&quot; class=&quot;wikilink1&quot; title=&quot;ms_windows_ms_sql:win2012_deduplication&quot; data-wiki-id=&quot;ms_windows_ms_sql:win2012_deduplication&quot;&gt;win2012_deduplication&lt;/a&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li class=&quot;level1&quot; &gt;&lt;div class=&quot;li&quot;&gt;&lt;a href=&quot;https://wiki.autosys.tk/ms_windows_ms_sql/windows-2008-7-8-bootrec-rebuidbcd-%D1%8D%D0%BB%D0%B5%D0%BC%D0%B5%D0%BD%D1%82-%D0%BD%D0%B5-%D0%BD%D0%B0%D0%B8%D0%B4%D0%B5%D0%BD&quot; class=&quot;wikilink1&quot; title=&quot;ms_windows_ms_sql:windows-2008-7-8-bootrec-rebuidbcd-элемент-не-наиден&quot; data-wiki-id=&quot;ms_windows_ms_sql:windows-2008-7-8-bootrec-rebuidbcd-элемент-не-наиден&quot;&gt;windows-2008-7-8-bootrec-rebuidbcd-элемент-не-наиден&lt;/a&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li class=&quot;level1&quot; &gt;&lt;div class=&quot;li&quot;&gt;&lt;a href=&quot;https://wiki.autosys.tk/ms_windows_ms_sql/windows_2012r2_domain_controller_repair_from_page_fault_in_nonpaged_area&quot; class=&quot;wikilink1&quot; title=&quot;ms_windows_ms_sql:windows_2012r2_domain_controller_repair_from_page_fault_in_nonpaged_area&quot; data-wiki-id=&quot;ms_windows_ms_sql:windows_2012r2_domain_controller_repair_from_page_fault_in_nonpaged_area&quot;&gt;windows_2012r2_domain_controller_repair_from_page_fault_in_nonpaged_area&lt;/a&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li class=&quot;level1&quot; &gt;&lt;div class=&quot;li&quot;&gt;&lt;a href=&quot;https://wiki.autosys.tk/ms_windows_ms_sql/windows_docker_failed_to_register_layer_cannot_create_layer_with_missing_parent&quot; class=&quot;wikilink1&quot; title=&quot;ms_windows_ms_sql:windows_docker_failed_to_register_layer_cannot_create_layer_with_missing_parent&quot; data-wiki-id=&quot;ms_windows_ms_sql:windows_docker_failed_to_register_layer_cannot_create_layer_with_missing_parent&quot;&gt;windows_docker_failed_to_register_layer_cannot_create_layer_with_missing_parent&lt;/a&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li class=&quot;level1&quot; &gt;&lt;div class=&quot;li&quot;&gt;&lt;a href=&quot;https://wiki.autosys.tk/ms_windows_ms_sql/windows_docker_purge_orphan_layers&quot; class=&quot;wikilink1&quot; title=&quot;ms_windows_ms_sql:windows_docker_purge_orphan_layers&quot; data-wiki-id=&quot;ms_windows_ms_sql:windows_docker_purge_orphan_layers&quot;&gt;windows_docker_purge_orphan_layers&lt;/a&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li class=&quot;level1&quot; &gt;&lt;div class=&quot;li&quot;&gt;&lt;a href=&quot;https://wiki.autosys.tk/ms_windows_ms_sql/windows_server_2012_essentials_dashboard_crash&quot; class=&quot;wikilink1&quot; title=&quot;ms_windows_ms_sql:windows_server_2012_essentials_dashboard_crash&quot; data-wiki-id=&quot;ms_windows_ms_sql:windows_server_2012_essentials_dashboard_crash&quot;&gt;windows_server_2012_essentials_dashboard_crash&lt;/a&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li class=&quot;level1&quot; &gt;&lt;div class=&quot;li&quot;&gt;&lt;a href=&quot;https://wiki.autosys.tk/ms_windows_ms_sql/windows_server_2016_2019_change_product_key&quot; class=&quot;wikilink1&quot; title=&quot;ms_windows_ms_sql:windows_server_2016_2019_change_product_key&quot; data-wiki-id=&quot;ms_windows_ms_sql:windows_server_2016_2019_change_product_key&quot;&gt;windows_server_2016_2019_change_product_key&lt;/a&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li class=&quot;level1&quot; &gt;&lt;div class=&quot;li&quot;&gt;&lt;a href=&quot;https://wiki.autosys.tk/ms_windows_ms_sql/windows_server_2016_bsod_inaccessible_boot_device_after_update&quot; class=&quot;wikilink1&quot; title=&quot;ms_windows_ms_sql:windows_server_2016_bsod_inaccessible_boot_device_after_update&quot; data-wiki-id=&quot;ms_windows_ms_sql:windows_server_2016_bsod_inaccessible_boot_device_after_update&quot;&gt;windows_server_2016_bsod_inaccessible_boot_device_after_update&lt;/a&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li class=&quot;level1&quot; &gt;&lt;div class=&quot;li&quot;&gt;&lt;a href=&quot;https://wiki.autosys.tk/ms_windows_ms_sql/windows_server_2016_containers&quot; class=&quot;wikilink1&quot; title=&quot;ms_windows_ms_sql:windows_server_2016_containers&quot; data-wiki-id=&quot;ms_windows_ms_sql:windows_server_2016_containers&quot;&gt;windows_server_2016_containers&lt;/a&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li class=&quot;level1&quot; &gt;&lt;div class=&quot;li&quot;&gt;&lt;a href=&quot;https://wiki.autosys.tk/ms_windows_ms_sql/windows_server_2016_exchange_2016_cant_generate_export-module&quot; class=&quot;wikilink1&quot; title=&quot;ms_windows_ms_sql:windows_server_2016_exchange_2016_cant_generate_export-module&quot; data-wiki-id=&quot;ms_windows_ms_sql:windows_server_2016_exchange_2016_cant_generate_export-module&quot;&gt;windows_server_2016_exchange_2016_cant_generate_export-module&lt;/a&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li class=&quot;level1&quot; &gt;&lt;div class=&quot;li&quot;&gt;&lt;a href=&quot;https://wiki.autosys.tk/ms_windows_ms_sql/windows_server_2016_windows_10_disk_space_cleanup&quot; class=&quot;wikilink1&quot; title=&quot;ms_windows_ms_sql:windows_server_2016_windows_10_disk_space_cleanup&quot; data-wiki-id=&quot;ms_windows_ms_sql:windows_server_2016_windows_10_disk_space_cleanup&quot;&gt;windows_server_2016_windows_10_disk_space_cleanup&lt;/a&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li class=&quot;level1&quot; &gt;&lt;div class=&quot;li&quot;&gt;&lt;a href=&quot;https://wiki.autosys.tk/ms_windows_ms_sql/windows_server_2016_windows_10_start_button_not_working&quot; class=&quot;wikilink1&quot; title=&quot;ms_windows_ms_sql:windows_server_2016_windows_10_start_button_not_working&quot; data-wiki-id=&quot;ms_windows_ms_sql:windows_server_2016_windows_10_start_button_not_working&quot;&gt;windows_server_2016_windows_10_start_button_not_working&lt;/a&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li class=&quot;level1&quot; &gt;&lt;div class=&quot;li&quot;&gt;&lt;a href=&quot;https://wiki.autosys.tk/ms_windows_ms_sql/windows_server_core_winrm_negotiate_authentication_error&quot; class=&quot;wikilink1&quot; title=&quot;ms_windows_ms_sql:windows_server_core_winrm_negotiate_authentication_error&quot; data-wiki-id=&quot;ms_windows_ms_sql:windows_server_core_winrm_negotiate_authentication_error&quot;&gt;windows_server_core_winrm_negotiate_authentication_error&lt;/a&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li class=&quot;level1&quot; &gt;&lt;div class=&quot;li&quot;&gt;&lt;a href=&quot;https://wiki.autosys.tk/ms_windows_ms_sql/windows_services_pids_running_under_svchost&quot; class=&quot;wikilink1&quot; title=&quot;ms_windows_ms_sql:windows_services_pids_running_under_svchost&quot; data-wiki-id=&quot;ms_windows_ms_sql:windows_services_pids_running_under_svchost&quot;&gt;windows_services_pids_running_under_svchost&lt;/a&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li class=&quot;level1&quot; &gt;&lt;div class=&quot;li&quot;&gt;&lt;a href=&quot;https://wiki.autosys.tk/ms_windows_ms_sql/windows_time_service_w32time_set_new_ntp_server&quot; class=&quot;wikilink1&quot; title=&quot;ms_windows_ms_sql:windows_time_service_w32time_set_new_ntp_server&quot; data-wiki-id=&quot;ms_windows_ms_sql:windows_time_service_w32time_set_new_ntp_server&quot;&gt;windows_time_service_w32time_set_new_ntp_server&lt;/a&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li class=&quot;level1&quot; &gt;&lt;div class=&quot;li&quot;&gt;&lt;a href=&quot;https://wiki.autosys.tk/ms_windows_ms_sql/wmi_repository_repair&quot; class=&quot;wikilink1&quot; title=&quot;ms_windows_ms_sql:wmi_repository_repair&quot; data-wiki-id=&quot;ms_windows_ms_sql:wmi_repository_repair&quot;&gt;wmi_repository_repair&lt;/a&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li class=&quot;level1&quot; &gt;&lt;div class=&quot;li&quot;&gt;&lt;a href=&quot;https://wiki.autosys.tk/ms_windows_ms_sql/working_with_sql_database_from_powershell&quot; class=&quot;wikilink1&quot; title=&quot;ms_windows_ms_sql:working_with_sql_database_from_powershell&quot; data-wiki-id=&quot;ms_windows_ms_sql:working_with_sql_database_from_powershell&quot;&gt;working_with_sql_database_from_powershell&lt;/a&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li class=&quot;level1&quot; &gt;&lt;div class=&quot;li&quot;&gt;&lt;a href=&quot;https://wiki.autosys.tk/ms_windows_ms_sql/%D0%B0%D0%B2%D1%82%D0%BE%D0%BC%D0%B0%D1%82%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%B8%D0%B8-%D0%B2%D1%85%D0%BE%D0%B4-%D0%B2-%D0%B4%D0%BE%D0%BC%D0%B5%D0%BD-%D0%BF%D1%80%D0%B8-%D0%B7%D0%B0%D0%B3%D1%80%D1%83%D0%B7%D0%BA%D0%B5-%D0%BA%D0%BE%D0%BC%D0%BF%D1%8C%D1%8E%D1%82%D0%B5%D1%80%D0%B0&quot; class=&quot;wikilink1&quot; title=&quot;ms_windows_ms_sql:автоматическии-вход-в-домен-при-загрузке-компьютера&quot; data-wiki-id=&quot;ms_windows_ms_sql:автоматическии-вход-в-домен-при-загрузке-компьютера&quot;&gt;автоматическии-вход-в-домен-при-загрузке-компьютера&lt;/a&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li class=&quot;level1&quot; &gt;&lt;div class=&quot;li&quot;&gt;&lt;a href=&quot;https://wiki.autosys.tk/ms_windows_ms_sql/%D0%B0%D0%BA%D1%82%D0%B8%D0%B2%D0%B0%D1%86%D0%B8%D1%8F-windows7-windows-2008-r2&quot; class=&quot;wikilink1&quot; title=&quot;ms_windows_ms_sql:активация-windows7-windows-2008-r2&quot; data-wiki-id=&quot;ms_windows_ms_sql:активация-windows7-windows-2008-r2&quot;&gt;активация-windows7-windows-2008-r2&lt;/a&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li class=&quot;level1&quot; &gt;&lt;div class=&quot;li&quot;&gt;&lt;a href=&quot;https://wiki.autosys.tk/ms_windows_ms_sql/%D0%B0%D1%83%D1%82%D0%B5%D0%BD%D1%82%D0%B8%D1%84%D0%B8%D0%BA%D0%B0%D1%82%D0%BE%D1%80-rsa-%D0%BF%D0%BE%D0%B4-%D0%BF%D0%BB%D0%B0%D1%82%D1%84%D0%BE%D1%80%D0%BC%D1%83-javame-jme&quot; class=&quot;wikilink1&quot; title=&quot;ms_windows_ms_sql:аутентификатор-rsa-под-платформу-javame-jme&quot; data-wiki-id=&quot;ms_windows_ms_sql:аутентификатор-rsa-под-платформу-javame-jme&quot;&gt;аутентификатор-rsa-под-платформу-javame-jme&lt;/a&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li class=&quot;level1&quot; &gt;&lt;div class=&quot;li&quot;&gt;&lt;a href=&quot;https://wiki.autosys.tk/ms_windows_ms_sql/%D0%B2%D0%BA%D0%BB%D1%8E%D1%87%D0%B0%D0%B5%D0%BC-%D0%B0%D0%B2%D1%82%D0%BE%D0%B4%D0%BE%D0%BF%D0%BE%D0%BB%D0%BD%D0%B5%D0%BD%D0%B8%D0%B5-%D0%BF%D1%83%D1%82%D0%B5%D0%B8-%D0%B2-%D0%BA%D0%BE%D0%BC%D0%B0%D0%BD%D0%B4%D0%BD%D0%BE%D0%B8-%D1%81%D1%82%D1%80%D0%BE%D0%BA%D0%B5-windows&quot; class=&quot;wikilink1&quot; title=&quot;ms_windows_ms_sql:включаем-автодополнение-путеи-в-команднои-строке-windows&quot; data-wiki-id=&quot;ms_windows_ms_sql:включаем-автодополнение-путеи-в-команднои-строке-windows&quot;&gt;включаем-автодополнение-путеи-в-команднои-строке-windows&lt;/a&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li class=&quot;level1&quot; &gt;&lt;div class=&quot;li&quot;&gt;&lt;a href=&quot;https://wiki.autosys.tk/ms_windows_ms_sql/%D0%B2%D0%BA%D0%BB%D1%8E%D1%87%D0%B0%D0%B5%D0%BC-%D1%83%D0%B4%D0%B0%D0%BB%D0%B5%D0%BD%D0%BD%D1%8B%D0%B8-%D1%80%D0%B0%D0%B1%D0%BE%D1%87%D0%B8%D0%B8-%D1%81%D1%82%D0%BE%D0%BB-%D0%BD%D0%B0-%D1%83%D0%B4%D0%B0%D0%BB%D0%B5%D0%BD%D0%BD%D0%BE%D0%BC-%D1%81%D0%B5%D1%80%D0%B2%D0%B5%D1%80%D0%B5&quot; class=&quot;wikilink1&quot; title=&quot;ms_windows_ms_sql:включаем-удаленныи-рабочии-стол-на-удаленном-сервере&quot; data-wiki-id=&quot;ms_windows_ms_sql:включаем-удаленныи-рабочии-стол-на-удаленном-сервере&quot;&gt;включаем-удаленныи-рабочии-стол-на-удаленном-сервере&lt;/a&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li class=&quot;level1&quot; &gt;&lt;div class=&quot;li&quot;&gt;&lt;a href=&quot;https://wiki.autosys.tk/ms_windows_ms_sql/%D0%B2%D0%BA%D0%BB%D1%8E%D1%87%D0%B5%D0%BD%D0%B8%D0%B5_%D0%B8_%D0%B2%D1%8B%D0%BA%D0%BB%D1%8E%D1%87%D0%B5%D0%BD%D0%B8%D0%B5_%D1%81%D0%B5%D1%82%D0%B5%D0%B2%D0%BE%D0%B3%D0%BE_%D0%B0%D0%B4%D0%B0%D0%BF%D1%82%D0%B5%D1%80%D0%B0_%D0%B8%D0%B7_%D0%BA%D0%BE%D0%BC%D0%B0%D0%BD%D0%B4%D0%BD%D0%BE%D0%B9_%D1%81%D1%82%D1%80%D0%BE%D0%BA%D0%B8_windows&quot; class=&quot;wikilink1&quot; title=&quot;ms_windows_ms_sql:включение_и_выключение_сетевого_адаптера_из_командной_строки_windows&quot; data-wiki-id=&quot;ms_windows_ms_sql:включение_и_выключение_сетевого_адаптера_из_командной_строки_windows&quot;&gt;включение_и_выключение_сетевого_адаптера_из_командной_строки_windows&lt;/a&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li class=&quot;level1&quot; &gt;&lt;div class=&quot;li&quot;&gt;&lt;a href=&quot;https://wiki.autosys.tk/ms_windows_ms_sql/%D0%B2%D0%BE%D1%81%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5-%D0%B4%D0%BE%D1%81%D1%82%D1%83%D0%BF%D0%B0-%D0%BA-ms-sql-2008-%D0%B5%D1%81%D0%BB%D0%B8-%D1%83%D1%87%D0%B5%D1%82%D0%BD%D0%B0%D1%8F-%D0%B7%D0%B0%D0%BF%D0%B8%D1%81%D1%8C-%D1%82%D0%B5%D0%BA%D1%83%D1%89%D0%B5%D0%B3%D0%BE-%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D1%82%D0%B5%D0%BB%D1%8F-%D0%BD%D0%B5-%D0%BF%D1%80%D0%BE%D0%BF%D0%B8%D1%81%D0%B0%D0%BD%D0%B0-%D0%B2-sql&quot; class=&quot;wikilink1&quot; title=&quot;ms_windows_ms_sql:восстановление-доступа-к-ms-sql-2008-если-учетная-запись-текущего-пользователя-не-прописана-в-sql&quot; data-wiki-id=&quot;ms_windows_ms_sql:восстановление-доступа-к-ms-sql-2008-если-учетная-запись-текущего-пользователя-не-прописана-в-sql&quot;&gt;восстановление-доступа-к-ms-sql-2008-если-учетная-запись-текущего-пользователя-не-прописана-в-sql&lt;/a&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li class=&quot;level1&quot; &gt;&lt;div class=&quot;li&quot;&gt;&lt;a href=&quot;https://wiki.autosys.tk/ms_windows_ms_sql/%D0%B3%D0%BE%D1%81%D1%82%D0%B5%D0%B2%D0%BE%D0%B8-%D0%B4%D0%BE%D1%81%D1%82%D1%83%D0%BF-%D0%BD%D0%B0-%D1%81%D0%B5%D1%82%D0%B5%D0%B2%D1%8B%D0%B5-%D1%80%D0%B5%D1%81%D1%83%D1%80%D1%81%D1%8B-windows-2008&quot; class=&quot;wikilink1&quot; title=&quot;ms_windows_ms_sql:гостевои-доступ-на-сетевые-ресурсы-windows-2008&quot; data-wiki-id=&quot;ms_windows_ms_sql:гостевои-доступ-на-сетевые-ресурсы-windows-2008&quot;&gt;гостевои-доступ-на-сетевые-ресурсы-windows-2008&lt;/a&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li class=&quot;level1&quot; &gt;&lt;div class=&quot;li&quot;&gt;&lt;a href=&quot;https://wiki.autosys.tk/ms_windows_ms_sql/%D0%B5%D1%81%D0%BB%D0%B8-mozilla-blocked-self-signed-application-from-running&quot; class=&quot;wikilink1&quot; title=&quot;ms_windows_ms_sql:если-mozilla-blocked-self-signed-application-from-running&quot; data-wiki-id=&quot;ms_windows_ms_sql:если-mozilla-blocked-self-signed-application-from-running&quot;&gt;если-mozilla-blocked-self-signed-application-from-running&lt;/a&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li class=&quot;level1&quot; &gt;&lt;div class=&quot;li&quot;&gt;&lt;a href=&quot;https://wiki.autosys.tk/ms_windows_ms_sql/%D0%B8%D0%B7%D0%BC%D0%B5%D0%BD%D0%B5%D0%BD%D0%B8%D0%B5-%D1%80%D0%B5%D0%B6%D0%B8%D0%BC%D0%B0-%D0%B0%D0%B2%D1%82%D0%BE%D1%80%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D0%B8-ms-sql&quot; class=&quot;wikilink1&quot; title=&quot;ms_windows_ms_sql:изменение-режима-авторизации-ms-sql&quot; data-wiki-id=&quot;ms_windows_ms_sql:изменение-режима-авторизации-ms-sql&quot;&gt;изменение-режима-авторизации-ms-sql&lt;/a&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li class=&quot;level1&quot; &gt;&lt;div class=&quot;li&quot;&gt;&lt;a href=&quot;https://wiki.autosys.tk/ms_windows_ms_sql/%D0%BA%D0%B0%D0%BA-%D0%BE%D0%B1%D1%80%D0%B5%D0%B7%D0%B0%D1%82%D1%8C-%D1%80%D0%B0%D0%B7%D0%BC%D0%B5%D1%80-%D1%84%D0%B0%D0%B8%D0%BB%D0%BE%D0%B2-%D0%B1%D0%B0%D0%B7%D1%8B-sql-mdf&quot; class=&quot;wikilink1&quot; title=&quot;ms_windows_ms_sql:как-обрезать-размер-фаилов-базы-sql-mdf&quot; data-wiki-id=&quot;ms_windows_ms_sql:как-обрезать-размер-фаилов-базы-sql-mdf&quot;&gt;как-обрезать-размер-фаилов-базы-sql-mdf&lt;/a&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li class=&quot;level1&quot; &gt;&lt;div class=&quot;li&quot;&gt;&lt;a href=&quot;https://wiki.autosys.tk/ms_windows_ms_sql/%D0%BA%D0%BE%D0%BC%D0%B0%D0%BD%D0%B4%D1%8B_linux_%D0%B2_windows&quot; class=&quot;wikilink1&quot; title=&quot;ms_windows_ms_sql:команды_linux_в_windows&quot; data-wiki-id=&quot;ms_windows_ms_sql:команды_linux_в_windows&quot;&gt;команды_linux_в_windows&lt;/a&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li class=&quot;level1&quot; &gt;&lt;div class=&quot;li&quot;&gt;&lt;a href=&quot;https://wiki.autosys.tk/ms_windows_ms_sql/%D0%BA%D0%BE%D0%BD%D1%82%D1%80%D0%BE%D0%BB%D0%BB%D0%B5%D1%80-ad-%D0%BD%D0%B5-%D0%B7%D0%B0%D0%B3%D1%80%D1%83%D0%B6%D0%B0%D0%B5%D1%82%D1%81%D1%8F-%D0%BE%D1%88%D0%B8%D0%B1%D0%BA%D0%B0-0xc0002e1-%D0%BF%D1%80%D0%B8-%D0%B2%D1%8B%D0%BF%D0%BE%D0%BB%D0%BD%D0%B5%D0%BD%D0%B8%D0%B8-ntdsutil-sem-d-a-go-%D0%BE%D1%88%D0%B8%D0%B1%D0%BA%D0%B0-jet-501&quot; class=&quot;wikilink1&quot; title=&quot;ms_windows_ms_sql:контроллер-ad-не-загружается-ошибка-0xc0002e1-при-выполнении-ntdsutil-sem-d-a-go-ошибка-jet-501&quot; data-wiki-id=&quot;ms_windows_ms_sql:контроллер-ad-не-загружается-ошибка-0xc0002e1-при-выполнении-ntdsutil-sem-d-a-go-ошибка-jet-501&quot;&gt;контроллер-ad-не-загружается-ошибка-0xc0002e1-при-выполнении-ntdsutil-sem-d-a-go-ошибка-jet-501&lt;/a&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li class=&quot;level1&quot; &gt;&lt;div class=&quot;li&quot;&gt;&lt;a href=&quot;https://wiki.autosys.tk/ms_windows_ms_sql/%D0%BB%D0%B8%D1%86%D0%B5%D0%BD%D0%B7%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5-%D1%81%D0%B5%D1%80%D0%B2%D0%B5%D1%80%D0%B0-%D1%82%D0%B5%D1%80%D0%BC%D0%B8%D0%BD%D0%B0%D0%BB%D0%BE%D0%B2-windows-2008&quot; class=&quot;wikilink1&quot; title=&quot;ms_windows_ms_sql:лицензирование-сервера-терминалов-windows-2008&quot; data-wiki-id=&quot;ms_windows_ms_sql:лицензирование-сервера-терминалов-windows-2008&quot;&gt;лицензирование-сервера-терминалов-windows-2008&lt;/a&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li class=&quot;level1&quot; &gt;&lt;div class=&quot;li&quot;&gt;&lt;a href=&quot;https://wiki.autosys.tk/ms_windows_ms_sql/%D0%BD%D0%B5_%D1%83%D0%B4%D0%B0%D0%BB%D1%8F%D1%8E%D1%82%D1%81%D1%8F_%D0%B2%D1%80%D0%B5%D0%BC%D0%B5%D0%BD%D0%BD%D1%8B%D0%B5_%D1%84%D0%B0%D0%B9%D0%BB%D1%8B_z_.tmp&quot; class=&quot;wikilink1&quot; title=&quot;ms_windows_ms_sql:не_удаляются_временные_файлы_z_.tmp&quot; data-wiki-id=&quot;ms_windows_ms_sql:не_удаляются_временные_файлы_z_.tmp&quot;&gt;не_удаляются_временные_файлы_z_.tmp&lt;/a&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li class=&quot;level1&quot; &gt;&lt;div class=&quot;li&quot;&gt;&lt;a href=&quot;https://wiki.autosys.tk/ms_windows_ms_sql/%D0%BE%D1%82%D0%BA%D0%BB%D1%8E%D1%87%D0%B5%D0%BD%D0%B8%D0%B5-%D0%B0%D0%BD%D0%B8%D0%BC%D0%B0%D1%86%D0%B8%D0%B8-%D0%BF%D1%80%D0%B8-%D0%B7%D0%B0%D0%B3%D1%80%D1%83%D0%B7%D0%BA%D0%B5-windows-7-8&quot; class=&quot;wikilink1&quot; title=&quot;ms_windows_ms_sql:отключение-анимации-при-загрузке-windows-7-8&quot; data-wiki-id=&quot;ms_windows_ms_sql:отключение-анимации-при-загрузке-windows-7-8&quot;&gt;отключение-анимации-при-загрузке-windows-7-8&lt;/a&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li class=&quot;level1&quot; &gt;&lt;div class=&quot;li&quot;&gt;&lt;a href=&quot;https://wiki.autosys.tk/ms_windows_ms_sql/%D0%BE%D1%82%D0%BA%D0%BB%D1%8E%D1%87%D0%B8%D0%BB%D1%81%D1%8F_rdp&quot; class=&quot;wikilink1&quot; title=&quot;ms_windows_ms_sql:отключился_rdp&quot; data-wiki-id=&quot;ms_windows_ms_sql:отключился_rdp&quot;&gt;отключился_rdp&lt;/a&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li class=&quot;level1&quot; &gt;&lt;div class=&quot;li&quot;&gt;&lt;a href=&quot;https://wiki.autosys.tk/ms_windows_ms_sql/%D0%BF%D0%B0%D0%B4%D0%B0%D0%B5%D1%82_splwow64.exe_crash&quot; class=&quot;wikilink1&quot; title=&quot;ms_windows_ms_sql:падает_splwow64.exe_crash&quot; data-wiki-id=&quot;ms_windows_ms_sql:падает_splwow64.exe_crash&quot;&gt;падает_splwow64.exe_crash&lt;/a&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li class=&quot;level1&quot; &gt;&lt;div class=&quot;li&quot;&gt;&lt;a href=&quot;https://wiki.autosys.tk/ms_windows_ms_sql/%D0%BF%D0%BE%D0%B4%D0%BA%D0%BB%D1%8E%D1%87%D0%B5%D0%BD%D0%B8%D0%B5_%D0%BA_%D0%B8%D0%BC%D0%B5%D0%BD%D0%BE%D0%B2%D0%B0%D0%BD%D0%BD%D0%BE%D0%BC%D1%83_%D1%8D%D0%BA%D0%B7%D0%B5%D0%BC%D0%BF%D0%BB%D1%8F%D1%80%D1%83_sql_%D1%81%D0%B5%D1%80%D0%B2%D0%B5%D1%80_%D0%BD%D0%B0_%D0%BD%D0%B5%D1%81%D1%82%D0%B0%D0%BD%D0%B4%D0%B0%D1%80%D1%82%D0%BD%D0%BE%D0%BC_%D0%BF%D0%BE%D1%80%D1%82%D1%83&quot; class=&quot;wikilink1&quot; title=&quot;ms_windows_ms_sql:подключение_к_именованному_экземпляру_sql_сервер_на_нестандартном_порту&quot; data-wiki-id=&quot;ms_windows_ms_sql:подключение_к_именованному_экземпляру_sql_сервер_на_нестандартном_порту&quot;&gt;подключение_к_именованному_экземпляру_sql_сервер_на_нестандартном_порту&lt;/a&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li class=&quot;level1&quot; &gt;&lt;div class=&quot;li&quot;&gt;&lt;a href=&quot;https://wiki.autosys.tk/ms_windows_ms_sql/%D0%BF%D0%BE%D0%B4%D1%81%D1%87%D0%B8%D1%82%D0%B0%D1%82%D1%8C_%D0%BA%D0%BE%D0%BB%D0%B8%D1%87%D0%B5%D1%81%D1%82%D0%B2%D0%BE_%D0%BF%D1%80%D0%B8%D0%BD%D1%82%D0%B5%D1%80%D0%BE%D0%B2_%D0%BD%D0%B0_%D1%82%D0%B5%D1%80%D0%BC%D0%B8%D0%BD%D0%B0%D0%BB%D1%8C%D0%BD%D0%BE%D0%BC_%D1%81%D0%B5%D1%80%D0%B2%D0%B5%D1%80%D0%B5_windows_2008&quot; class=&quot;wikilink1&quot; title=&quot;ms_windows_ms_sql:подсчитать_количество_принтеров_на_терминальном_сервере_windows_2008&quot; data-wiki-id=&quot;ms_windows_ms_sql:подсчитать_количество_принтеров_на_терминальном_сервере_windows_2008&quot;&gt;подсчитать_количество_принтеров_на_терминальном_сервере_windows_2008&lt;/a&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li class=&quot;level1&quot; &gt;&lt;div class=&quot;li&quot;&gt;&lt;a href=&quot;https://wiki.autosys.tk/ms_windows_ms_sql/%D0%BF%D1%80%D0%B8-%D0%BF%D0%B5%D1%87%D0%B0%D1%82%D0%B8-size-in-bytes-0-pages-printed-1&quot; class=&quot;wikilink1&quot; title=&quot;ms_windows_ms_sql:при-печати-size-in-bytes-0-pages-printed-1&quot; data-wiki-id=&quot;ms_windows_ms_sql:при-печати-size-in-bytes-0-pages-printed-1&quot;&gt;при-печати-size-in-bytes-0-pages-printed-1&lt;/a&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li class=&quot;level1&quot; &gt;&lt;div class=&quot;li&quot;&gt;&lt;a href=&quot;https://wiki.autosys.tk/ms_windows_ms_sql/%D0%BF%D1%80%D0%BE%D0%B4%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5-%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D1%8B-windows-7-%D0%B1%D0%B5%D0%B7-%D0%B0%D0%BA%D1%82%D0%B8%D0%B2%D0%B0%D1%86%D0%B8%D0%B8&quot; class=&quot;wikilink1&quot; title=&quot;ms_windows_ms_sql:продление-работы-windows-7-без-активации&quot; data-wiki-id=&quot;ms_windows_ms_sql:продление-работы-windows-7-без-активации&quot;&gt;продление-работы-windows-7-без-активации&lt;/a&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li class=&quot;level1&quot; &gt;&lt;div class=&quot;li&quot;&gt;&lt;a href=&quot;https://wiki.autosys.tk/ms_windows_ms_sql/%D1%80%D0%B0%D1%81%D0%BF%D0%B0%D0%BA%D0%BE%D0%B2%D0%BA%D0%B0-%D1%84%D0%B0%D0%B8%D0%BB%D0%BE%D0%B2-msi&quot; class=&quot;wikilink1&quot; title=&quot;ms_windows_ms_sql:распаковка-фаилов-msi&quot; data-wiki-id=&quot;ms_windows_ms_sql:распаковка-фаилов-msi&quot;&gt;распаковка-фаилов-msi&lt;/a&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li class=&quot;level1&quot; &gt;&lt;div class=&quot;li&quot;&gt;&lt;a href=&quot;https://wiki.autosys.tk/ms_windows_ms_sql/%D1%81%D0%B1%D1%80%D0%BE%D1%81-%D0%BF%D0%B0%D1%80%D0%BE%D0%BB%D1%8F-windows-server-2008-%D0%B8-%D0%B4%D1%80%D1%83%D0%B3%D0%B8%D1%85-nt-6-1&quot; class=&quot;wikilink1&quot; title=&quot;ms_windows_ms_sql:сброс-пароля-windows-server-2008-и-других-nt-6-1&quot; data-wiki-id=&quot;ms_windows_ms_sql:сброс-пароля-windows-server-2008-и-других-nt-6-1&quot;&gt;сброс-пароля-windows-server-2008-и-других-nt-6-1&lt;/a&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li class=&quot;level1&quot; &gt;&lt;div class=&quot;li&quot;&gt;&lt;a href=&quot;https://wiki.autosys.tk/ms_windows_ms_sql/%D1%81%D0%BE%D0%B7%D0%B4%D0%B0%D0%B5%D0%BC-%D0%B0%D1%80%D1%85%D0%B8%D0%B2%D1%8B-zip-%D1%81%D1%80%D0%B5%D0%B4%D1%81%D1%82%D0%B2%D0%B0%D0%BC%D0%B8-windows-%D0%B8%D0%B7-%D0%BA%D0%BE%D0%BC%D0%B0%D0%BD%D0%B4%D0%BD%D0%BE%D0%B8-%D1%81%D1%82%D1%80%D0%BE%D0%BA%D0%B8&quot; class=&quot;wikilink1&quot; title=&quot;ms_windows_ms_sql:создаем-архивы-zip-средствами-windows-из-команднои-строки&quot; data-wiki-id=&quot;ms_windows_ms_sql:создаем-архивы-zip-средствами-windows-из-команднои-строки&quot;&gt;создаем-архивы-zip-средствами-windows-из-команднои-строки&lt;/a&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li class=&quot;level1&quot; &gt;&lt;div class=&quot;li&quot;&gt;&lt;a href=&quot;https://wiki.autosys.tk/ms_windows_ms_sql/%D1%81%D0%BE%D0%B7%D0%B4%D0%B0%D0%BD%D0%B8%D0%B5-%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%BD%D0%BE%D0%B8-%D1%82%D0%BE%D1%87%D0%BA%D0%B8-%D0%B4%D0%BE%D1%81%D1%82%D1%83%D0%BF%D0%B0-%D0%B2-windows-7&quot; class=&quot;wikilink1&quot; title=&quot;ms_windows_ms_sql:создание-программнои-точки-доступа-в-windows-7&quot; data-wiki-id=&quot;ms_windows_ms_sql:создание-программнои-точки-доступа-в-windows-7&quot;&gt;создание-программнои-точки-доступа-в-windows-7&lt;/a&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li class=&quot;level1&quot; &gt;&lt;div class=&quot;li&quot;&gt;&lt;a href=&quot;https://wiki.autosys.tk/ms_windows_ms_sql/%D1%83%D0%B4%D0%B0%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5_%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC_%D0%BA%D0%BE%D1%82%D0%BE%D1%80%D1%8B%D0%B5_%D0%BD%D0%B5_%D1%83%D0%B4%D0%B0%D0%BB%D1%8F%D1%8E%D1%82%D1%81%D1%8F_%D1%87%D0%B5%D1%80%D0%B5%D0%B7_appwiz_add_remove_programs&quot; class=&quot;wikilink1&quot; title=&quot;ms_windows_ms_sql:удаление_программ_которые_не_удаляются_через_appwiz_add_remove_programs&quot; data-wiki-id=&quot;ms_windows_ms_sql:удаление_программ_которые_не_удаляются_через_appwiz_add_remove_programs&quot;&gt;удаление_программ_которые_не_удаляются_через_appwiz_add_remove_programs&lt;/a&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li class=&quot;level1&quot; &gt;&lt;div class=&quot;li&quot;&gt;&lt;a href=&quot;https://wiki.autosys.tk/ms_windows_ms_sql/%D1%83%D0%B4%D0%B0%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5_%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D1%8B_%D0%B8%D0%B7_%D0%BA%D0%BE%D0%BC%D0%B0%D0%BD%D0%B4%D0%BD%D0%BE%D0%B9_%D1%81%D1%82%D1%80%D0%BE%D0%BA%D0%B8&quot; class=&quot;wikilink1&quot; title=&quot;ms_windows_ms_sql:удаление_программы_из_командной_строки&quot; data-wiki-id=&quot;ms_windows_ms_sql:удаление_программы_из_командной_строки&quot;&gt;удаление_программы_из_командной_строки&lt;/a&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li class=&quot;level1&quot; &gt;&lt;div class=&quot;li&quot;&gt;&lt;a href=&quot;https://wiki.autosys.tk/ms_windows_ms_sql/%D1%83%D0%BA%D0%B0%D0%B7%D0%B0%D0%BD%D0%BD%D0%B0%D1%8F_%D1%81%D0%BB%D1%83%D0%B6%D0%B1%D0%B0_%D0%BD%D0%B5_%D0%BC%D0%BE%D0%B6%D0%B5%D1%82_%D0%B1%D1%8B%D1%82%D1%8C_%D0%B7%D0%B0%D0%BF%D1%83%D1%89%D0%B5%D0%BD%D0%B0_%D0%BF%D0%BE%D1%81%D0%BA%D0%BE%D0%BB%D1%8C%D0%BA%D1%83_%D0%BE%D0%BD%D0%B0_%D0%BE%D1%82%D0%BA%D0%BB%D1%8E%D1%87%D0%B5%D0%BD%D0%B0&quot; class=&quot;wikilink1&quot; title=&quot;ms_windows_ms_sql:указанная_служба_не_может_быть_запущена_поскольку_она_отключена&quot; data-wiki-id=&quot;ms_windows_ms_sql:указанная_служба_не_может_быть_запущена_поскольку_она_отключена&quot;&gt;указанная_служба_не_может_быть_запущена_поскольку_она_отключена&lt;/a&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li class=&quot;level1&quot; &gt;&lt;div class=&quot;li&quot;&gt;&lt;a href=&quot;https://wiki.autosys.tk/ms_windows_ms_sql/%D1%83%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B0-windows-7-2008-%D1%81-%D1%84%D0%BB%D0%B5%D1%88%D0%BA%D0%B8&quot; class=&quot;wikilink1&quot; title=&quot;ms_windows_ms_sql:установка-windows-7-2008-с-флешки&quot; data-wiki-id=&quot;ms_windows_ms_sql:установка-windows-7-2008-с-флешки&quot;&gt;установка-windows-7-2008-с-флешки&lt;/a&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li class=&quot;level1&quot; &gt;&lt;div class=&quot;li&quot;&gt;&lt;a href=&quot;https://wiki.autosys.tk/ms_windows_ms_sql/%D1%87%D1%82%D0%BE-%D1%82%D0%B0%D0%BA%D0%BE%D0%B5-%D0%BF%D0%BE%D1%80%D1%82-wds-%D0%B8-%D1%87%D0%B5%D0%BC-%D0%BE%D0%BD-%D0%BE%D1%82%D0%BB%D0%B8%D1%87%D0%B0%D0%B5%D1%82%D1%81%D1%8F-%D0%BE%D1%82-%D0%BE%D0%B1%D1%8B%D1%87%D0%BD%D0%BE%D0%B3%D0%BE-tcp-ip-%D0%BF%D0%BE%D1%80%D1%82%D0%B0-%D0%BF%D1%80%D0%B8%D0%BD%D1%82%D0%B5%D1%80%D0%B0&quot; class=&quot;wikilink1&quot; title=&quot;ms_windows_ms_sql:что-такое-порт-wds-и-чем-он-отличается-от-обычного-tcp-ip-порта-принтера&quot; data-wiki-id=&quot;ms_windows_ms_sql:что-такое-порт-wds-и-чем-он-отличается-от-обычного-tcp-ip-порта-принтера&quot;&gt;что-такое-порт-wds-и-чем-он-отличается-от-обычного-tcp-ip-порта-принтера&lt;/a&gt;&lt;/div&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;&lt;/div&gt;</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Mon, 11 Feb 2019 09:13:27 +0000</pubDate>
        </item>
        <item>
            <title>migrate_printserver_from_x86_to_2012_x64</title>
            <link>https://wiki.autosys.tk/ms_windows_ms_sql/migrate_printserver_from_x86_to_2012_x64</link>
            <description>
&lt;h1 class=&quot;sectionedit1&quot; id=&quot;миграция_принтеров&quot;&gt;Миграция принтеров&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
Для того чтобы перенести принтеры с одного принтсервера на другой нужно: &lt;br/&gt;

Экспортировать принтеры с исходного принтсервера с помощью  &lt;strong&gt;printbrm.exe&lt;/strong&gt;. &lt;br/&gt;

Установить на новом принтсервере драйвера принтеров x64, аналогичные тем что стояли на старом принтсервере. &lt;br/&gt;

Импортировать принтеры на новый сервер с помощью  &lt;strong&gt;printbrm.exe&lt;/strong&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;\u041c\u0438\u0433\u0440\u0430\u0446\u0438\u044f \u043f\u0440\u0438\u043d\u0442\u0435\u0440\u043e\u0432&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u043c\u0438\u0433\u0440\u0430\u0446\u0438\u044f_\u043f\u0440\u0438\u043d\u0442\u0435\u0440\u043e\u0432&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:1,&amp;quot;range&amp;quot;:&amp;quot;1-632&amp;quot;} --&gt;
&lt;h1 class=&quot;sectionedit2&quot; id=&quot;принтсервер_не_видит_импортированные_принтеры&quot;&gt;Принтсервер не видит импортированные принтеры&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
Если принтсервер &lt;strong&gt;Windows 2012R2&lt;/strong&gt; не видит принтеры, импортированные с помощью &lt;strong&gt;printbrm.exe&lt;/strong&gt;,то на сервере нужно найти и удалить обновления: &lt;strong&gt;KB2995388, KB3034348, KB3139649&lt;/strong&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;\u041f\u0440\u0438\u043d\u0442\u0441\u0435\u0440\u0432\u0435\u0440 \u043d\u0435 \u0432\u0438\u0434\u0438\u0442 \u0438\u043c\u043f\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0435 \u043f\u0440\u0438\u043d\u0442\u0435\u0440\u044b&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u043f\u0440\u0438\u043d\u0442\u0441\u0435\u0440\u0432\u0435\u0440_\u043d\u0435_\u0432\u0438\u0434\u0438\u0442_\u0438\u043c\u043f\u043e\u0440\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0435_\u043f\u0440\u0438\u043d\u0442\u0435\u0440\u044b&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:2,&amp;quot;range&amp;quot;:&amp;quot;633-1009&amp;quot;} --&gt;
&lt;h1 class=&quot;sectionedit3&quot; id=&quot;удаление_ненужных_старых_драйверов_принтеров&quot;&gt;Удаление ненужных старых драйверов принтеров&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
При переносе принтеров со старого сервера с &lt;strong&gt;Cortado ThinPrint&lt;/strong&gt; на новый Windows 2012 R2 после импорта принтеров вместе с ними импортировался и старый драйвер &lt;strong&gt;ThinPrint&lt;/strong&gt;.
&lt;/p&gt;

&lt;p&gt;
Для того чтобы обновить версию драйвера мне понадобилось вычистить старую версию из реестра. Для этого идем в ветку &lt;strong&gt;HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Print\Environments&lt;/strong&gt; и находим там раздел посвященный старой версии драйвера. Удаляем все эти разделы.
&lt;/p&gt;

&lt;p&gt;
После этого нужно установить/переустановить новую версию драйвера. В моем случае - переустановить &lt;strong&gt;ThinPrint Engine&lt;/strong&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;\u0423\u0434\u0430\u043b\u0435\u043d\u0438\u0435 \u043d\u0435\u043d\u0443\u0436\u043d\u044b\u0445 \u0441\u0442\u0430\u0440\u044b\u0445 \u0434\u0440\u0430\u0439\u0432\u0435\u0440\u043e\u0432 \u043f\u0440\u0438\u043d\u0442\u0435\u0440\u043e\u0432&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0443\u0434\u0430\u043b\u0435\u043d\u0438\u0435_\u043d\u0435\u043d\u0443\u0436\u043d\u044b\u0445_\u0441\u0442\u0430\u0440\u044b\u0445_\u0434\u0440\u0430\u0439\u0432\u0435\u0440\u043e\u0432_\u043f\u0440\u0438\u043d\u0442\u0435\u0440\u043e\u0432&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:3,&amp;quot;range&amp;quot;:&amp;quot;1010-&amp;quot;} --&gt;</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Mon, 11 Feb 2019 09:13:27 +0000</pubDate>
        </item>
        <item>
            <title>msi_creation_tools</title>
            <link>https://wiki.autosys.tk/ms_windows_ms_sql/msi_creation_tools</link>
            <description>
&lt;h1 class=&quot;sectionedit1&quot; id=&quot;бесплатные_средства_создания_инсталляторов_msi&quot;&gt;Бесплатные средства создания инсталляторов MSI&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
&lt;a href=&quot;https://stackoverflow.com/questions/50225031/windows-service-not-shown-in-add-remove-programs-under-control-panel/50229840#50229840&quot; class=&quot;urlextern&quot; title=&quot;https://stackoverflow.com/questions/50225031/windows-service-not-shown-in-add-remove-programs-under-control-panel/50229840#50229840&quot; rel=&quot;ugc nofollow&quot;&gt;https://stackoverflow.com/questions/50225031/windows-service-not-shown-in-add-remove-programs-under-control-panel/50229840#50229840&lt;/a&gt; &lt;br/&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;\u0411\u0435\u0441\u043f\u043b\u0430\u0442\u043d\u044b\u0435 \u0441\u0440\u0435\u0434\u0441\u0442\u0432\u0430 \u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f \u0438\u043d\u0441\u0442\u0430\u043b\u043b\u044f\u0442\u043e\u0440\u043e\u0432 MSI&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0431\u0435\u0441\u043f\u043b\u0430\u0442\u043d\u044b\u0435_\u0441\u0440\u0435\u0434\u0441\u0442\u0432\u0430_\u0441\u043e\u0437\u0434\u0430\u043d\u0438\u044f_\u0438\u043d\u0441\u0442\u0430\u043b\u043b\u044f\u0442\u043e\u0440\u043e\u0432_msi&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:1,&amp;quot;range&amp;quot;:&amp;quot;2-238&amp;quot;} --&gt;
&lt;h1 class=&quot;sectionedit2&quot; id=&quot;wix&quot;&gt;Wix&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
&lt;a href=&quot;http://citforum.ru/internet/xml/wix/&quot; class=&quot;urlextern&quot; title=&quot;http://citforum.ru/internet/xml/wix/&quot; rel=&quot;ugc nofollow&quot;&gt;http://citforum.ru/internet/xml/wix/&lt;/a&gt; &lt;br/&gt;

&lt;a href=&quot;https://www.firegiant.com/wix/tutorial/&quot; class=&quot;urlextern&quot; title=&quot;https://www.firegiant.com/wix/tutorial/&quot; rel=&quot;ugc nofollow&quot;&gt;https://www.firegiant.com/wix/tutorial/&lt;/a&gt; &lt;br/&gt;

&lt;a href=&quot;https://www.codeproject.com/Tips/105638/A-quick-introduction-Create-an-MSI-installer-with&quot; class=&quot;urlextern&quot; title=&quot;https://www.codeproject.com/Tips/105638/A-quick-introduction-Create-an-MSI-installer-with&quot; rel=&quot;ugc nofollow&quot;&gt;https://www.codeproject.com/Tips/105638/A-quick-introduction-Create-an-MSI-installer-with&lt;/a&gt; &lt;br/&gt;

&lt;a href=&quot;https://habr.com/ru/post/68616/&quot; class=&quot;urlextern&quot; title=&quot;https://habr.com/ru/post/68616/&quot; rel=&quot;ugc nofollow&quot;&gt;https://habr.com/ru/post/68616/&lt;/a&gt; &lt;br/&gt;

&lt;a href=&quot;https://damienbod.com/2013/09/01/wix-installer-with-powershell-scripts/&quot; class=&quot;urlextern&quot; title=&quot;https://damienbod.com/2013/09/01/wix-installer-with-powershell-scripts/&quot; rel=&quot;ugc nofollow&quot;&gt;https://damienbod.com/2013/09/01/wix-installer-with-powershell-scripts/&lt;/a&gt; &lt;br/&gt;

&lt;a href=&quot;https://github.com/damienbod/WiXPowerShellExample&quot; class=&quot;urlextern&quot; title=&quot;https://github.com/damienbod/WiXPowerShellExample&quot; rel=&quot;ugc nofollow&quot;&gt;https://github.com/damienbod/WiXPowerShellExample&lt;/a&gt; &lt;br/&gt;

&lt;br/&gt;

&lt;strong&gt;Wix&lt;/strong&gt; (Windows Installer XML) - это набор утилит, предназначенный для создания инсталляционных пакетов (&lt;strong&gt;msi&lt;/strong&gt;). Пригоден для создания сложных инсталляторов (утверждают, что инсталлятор MS Office (неясно какой версии) был полностью создан с помощью &lt;strong&gt;Wix&lt;/strong&gt;)&lt;br/&gt;

Описание этапов установки хранится в &lt;strong&gt;xml&lt;/strong&gt;-файлике - &lt;strong&gt;wsx&lt;/strong&gt;. &lt;br/&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;Wix&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;wix&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:2,&amp;quot;range&amp;quot;:&amp;quot;239-1135&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit3&quot; id=&quot;утилиты_входящие_в_набор_wix&quot;&gt;Утилиты, входящие в набор WiX&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
Описание утилит, входящих в набор - &lt;a href=&quot;https://wixtoolset.org/documentation/manual/v3/overview/alltools.html&quot; class=&quot;urlextern&quot; title=&quot;https://wixtoolset.org/documentation/manual/v3/overview/alltools.html&quot; rel=&quot;ugc nofollow&quot;&gt;https://wixtoolset.org/documentation/manual/v3/overview/alltools.html&lt;/a&gt; &lt;br/&gt;

Основные утилиты:
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt;
 &lt;strong&gt;candle&lt;/strong&gt; - Компилятор, который создает из исходных (&lt;strong&gt;wsx&lt;/strong&gt;) файлов объектные (&lt;strong&gt;wixobj&lt;/strong&gt;). 
&lt;/div&gt;&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt;
 &lt;strong&gt;light&lt;/strong&gt; - Линкер, который использует объектный &lt;strong&gt;wixobj&lt;/strong&gt;-файл и создает на его основе &lt;strong&gt;msi&lt;/strong&gt;- или &lt;strong&gt;msm&lt;/strong&gt;-файл. 
&lt;/div&gt;&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt;
 &lt;strong&gt;dark&lt;/strong&gt; - Декомпилятор, который разбирает существующий &lt;strong&gt;msi&lt;/strong&gt;- или &lt;strong&gt;msm&lt;/strong&gt;-файл и создает &lt;strong&gt;wsx&lt;/strong&gt;-файл.
&lt;/div&gt;&lt;/li&gt;
&lt;/ul&gt;


&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0423\u0442\u0438\u043b\u0438\u0442\u044b, \u0432\u0445\u043e\u0434\u044f\u0449\u0438\u0435 \u0432 \u043d\u0430\u0431\u043e\u0440 WiX&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0443\u0442\u0438\u043b\u0438\u0442\u044b_\u0432\u0445\u043e\u0434\u044f\u0449\u0438\u0435_\u0432_\u043d\u0430\u0431\u043e\u0440_wix&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:3,&amp;quot;range&amp;quot;:&amp;quot;1136-1869&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit4&quot; id=&quot;xml-структура_wsx-файла&quot;&gt;XML-структура wsx-файла&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;XML-\u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0430 wsx-\u0444\u0430\u0439\u043b\u0430&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;xml-\u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0430_wsx-\u0444\u0430\u0439\u043b\u0430&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:4,&amp;quot;range&amp;quot;:&amp;quot;1870-1919&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit5&quot; id=&quot;product&quot;&gt;Product&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Основным объектом верхнего уровня в терминах &lt;strong&gt;WiX&lt;/strong&gt; является продукт (&lt;a href=&quot;https://wixtoolset.org/documentation/manual/v3/xsd/wix/product.html&quot; class=&quot;urlextern&quot; title=&quot;https://wixtoolset.org/documentation/manual/v3/xsd/wix/product.html&quot; rel=&quot;ugc nofollow&quot;&gt;Product&lt;/a&gt;).Одна инсталляция устанавливает один продукт. Продуктом имеет уникальный идентификатор &lt;strong&gt;GUID&lt;/strong&gt;, который представляет собой уникальное 128-битное число. &lt;br/&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;Product&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;product&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:5,&amp;quot;range&amp;quot;:&amp;quot;1920-2419&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit6&quot; id=&quot;package&quot;&gt;Package&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Следующим (после продукта) уровнем иерархии является пакет (&lt;a href=&quot;https://wixtoolset.org/documentation/manual/v3/xsd/wix/package.html&quot; class=&quot;urlextern&quot; title=&quot;https://wixtoolset.org/documentation/manual/v3/xsd/wix/package.html&quot; rel=&quot;ugc nofollow&quot;&gt;Package&lt;/a&gt;). Он может включать один или несколько файлов — обычно файлы инсталляции &lt;strong&gt;msi&lt;/strong&gt;, &lt;strong&gt;msm&lt;/strong&gt; (MS Merge Modules) и архивы &lt;strong&gt;cab&lt;/strong&gt;.&lt;br/&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;Package&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;package&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:6,&amp;quot;range&amp;quot;:&amp;quot;2420-2824&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit7&quot; id=&quot;feature&quot;&gt;Feature&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Весь продукт состоит из опций (&lt;a href=&quot;https://wixtoolset.org/documentation/manual/v3/xsd/wix/feature.html&quot; class=&quot;urlextern&quot; title=&quot;https://wixtoolset.org/documentation/manual/v3/xsd/wix/feature.html&quot; rel=&quot;ugc nofollow&quot;&gt;Features&lt;/a&gt;). Опции — это то, что видит пользователь при инсталляции и что он может выбрать (или не выбирать) для инсталляции. Опции имеют иерархическую структуру: одни &lt;strong&gt;features&lt;/strong&gt; могут содержать в себе другие.&lt;br/&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;Feature&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;feature&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:7,&amp;quot;range&amp;quot;:&amp;quot;2825-3334&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit8&quot; id=&quot;component&quot;&gt;Component&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Каждый отдельный элемент инсталляции, такой как файл, ключ реестра и т.д., называется компонентом (&lt;a href=&quot;https://wixtoolset.org/documentation/manual/v3/xsd/wix/component.html&quot; class=&quot;urlextern&quot; title=&quot;https://wixtoolset.org/documentation/manual/v3/xsd/wix/component.html&quot; rel=&quot;ugc nofollow&quot;&gt;Component&lt;/a&gt;). Компоненты также имеют уникальные ключи &lt;strong&gt;GUID&lt;/strong&gt; (не зависимо от устанавливаемого пакета). &lt;br/&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;Component&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;component&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:8,&amp;quot;range&amp;quot;:&amp;quot;3335-3782&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit9&quot; id=&quot;сборка_пакета_msi&quot;&gt;Сборка пакета msi&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
Сборка пакета &lt;strong&gt;msi&lt;/strong&gt; происходит в два этапа:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;candle.exe Sample.wxs&lt;/pre&gt;

&lt;p&gt;
на выходе - файл &lt;strong&gt;wixobj&lt;/strong&gt;
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;light.exe Sample.wixobj&lt;/pre&gt;

&lt;p&gt;
на выходе - пакет &lt;strong&gt;msi&lt;/strong&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\u0431\u043e\u0440\u043a\u0430 \u043f\u0430\u043a\u0435\u0442\u0430 msi&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0441\u0431\u043e\u0440\u043a\u0430_\u043f\u0430\u043a\u0435\u0442\u0430_msi&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:9,&amp;quot;range&amp;quot;:&amp;quot;3783-4032&amp;quot;} --&gt;
&lt;h1 class=&quot;sectionedit10&quot; id=&quot;запуск_powershell-скрипта_инсталлятором_msi&quot;&gt;Запуск Powershell-скрипта инсталлятором msi&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
Мне нужно создать инсталлятор &lt;strong&gt;msi&lt;/strong&gt;, который бы мог запускаться с правами непривилегированного пользователя, скачивать &lt;strong&gt;powershell&lt;/strong&gt;-скрипт с &lt;strong&gt;http&lt;/strong&gt;-сервера и запускать его (для распространения средствами SCCM).&lt;br/&gt;

&lt;strong&gt;wxs&lt;/strong&gt;-файл, с помощью которого создается нужный &lt;strong&gt;msi&lt;/strong&gt; выглядит так:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot;?&amp;gt;
&amp;lt;Wix xmlns=&amp;quot;http://schemas.microsoft.com/wix/2006/wi&amp;quot;  xmlns:util=&amp;quot;http://schemas.microsoft.com/wix/UtilExtension&amp;quot;&amp;gt;
&amp;lt;Product Id=&amp;quot;*&amp;quot; Name=&amp;quot;WSL and XServer for Windows&amp;quot; Language=&amp;quot;1033&amp;quot; Version=&amp;quot;0.0.1&amp;quot; Manufacturer=&amp;quot;Sberleasing&amp;quot; UpgradeCode=&amp;quot;121F564B-ACAB-DEAD-BEEF-C9B8C11C381A&amp;quot;&amp;gt;
   &amp;lt;Package Id=&amp;quot;*&amp;quot; InstallerVersion=&amp;quot;305&amp;quot; InstallScope=&amp;quot;perMachine&amp;quot; InstallPrivileges=&amp;quot;elevated&amp;quot; Compressed=&amp;quot;yes&amp;quot; /&amp;gt;

   &amp;lt;Media Id=&amp;quot;1&amp;quot; /&amp;gt;

   &amp;lt;Property Id=&amp;quot;MSIUSEREALADMINDETECTION&amp;quot; Value=&amp;quot;1&amp;quot; /&amp;gt;

   &amp;lt;Condition Message=&amp;quot;Installation requires Administrator privileges&amp;quot;&amp;gt;
      &amp;lt;![CDATA[Privileged]]&amp;gt;
   &amp;lt;/Condition&amp;gt;

   &amp;lt;Directory Id=&amp;quot;TARGETDIR&amp;quot; Name=&amp;quot;SourceDir&amp;quot;&amp;gt;
      &amp;lt;Component Id=&amp;quot;Component_WSL_and_XServer_for_Windows&amp;quot; Guid=&amp;#039;1b3844ef-ACAB-DEAD-BEEF-7786e2d5a6c7&amp;#039; /&amp;gt;
   &amp;lt;/Directory&amp;gt;

   &amp;lt;Property Id=&amp;#039;POWERSHELL&amp;#039;&amp;gt;C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe&amp;lt;/Property&amp;gt;
   &amp;lt;!-- My custom actions  install scripts--&amp;gt;
   &amp;lt;CustomAction Id=&amp;quot;RunInstallScript&amp;quot;
                 Property=&amp;quot;POWERSHELL&amp;quot;
                 ExeCommand=&amp;#039;-windowstyle hidden -command $url=\&amp;quot;http://nexus.rdleas.ru/repository/files/JavaDeveloperTools_SetupScripts/Setup_WSL.ps1\&amp;quot;; iex ((New-Object System.Net.WebClient).DownloadString($url))&amp;#039;
                 Return=&amp;#039;check&amp;#039; /&amp;gt;

   &amp;lt;Feature Id=&amp;quot;Feature_WSL_And_XServer&amp;quot; Title=&amp;#039;WSL and XServer For Windows&amp;#039; Level=&amp;quot;1&amp;quot;&amp;gt;
      &amp;lt;ComponentRef Id=&amp;quot;Component_WSL_and_XServer_for_Windows&amp;quot; /&amp;gt;
   &amp;lt;/Feature&amp;gt;

   &amp;lt;InstallExecuteSequence&amp;gt;
      &amp;lt;Custom Action=&amp;quot;RunInstallScript&amp;quot; After=&amp;quot;InstallFinalize&amp;quot;&amp;gt;&amp;lt;/Custom&amp;gt;
   &amp;lt;/InstallExecuteSequence&amp;gt;

   &amp;lt;MajorUpgrade Schedule=&amp;quot;afterInstallInitialize&amp;quot; AllowDowngrades=&amp;quot;no&amp;quot; DowngradeErrorMessage=&amp;quot;ok&amp;quot; AllowSameVersionUpgrades=&amp;quot;yes&amp;quot; /&amp;gt;

&amp;lt;/Product&amp;gt;
&amp;lt;/Wix&amp;gt;&lt;/pre&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;\u0417\u0430\u043f\u0443\u0441\u043a Powershell-\u0441\u043a\u0440\u0438\u043f\u0442\u0430 \u0438\u043d\u0441\u0442\u0430\u043b\u043b\u044f\u0442\u043e\u0440\u043e\u043c msi&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0437\u0430\u043f\u0443\u0441\u043a_powershell-\u0441\u043a\u0440\u0438\u043f\u0442\u0430_\u0438\u043d\u0441\u0442\u0430\u043b\u043b\u044f\u0442\u043e\u0440\u043e\u043c_msi&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:10,&amp;quot;range&amp;quot;:&amp;quot;4033-&amp;quot;} --&gt;</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Thu, 07 Nov 2019 13:09:17 +0000</pubDate>
        </item>
        <item>
            <title>ntfs_determining_the_size_of_a_folder_without_access_or_permissions</title>
            <link>https://wiki.autosys.tk/ms_windows_ms_sql/ntfs_determining_the_size_of_a_folder_without_access_or_permissions</link>
            <description>
&lt;p&gt;
&lt;a href=&quot;https://www.powershellgallery.com/packages/PoshPrivilege/0.3.0.0/Content/Scripts%5CEnable-Privilege.ps1&quot; class=&quot;urlextern&quot; title=&quot;https://www.powershellgallery.com/packages/PoshPrivilege/0.3.0.0/Content/Scripts%5CEnable-Privilege.ps1&quot; rel=&quot;ugc nofollow&quot;&gt;https://www.powershellgallery.com/packages/PoshPrivilege/0.3.0.0/Content/Scripts%5CEnable-Privilege.ps1&lt;/a&gt;
&lt;a href=&quot;http://iformattable.blogspot.ru/2007/07/powershell-script-to-determine.html&quot; class=&quot;urlextern&quot; title=&quot;http://iformattable.blogspot.ru/2007/07/powershell-script-to-determine.html&quot; rel=&quot;ugc nofollow&quot;&gt;http://iformattable.blogspot.ru/2007/07/powershell-script-to-determine.html&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;
Иногда нужно узнать размер директорий к которым нет доступа, например - размер директорий профилей пользователей. &lt;br/&gt;

Вот тут: &lt;a href=&quot;https://helgeklein.com/blog/2014/04/determining-size-folder-without-access-permissions/&quot; class=&quot;urlextern&quot; title=&quot;https://helgeklein.com/blog/2014/04/determining-size-folder-without-access-permissions/&quot; rel=&quot;ugc nofollow&quot;&gt;https://helgeklein.com/blog/2014/04/determining-size-folder-without-access-permissions/&lt;/a&gt; для этого предлагают использовать &lt;strong&gt;robocopy&lt;/strong&gt;, однако есть способ лучше. &lt;br/&gt;

Для того, чтобы с помощью &lt;strong&gt;powershell&lt;/strong&gt; получить размер папки, к которой нет доступа (нет разрешений на чтение или перечисление содержимого), нужно дать сессии &lt;strong&gt;powershell&lt;/strong&gt; привилегию &lt;strong&gt;SeBackupPrivilege&lt;/strong&gt;. &lt;br/&gt;

Функция, которая это умеет делать описана тут: &lt;a href=&quot;https://gallery.technet.microsoft.com/Adjusting-Token-Privileges-9b6724fc&quot; class=&quot;urlextern&quot; title=&quot;https://gallery.technet.microsoft.com/Adjusting-Token-Privileges-9b6724fc&quot; rel=&quot;ugc nofollow&quot;&gt;https://gallery.technet.microsoft.com/Adjusting-Token-Privileges-9b6724fc&lt;/a&gt;
&lt;/p&gt;
</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Mon, 11 Feb 2019 09:13:27 +0000</pubDate>
        </item>
        <item>
            <title>nuget_replace_package_with_same_version</title>
            <link>https://wiki.autosys.tk/ms_windows_ms_sql/nuget_replace_package_with_same_version</link>
            <description>
&lt;h1 class=&quot;sectionedit1&quot; id=&quot;проблема&quot;&gt;Проблема&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
на локальный сервер Nuget загрузили кривую версию пакета. &lt;br/&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;\u041f\u0440\u043e\u0431\u043b\u0435\u043c\u0430&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0430&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:1,&amp;quot;range&amp;quot;:&amp;quot;1-244&amp;quot;} --&gt;
&lt;h1 class=&quot;sectionedit2&quot; id=&quot;решение&quot;&gt;Решение&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
Строго говоря - серверы Nuget не разрешают заменять уже загруженные версии пакетов, а предполагает, что исправленные пакеты будут заливаться с новыми версиями - &lt;a href=&quot;https://docs.microsoft.com/en-us/azure/devops/artifacts/artifacts-key-concepts?view=azure-devops&quot; class=&quot;urlextern&quot; title=&quot;https://docs.microsoft.com/en-us/azure/devops/artifacts/artifacts-key-concepts?view=azure-devops&quot; rel=&quot;ugc nofollow&quot;&gt;https://docs.microsoft.com/en-us/azure/devops/artifacts/artifacts-key-concepts?view=azure-devops&lt;/a&gt; &lt;br/&gt;

Даже если пакет был удален с помощью &lt;strong&gt;nuget delete&lt;/strong&gt; - он будет все равно доступен для скачивания, хотя и не будет отображаться в интерфейсе. &lt;br/&gt;

Однако, есть &lt;a href=&quot;https://stackoverflow.com/a/21933415&quot; class=&quot;urlextern&quot; title=&quot;https://stackoverflow.com/a/21933415&quot; rel=&quot;ugc nofollow&quot;&gt;хирургический способ обойти это ограничение&lt;/a&gt; - удалить пакет (все его версии) в БД сервера Nuget. Или вот - &lt;a href=&quot;https://gist.github.com/grenade/4a8b6edcd10308a5882f&quot; class=&quot;urlextern&quot; title=&quot;https://gist.github.com/grenade/4a8b6edcd10308a5882f&quot; rel=&quot;ugc nofollow&quot;&gt;более продвинутые варианты скриптов&lt;/a&gt;, удаляющие пакеты по маске, или конкретные версии&lt;br/&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;\u0420\u0435\u0448\u0435\u043d\u0438\u0435&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0440\u0435\u0448\u0435\u043d\u0438\u0435&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:2,&amp;quot;range&amp;quot;:&amp;quot;245-1379&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit3&quot; id=&quot;скрипт_для_удаления_всех_версий_заданного_пакета_nuget&quot;&gt;Скрипт для удаления всех версий заданного пакета nuget&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;
&lt;pre class=&quot;code&quot;&gt;DECLARE @PackageRegistrationKey int
SELECT @PackageRegistrationKey = [Key]
 FROM PackageRegistrations
 WHERE Id = &amp;#039;MyNastyPackage&amp;#039;

BEGIN TRANSACTION
DELETE pf
 FROM [NuGetGallery].[dbo].[PackageFrameworks] pf
 JOIN Packages p ON pf.Package_Key = p.[Key]
 WHERE PackageRegistrationKey = @PackageRegistrationKey
DELETE pa
 FROM [NuGetGallery].[dbo].[PackageAuthors] pa
 JOIN Packages p ON pa.PackageKey = p.[Key]
 WHERE PackageRegistrationKey = @PackageRegistrationKey
DELETE gs
 FROM [NuGetGallery].[dbo].[GallerySettings] gs
 JOIN [PackageStatistics] ps ON gs.DownloadStatsLastAggregatedId = ps.[Key]
 JOIN Packages p ON ps.PackageKey = p.[Key]
 WHERE PackageRegistrationKey = @PackageRegistrationKey
DELETE ps
 FROM [NuGetGallery].[dbo].[PackageStatistics] ps
 JOIN Packages p ON ps.PackageKey = p.[Key]
 WHERE PackageRegistrationKey = @PackageRegistrationKey
DELETE pd
 FROM [NuGetGallery].[dbo].[PackageDependencies] pd
 JOIN Packages p ON pd.PackageKey = p.[Key]
 WHERE PackageRegistrationKey = @PackageRegistrationKey
DELETE
 FROM [NuGetGallery].[dbo].[Packages]
 WHERE PackageRegistrationKey = @PackageRegistrationKey
DELETE por
 FROM PackageOwnerRequests por
 JOIN PackageRegistrations pr ON pr.[Key] = por.PackageRegistrationKey
 WHERE pr.[Key] = @PackageRegistrationKey
DELETE pro
 FROM PackageRegistrationOwners pro
 JOIN PackageRegistrations pr ON pr.[Key] = pro.PackageRegistrationKey
 WHERE pr.[Key] = @PackageRegistrationKey
DELETE FROM PackageRegistrations
 WHERE [Key] = @PackageRegistrationKey
COMMIT TRANSACTION&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0421\u043a\u0440\u0438\u043f\u0442 \u0434\u043b\u044f \u0443\u0434\u0430\u043b\u0435\u043d\u0438\u044f \u0432\u0441\u0435\u0445 \u0432\u0435\u0440\u0441\u0438\u0439 \u0437\u0430\u0434\u0430\u043d\u043d\u043e\u0433\u043e \u043f\u0430\u043a\u0435\u0442\u0430 nuget&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0441\u043a\u0440\u0438\u043f\u0442_\u0434\u043b\u044f_\u0443\u0434\u0430\u043b\u0435\u043d\u0438\u044f_\u0432\u0441\u0435\u0445_\u0432\u0435\u0440\u0441\u0438\u0439_\u0437\u0430\u0434\u0430\u043d\u043d\u043e\u0433\u043e_\u043f\u0430\u043a\u0435\u0442\u0430_nuget&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:3,&amp;quot;range&amp;quot;:&amp;quot;1380-3033&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit4&quot; id=&quot;скрипт_для_удаления_пакетов_nuget_имена_которых_начинаются_с_заданной_строки&quot;&gt;Скрипт для удаления пакетов nuget, имена которых начинаются с заданной строки&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;
&lt;pre class=&quot;code&quot;&gt;-- Delete packages with ids that start with a specific string
DECLARE @PackageRegistrationKeys table([Key] int)
INSERT INTO @PackageRegistrationKeys
SELECT [Key] FROM [NuGetGallery].[dbo].[PackageRegistrations]
WHERE [Id] LIKE &amp;#039;Example.Nasty.Package.%&amp;#039;

BEGIN TRANSACTION
DELETE pf
 FROM [NuGetGallery].[dbo].[PackageFrameworks] pf
 JOIN [NuGetGallery].[dbo].[Packages] p ON pf.[Package_Key] = p.[Key]
 WHERE [PackageRegistrationKey] IN (SELECT [Key] FROM @PackageRegistrationKeys)
DELETE pa
 FROM [NuGetGallery].[dbo].[PackageAuthors] pa
 JOIN [NuGetGallery].[dbo].[Packages] p ON pa.[PackageKey] = p.[Key]
 WHERE [PackageRegistrationKey] IN (SELECT [Key] FROM @PackageRegistrationKeys)
DELETE gs
 FROM [NuGetGallery].[dbo].[GallerySettings] gs
 JOIN [NuGetGallery].[dbo].[PackageStatistics] ps ON gs.[DownloadStatsLastAggregatedId] = ps.[Key]
 JOIN [NuGetGallery].[dbo].[Packages] p ON ps.[PackageKey] = p.[Key]
 WHERE [PackageRegistrationKey] IN (SELECT [Key] FROM @PackageRegistrationKeys)
DELETE ps
 FROM [NuGetGallery].[dbo].[PackageStatistics] ps
 JOIN [NuGetGallery].[dbo].[Packages] p ON ps.[PackageKey] = p.[Key]
 WHERE [PackageRegistrationKey] IN (SELECT [Key] FROM @PackageRegistrationKeys)
DELETE pd
 FROM [NuGetGallery].[dbo].[PackageDependencies] pd
 JOIN [NuGetGallery].[dbo].[Packages] p ON pd.[PackageKey] = p.[Key]
 WHERE [PackageRegistrationKey] IN (SELECT [Key] FROM @PackageRegistrationKeys)
DELETE
 FROM [NuGetGallery].[dbo].[Packages]
 WHERE [PackageRegistrationKey] IN (SELECT [Key] FROM @PackageRegistrationKeys)
DELETE por
 FROM [NuGetGallery].[dbo].[PackageOwnerRequests] por
 JOIN [NuGetGallery].[dbo].[PackageRegistrations] pr ON pr.[Key] = por.[PackageRegistrationKey]
 WHERE pr.[Key] IN (SELECT [Key] FROM @PackageRegistrationKeys)
DELETE pro
 FROM [NuGetGallery].[dbo].[PackageRegistrationOwners] pro
 JOIN [NuGetGallery].[dbo].[PackageRegistrations] pr ON pr.[Key] = pro.[PackageRegistrationKey]
 WHERE pr.[Key] IN (SELECT [Key] FROM @PackageRegistrationKeys)
DELETE FROM [NuGetGallery].[dbo].[PackageRegistrations]
 WHERE [Key] IN (SELECT [Key] FROM @PackageRegistrationKeys)
COMMIT TRANSACTION&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0421\u043a\u0440\u0438\u043f\u0442 \u0434\u043b\u044f \u0443\u0434\u0430\u043b\u0435\u043d\u0438\u044f \u043f\u0430\u043a\u0435\u0442\u043e\u0432 nuget, \u0438\u043c\u0435\u043d\u0430 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u043d\u0430\u0447\u0438\u043d\u0430\u044e\u0442\u0441\u044f \u0441 \u0437\u0430\u0434\u0430\u043d\u043d\u043e\u0439 \u0441\u0442\u0440\u043e\u043a\u0438&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0441\u043a\u0440\u0438\u043f\u0442_\u0434\u043b\u044f_\u0443\u0434\u0430\u043b\u0435\u043d\u0438\u044f_\u043f\u0430\u043a\u0435\u0442\u043e\u0432_nuget_\u0438\u043c\u0435\u043d\u0430_\u043a\u043e\u0442\u043e\u0440\u044b\u0445_\u043d\u0430\u0447\u0438\u043d\u0430\u044e\u0442\u0441\u044f_\u0441_\u0437\u0430\u0434\u0430\u043d\u043d\u043e\u0439_\u0441\u0442\u0440\u043e\u043a\u0438&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:1,&amp;quot;secid&amp;quot;:4,&amp;quot;range&amp;quot;:&amp;quot;3034-5328&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit5&quot; id=&quot;скрипт_для_удаления_конкретной_версии_пакета_nuget&quot;&gt;Скрипт для удаления конкретной версии пакета nuget&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;
&lt;pre class=&quot;code&quot;&gt;-- Delete a specific version of a package with a specific package id
DECLARE @PackageKey int
SELECT @PackageKey = p.[Key]
 FROM [Packages] p
 JOIN [PackageRegistrations] pr ON pr.[Key] = p.[PackageRegistrationKey]
 WHERE pr.[Id] = &amp;#039;Example.Nasty.Package&amp;#039;
 AND [Version] = &amp;#039;9.9.9&amp;#039;

BEGIN TRANSACTION
DELETE pf
 FROM [NuGetGallery].[dbo].[PackageFrameworks] pf
 JOIN [NuGetGallery].[dbo].[Packages] p ON pf.[Package_Key] = p.[Key]
 WHERE p.[Key] = @PackageKey
DELETE pa
 FROM [NuGetGallery].[dbo].[PackageAuthors] pa
 JOIN [NuGetGallery].[dbo].[Packages] p ON pa.[PackageKey] = p.[Key]
 WHERE p.[Key] = @PackageKey
DELETE gs
 FROM [NuGetGallery].[dbo].[GallerySettings] gs
 JOIN [NuGetGallery].[dbo].[PackageStatistics] ps ON gs.[DownloadStatsLastAggregatedId] = ps.[Key]
 JOIN [NuGetGallery].[dbo].[Packages] p ON ps.[PackageKey] = p.[Key]
 WHERE p.[Key] = @PackageKey
DELETE ps
 FROM [NuGetGallery].[dbo].[PackageStatistics] ps
 JOIN [NuGetGallery].[dbo].[Packages] p ON ps.[PackageKey] = p.[Key]
 WHERE p.[Key] = @PackageKey
DELETE pd
 FROM [NuGetGallery].[dbo].[PackageDependencies] pd
 JOIN [NuGetGallery].[dbo].[Packages] p ON pd.[PackageKey] = p.[Key]
 WHERE p.[Key] = @PackageKey
DELETE
 FROM [NuGetGallery].[dbo].[Packages]
 WHERE [Key] = @PackageKey
COMMIT TRANSACTION&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0421\u043a\u0440\u0438\u043f\u0442 \u0434\u043b\u044f \u0443\u0434\u0430\u043b\u0435\u043d\u0438\u044f \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u043e\u0439 \u0432\u0435\u0440\u0441\u0438\u0438 \u043f\u0430\u043a\u0435\u0442\u0430 nuget&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0441\u043a\u0440\u0438\u043f\u0442_\u0434\u043b\u044f_\u0443\u0434\u0430\u043b\u0435\u043d\u0438\u044f_\u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u043e\u0439_\u0432\u0435\u0440\u0441\u0438\u0438_\u043f\u0430\u043a\u0435\u0442\u0430_nuget&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:2,&amp;quot;secid&amp;quot;:5,&amp;quot;range&amp;quot;:&amp;quot;5329-6721&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit6&quot; id=&quot;скрипт_для_удаления_всех_версий_пакета_nuget&quot;&gt;Скрипт для удаления всех версий пакета nuget&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;
&lt;pre class=&quot;code&quot;&gt;-- Delete all versions of a package with a specific package id
DECLARE @PackageRegistrationKey int
SELECT @PackageRegistrationKey = [Key]
 FROM [PackageRegistrations]
 WHERE [Id] = &amp;#039;Example.Nasty.Package&amp;#039;

BEGIN TRANSACTION
DELETE pf
 FROM [NuGetGallery].[dbo].[PackageFrameworks] pf
 JOIN [NuGetGallery].[dbo].[Packages] p ON pf.[Package_Key] = p.[Key]
 WHERE [PackageRegistrationKey] = @PackageRegistrationKey
DELETE pa
 FROM [NuGetGallery].[dbo].[PackageAuthors] pa
 JOIN [NuGetGallery].[dbo].[Packages] p ON pa.[PackageKey] = p.[Key]
 WHERE [PackageRegistrationKey] = @PackageRegistrationKey
DELETE gs
 FROM [NuGetGallery].[dbo].[GallerySettings] gs
 JOIN [NuGetGallery].[dbo].[PackageStatistics] ps ON gs.[DownloadStatsLastAggregatedId] = ps.[Key]
 JOIN [NuGetGallery].[dbo].[Packages] p ON ps.[PackageKey] = p.[Key]
 WHERE [PackageRegistrationKey] = @PackageRegistrationKey
DELETE ps
 FROM [NuGetGallery].[dbo].[PackageStatistics] ps
 JOIN [NuGetGallery].[dbo].[Packages] p ON ps.[PackageKey] = p.[Key]
 WHERE [PackageRegistrationKey] = @PackageRegistrationKey
DELETE pd
 FROM [NuGetGallery].[dbo].[PackageDependencies] pd
 JOIN [NuGetGallery].[dbo].[Packages] p ON pd.[PackageKey] = p.[Key]
 WHERE [PackageRegistrationKey] = @PackageRegistrationKey
DELETE
 FROM [NuGetGallery].[dbo].[Packages]
 WHERE [PackageRegistrationKey] = @PackageRegistrationKey
DELETE por
 FROM [NuGetGallery].[dbo].[PackageOwnerRequests] por
 JOIN [NuGetGallery].[dbo].[PackageRegistrations] pr ON pr.[Key] = por.[PackageRegistrationKey]
 WHERE [PackageRegistrationKey] = @PackageRegistrationKey
DELETE pro
 FROM [NuGetGallery].[dbo].[PackageRegistrationOwners] pro
 JOIN [NuGetGallery].[dbo].[PackageRegistrations] pr ON pr.[Key] = pro.[PackageRegistrationKey]
 WHERE [PackageRegistrationKey] = @PackageRegistrationKey
DELETE FROM [NuGetGallery].[dbo].[PackageRegistrations]
 WHERE [Key] = @PackageRegistrationKey
COMMIT TRANSACTION&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0421\u043a\u0440\u0438\u043f\u0442 \u0434\u043b\u044f \u0443\u0434\u0430\u043b\u0435\u043d\u0438\u044f \u0432\u0441\u0435\u0445 \u0432\u0435\u0440\u0441\u0438\u0439 \u043f\u0430\u043a\u0435\u0442\u0430 nuget&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0441\u043a\u0440\u0438\u043f\u0442_\u0434\u043b\u044f_\u0443\u0434\u0430\u043b\u0435\u043d\u0438\u044f_\u0432\u0441\u0435\u0445_\u0432\u0435\u0440\u0441\u0438\u0439_\u043f\u0430\u043a\u0435\u0442\u0430_nuget&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:3,&amp;quot;secid&amp;quot;:6,&amp;quot;range&amp;quot;:&amp;quot;6722-&amp;quot;} --&gt;</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Mon, 10 Jan 2022 09:46:17 +0000</pubDate>
        </item>
        <item>
            <title>package_config_prerelease_nuget_packages</title>
            <link>https://wiki.autosys.tk/ms_windows_ms_sql/package_config_prerelease_nuget_packages</link>
            <description>
&lt;h1 class=&quot;sectionedit1&quot; id=&quot;проблема&quot;&gt;Проблема&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;
&lt;pre class=&quot;code&quot;&gt;nuget restore &lt;/pre&gt;

&lt;p&gt;
не скачивает пакеты с PreRelease-версиями.
&lt;strong&gt;Nuget&lt;/strong&gt; опирается на &lt;strong&gt;packages.config&lt;/strong&gt;, который постепенно заменяется на &lt;strong&gt;PackageReference&lt;/strong&gt; (Visual Studio 2017 версии 15.7 и более поздние &lt;a href=&quot;https://docs.microsoft.com/ru-ru/nuget/consume-packages/migrate-packages-config-to-package-reference&quot; class=&quot;urlextern&quot; title=&quot;https://docs.microsoft.com/ru-ru/nuget/consume-packages/migrate-packages-config-to-package-reference&quot; rel=&quot;ugc nofollow&quot;&gt;https://docs.microsoft.com/ru-ru/nuget/consume-packages/migrate-packages-config-to-package-reference&lt;/a&gt;). &lt;br/&gt;

Вот немного про миграцию в сторону &lt;strong&gt;PackageReference&lt;/strong&gt;: &lt;a href=&quot;https://docs.microsoft.com/ru-ru/nuget/consume-packages/migrate-packages-config-to-package-reference&quot; class=&quot;urlextern&quot; title=&quot;https://docs.microsoft.com/ru-ru/nuget/consume-packages/migrate-packages-config-to-package-reference&quot; rel=&quot;ugc nofollow&quot;&gt;https://docs.microsoft.com/ru-ru/nuget/consume-packages/migrate-packages-config-to-package-reference&lt;/a&gt; &lt;br/&gt;

Вот тут: &lt;a href=&quot;https://docs.microsoft.com/ru-ru/dotnet/core/tools/dotnet-restore&quot; class=&quot;urlextern&quot; title=&quot;https://docs.microsoft.com/ru-ru/dotnet/core/tools/dotnet-restore&quot; rel=&quot;ugc nofollow&quot;&gt;https://docs.microsoft.com/ru-ru/dotnet/core/tools/dotnet-restore&lt;/a&gt; сказано, что “ &lt;strong&gt;.NET&lt;/strong&gt; не использует файл &lt;strong&gt;packages.config&lt;/strong&gt;. Вместо этого он использует элементы &lt;strong&gt;&amp;lt;PackageReference&amp;gt;&lt;/strong&gt; для пакетов &lt;strong&gt;NuGet&lt;/strong&gt;.”
&lt;strong&gt;nuget&lt;/strong&gt; предполагает, что &lt;strong&gt;prerelease&lt;/strong&gt; пакеты не используются при сборке &lt;strong&gt;Release&lt;/strong&gt;. А чтобы можно было собрать &lt;strong&gt;Release&lt;/strong&gt; с &lt;strong&gt;prerelease&lt;/strong&gt; пакетами нужно либо иметь их в локальном кеше, либо - явно указывать в &lt;strong&gt;cproj&lt;/strong&gt; файлике с помощью конструкции: 
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;&amp;lt;ItemGroup&amp;gt;
  &amp;lt;PackageReference Include=&amp;quot;Gems.ServiceBus.Emitting&amp;quot; Version=&amp;quot;3.7.12-DC-0-more-tracing-dev.2&amp;quot; /&amp;gt;
&amp;lt;/ItemGroup&amp;gt;&lt;/pre&gt;

&lt;p&gt;
То есть, чтобы &lt;strong&gt;nuget restore&lt;/strong&gt; корректно обработал prerelease-пакеты, нужно в &lt;strong&gt;cproj&lt;/strong&gt; заменить:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;  &amp;lt;ItemGroup&amp;gt;
    &amp;lt;Reference Include=&amp;quot;Contour, Version=3.0.0.0, Culture=neutral, processorArchitecture=MSIL&amp;quot;&amp;gt;
      &amp;lt;HintPath&amp;gt;..\..\packages\Contour.3.0.0-pr8\lib\netstandard2.0\Contour.dll&amp;lt;/HintPath&amp;gt;
    &amp;lt;/Reference&amp;gt;
    &amp;lt;Reference Include=&amp;quot;Gems.ServiceBus.Emitting, Version=3.7.11.0, Culture=neutral, processorArchitecture=MSIL&amp;quot;&amp;gt;
      &amp;lt;HintPath&amp;gt;..\..\packages\Gems.ServiceBus.Emitting.3.7.11.0\lib\netstandard2.0\Gems.ServiceBus.Emitting.dll&amp;lt;/HintPath&amp;gt;
    &amp;lt;/Reference&amp;gt;
  &amp;lt;/ItemGroup&amp;gt;&lt;/pre&gt;

&lt;p&gt;
на
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;  &amp;lt;ItemGroup&amp;gt;
    &amp;lt;PackageReference Include=&amp;quot;Contour&amp;quot; Version=&amp;quot;3.0.0-pr8&amp;quot; /&amp;gt;
    &amp;lt;PackageReference Include=&amp;quot;Gems.ServiceBus.Emitting&amp;quot; Version=&amp;quot;3.7.12-DC-0-more-tracing-dev.2&amp;quot; /&amp;gt;
  &amp;lt;/ItemGroup&amp;gt;&lt;/pre&gt;

&lt;p&gt;
&lt;a href=&quot;https://github.com/NuGet/Home/issues/6196&quot; class=&quot;urlextern&quot; title=&quot;https://github.com/NuGet/Home/issues/6196&quot; rel=&quot;ugc nofollow&quot;&gt;https://github.com/NuGet/Home/issues/6196&lt;/a&gt; &lt;br/&gt;

&lt;a href=&quot;https://github.com/NuGet/Home/issues/2944&quot; class=&quot;urlextern&quot; title=&quot;https://github.com/NuGet/Home/issues/2944&quot; rel=&quot;ugc nofollow&quot;&gt;https://github.com/NuGet/Home/issues/2944&lt;/a&gt; &lt;br/&gt;

&lt;/p&gt;

&lt;p&gt;
При этом, nuget ведет себя довольно странно. Он отказывается находить данный пакет:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;nuget search -PreRelease Gems.ServiceBus.Emitting&lt;/pre&gt;

&lt;p&gt;
Но при этом - нормально устанавливает:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;nuget install -Version 3.7.12-DC-0-more-tracing-dev.2 -PreRelease Gems.ServiceBus.Emitting -OutputDirectory ./packages/&lt;/pre&gt;

&lt;/div&gt;
</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Wed, 08 Dec 2021 11:32:07 +0000</pubDate>
        </item>
        <item>
            <title>policy_loopback_processing</title>
            <link>https://wiki.autosys.tk/ms_windows_ms_sql/policy_loopback_processing</link>
            <description>
&lt;p&gt;
&lt;strong&gt;Computer Configuration/Policies/Administrative Templates/System/Group Policy/Configure user Group Policy loopback processing mode&lt;/strong&gt;&lt;br/&gt;

&lt;strong&gt;Конфигурация компьютера\Политики\Административные шаблоны\Система\Групповая политика\Режим обработки замыкания пользовательской групповой политики&lt;/strong&gt;&lt;br/&gt;

&lt;/p&gt;

&lt;h1 class=&quot;sectionedit1&quot; id=&quot;смысл_этого_параметра&quot;&gt;Смысл этого параметра&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
Этот параметр определяет, будут ли параметры политик &lt;strong&gt;User Configuration&lt;/strong&gt;, применяемые к компьютеру, применяться к пользователю. &lt;br/&gt;

Обычно компьютеры и пользователи размещены в разных &lt;strong&gt;OU&lt;/strong&gt;. Соответственно, к компьютерам и к пользователям применяются политики, привязанные к разным &lt;strong&gt;OU&lt;/strong&gt;. Причем, к компьютерам применяются политики из раздела &lt;strong&gt;Computer Configuration&lt;/strong&gt;, а к пользователям &lt;strong&gt;User Configuration&lt;/strong&gt;. &lt;br/&gt;

Если &lt;strong&gt;Group Policy loopback processing&lt;/strong&gt; не сконфигурирован, то к пользователю применяются только параметры, сконфигурированные в разделе &lt;strong&gt;User Configuration&lt;/strong&gt; в объекте &lt;strong&gt;GPO&lt;/strong&gt;, привязанном к &lt;strong&gt;OU&lt;/strong&gt; пользователя.&lt;br/&gt;

Если мы хотим, чтобы на для пользователей применялись некоторые параметры только тогда, когда они логинятся на компы, находящиеся в определенной &lt;strong&gt;OU&lt;/strong&gt;, то мы включаем &lt;strong&gt;Group Policy loopback processing&lt;/strong&gt;. &lt;br/&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\u043c\u044b\u0441\u043b \u044d\u0442\u043e\u0433\u043e \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0441\u043c\u044b\u0441\u043b_\u044d\u0442\u043e\u0433\u043e_\u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:1,&amp;quot;range&amp;quot;:&amp;quot;424-1855&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit2&quot; id=&quot;merge_mode_-_режим_слияния&quot;&gt;Merge Mode - Режим слияния&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
В этом режиме параметры &lt;strong&gt;User Configuration&lt;/strong&gt; из политик связанных с &lt;strong&gt;OU&lt;/strong&gt; компьютера и параметры &lt;strong&gt;User Configuration&lt;/strong&gt; из политик связанных с &lt;strong&gt;OU&lt;/strong&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;Merge Mode - \u0420\u0435\u0436\u0438\u043c \u0441\u043b\u0438\u044f\u043d\u0438\u044f&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;merge_mode_-_\u0440\u0435\u0436\u0438\u043c_\u0441\u043b\u0438\u044f\u043d\u0438\u044f&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:2,&amp;quot;range&amp;quot;:&amp;quot;1856-2390&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit3&quot; id=&quot;replace_mode_-_режим_замены&quot;&gt;Replace mode - Режим замены&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
В этом режиме параметры &lt;strong&gt;User Configuration&lt;/strong&gt; из политик связанных с &lt;strong&gt;OU&lt;/strong&gt; компьютера заменят все параметры, прописанные в политиках связанных с &lt;strong&gt;OU&lt;/strong&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;Replace mode - \u0420\u0435\u0436\u0438\u043c \u0437\u0430\u043c\u0435\u043d\u044b&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;replace_mode_-_\u0440\u0435\u0436\u0438\u043c_\u0437\u0430\u043c\u0435\u043d\u044b&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:3,&amp;quot;range&amp;quot;:&amp;quot;2391-&amp;quot;} --&gt;</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Mon, 11 Feb 2019 09:13:27 +0000</pubDate>
        </item>
        <item>
            <title>powershell_check_opened_files_close_handles</title>
            <link>https://wiki.autosys.tk/ms_windows_ms_sql/powershell_check_opened_files_close_handles</link>
            <description>
&lt;h1 class=&quot;sectionedit1&quot; id=&quot;проверка_того_что_файл_заблокирован&quot;&gt;Проверка того, что файл заблокирован&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
&lt;a href=&quot;https://mcpmag.com/articles/2018/07/10/check-for-locked-file-using-powershell.aspx&quot; class=&quot;urlextern&quot; title=&quot;https://mcpmag.com/articles/2018/07/10/check-for-locked-file-using-powershell.aspx&quot; rel=&quot;ugc nofollow&quot;&gt;https://mcpmag.com/articles/2018/07/10/check-for-locked-file-using-powershell.aspx&lt;/a&gt; &lt;br/&gt;

Функция Powershell пытается открыть файл для записи и если это не удается - сообщает, что файл заблокирован:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;Function Test-IsFileLocked {
    [cmdletbinding()]
    Param (
        [parameter(Mandatory=$True,ValueFromPipeline=$True,ValueFromPipelineByPropertyName=$True)]
        [Alias(&amp;#039;FullName&amp;#039;,&amp;#039;PSPath&amp;#039;)]
        [string[]]$Path
    )
    Process {
        ForEach ($Item in $Path) {
            #Ensure this is a full path
            $Item = Convert-Path $Item
            #Verify that this is a file and not a directory
            If ([System.IO.File]::Exists($Item)) {
                Try {
                    $FileStream = [System.IO.File]::Open($Item,&amp;#039;Open&amp;#039;,&amp;#039;Write&amp;#039;)
                    $FileStream.Close()
                    $FileStream.Dispose()
                    $IsLocked = $False
                } Catch [System.UnauthorizedAccessException] {
                    $IsLocked = &amp;#039;AccessDenied&amp;#039;
                } Catch {
                    $IsLocked = $True
                }
                [pscustomobject]@{
                    File = $Item
                    IsLocked = $IsLocked
                }
            }
        }
    }
}&lt;/pre&gt;

&lt;/div&gt;
</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Mon, 11 Feb 2019 09:13:27 +0000</pubDate>
        </item>
        <item>
            <title>powershell_desired_state_configuration_dsc</title>
            <link>https://wiki.autosys.tk/ms_windows_ms_sql/powershell_desired_state_configuration_dsc</link>
            <description>
&lt;h1 class=&quot;sectionedit1&quot; id=&quot;список_поддерживаемых_ресурсов_dsc&quot;&gt;Список поддерживаемых ресурсов DSC&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;
&lt;pre class=&quot;code&quot;&gt;Get-DscResource&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0421\u043f\u0438\u0441\u043e\u043a \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u043c\u044b\u0445 \u0440\u0435\u0441\u0443\u0440\u0441\u043e\u0432 DSC&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0441\u043f\u0438\u0441\u043e\u043a_\u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u043c\u044b\u0445_\u0440\u0435\u0441\u0443\u0440\u0441\u043e\u0432_dsc&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:1,&amp;quot;range&amp;quot;:&amp;quot;1-98&amp;quot;} --&gt;
&lt;h1 class=&quot;sectionedit2&quot; id=&quot;список_свойств_ресурса&quot;&gt;Список свойств ресурса&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;
&lt;pre class=&quot;code&quot;&gt;(Get-DscResource -Name SQLSetup).Properties&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0421\u043f\u0438\u0441\u043e\u043a \u0441\u0432\u043e\u0439\u0441\u0442\u0432 \u0440\u0435\u0441\u0443\u0440\u0441\u0430&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0441\u043f\u0438\u0441\u043e\u043a_\u0441\u0432\u043e\u0439\u0441\u0442\u0432_\u0440\u0435\u0441\u0443\u0440\u0441\u0430&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:2,&amp;quot;range&amp;quot;:&amp;quot;99-&amp;quot;} --&gt;</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Fri, 13 Dec 2019 10:45:00 +0000</pubDate>
        </item>
        <item>
            <title>powershell_exe_files_in_try_catch</title>
            <link>https://wiki.autosys.tk/ms_windows_ms_sql/powershell_exe_files_in_try_catch</link>
            <description>
&lt;p&gt;
&lt;strong&gt;Powershell&lt;/strong&gt; некорректно обрабатывает коды выхода из запущенных нативных exe-файлов (не из командлетов). &lt;br/&gt;

Допустим у нас есть команда, которая запускает exe-файл и возвращает код отличный от 0 и мы хотим обработать эту ситуацию с помощью &lt;strong&gt;Try-Catch&lt;/strong&gt;. &lt;br/&gt;

Вопреки интуитивному ожиданию такая конструкция не сработает:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;try
{
  run_buggy_executive.exe
  run_somthing_else.exe
}
catch
{
  Wtite-Host &amp;quot;We got an error!!!&amp;quot;
}&lt;/pre&gt;

&lt;p&gt;
Мы не получим сообщения &lt;strong&gt;We got an error!!!&lt;/strong&gt; при ненулевом коде возврата из &lt;strong&gt;run_buggy_executive.exe&lt;/strong&gt;, а запущены будут оба исполняемых файла (или команды).
Как же быть? &lt;br/&gt;

Вариантов фактически два (&lt;a href=&quot;https://stackoverflow.com/questions/9948517/how-to-stop-a-powershell-script-on-the-first-error&quot; class=&quot;urlextern&quot; title=&quot;https://stackoverflow.com/questions/9948517/how-to-stop-a-powershell-script-on-the-first-error&quot; rel=&quot;ugc nofollow&quot;&gt;https://stackoverflow.com/questions/9948517/how-to-stop-a-powershell-script-on-the-first-error&lt;/a&gt;):
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt;
 Вручную проверять код выхода (код запуска и проверки можно обернуть в функцию, но фактически способ останется тем же): &lt;pre class=&quot;code&quot;&gt;try
{
  doSomething -arg myArg
  if (-not $?) { Write-Error -Message &amp;quot;doSomething Failed...&amp;quot; -ErrorAction Stop }
}
catch 
{
  Write-Error -Message &amp;quot;We have a problem. $PSItem&amp;quot; -ErrorAction Stop
}&lt;/pre&gt;

&lt;p&gt;
 Тут важно обратить внимание на &lt;strong&gt;-ErrorAction Stop&lt;/strong&gt; - без него будет просто отображение сообщения об ошибке, а не остановка. &lt;br/&gt;
Ну или можно использовать &lt;strong&gt;throw&lt;/strong&gt; вместо &lt;strong&gt;Write-Error -ErrorAction Stop&lt;/strong&gt;
&lt;/div&gt;&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt;
 Второй вариант - гораздо более практичный, но очень неочевидный - это перенаправление &lt;strong&gt;stderr&lt;/strong&gt; в &lt;strong&gt;stdout&lt;/strong&gt;:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;try
{
  doSomething -arg myArg 2&amp;gt;&amp;amp;1
}
catch 
{
  Write-Error -Message &amp;quot;We have a problem. $PSItem&amp;quot; -ErrorAction Stop
}&lt;/pre&gt;

&lt;/div&gt;&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;
В итоге - при ошибке код в блоке &lt;strong&gt;Try&lt;/strong&gt; остановится на строке, которая вызвала ошибку и дальше исполнится блок &lt;strong&gt;Catch&lt;/strong&gt;. 
&lt;/p&gt;
</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Tue, 25 May 2021 10:45:58 +0000</pubDate>
        </item>
        <item>
            <title>powershell_remote_execution_access_denied</title>
            <link>https://wiki.autosys.tk/ms_windows_ms_sql/powershell_remote_execution_access_denied</link>
            <description>
&lt;p&gt;
&lt;a href=&quot;https://stackoverflow.com/a/60046097&quot; class=&quot;urlextern&quot; title=&quot;https://stackoverflow.com/a/60046097&quot; rel=&quot;ugc nofollow&quot;&gt;https://stackoverflow.com/a/60046097&lt;/a&gt;
&lt;/p&gt;
</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Wed, 09 Jun 2021 15:29:30 +0000</pubDate>
        </item>
        <item>
            <title>powershell_script_to_rename_photos_based_on_date_taken</title>
            <link>https://wiki.autosys.tk/ms_windows_ms_sql/powershell_script_to_rename_photos_based_on_date_taken</link>
            <description>
&lt;p&gt;
Вот мой вариант powershell скрипта для переимнования фоток, чтобы в имени файла была указана дата и время, когда была сделана фотография. Информация берется из &lt;strong&gt;EXIF&lt;/strong&gt; файла. &lt;br/&gt;

Перед запуском следует изменить имя папки &lt;strong&gt;$strDirectory&lt;/strong&gt; в которой будет происходить переименование.
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;$ErrorActionPreference = &amp;quot;SilentlyContinue&amp;quot;
# Set image folder to process
$strDirectory = &amp;quot;E:\Cloud.Mail.Ru\Photos&amp;quot;

function ConvertAsciiArrayToString($CharArray) {  
 $ReturnVal = &amp;quot;&amp;quot;  
 foreach ($Char in $CharArray) {  
  $ReturnVal += [char]$Char  
 }  
 return $ReturnVal  
}  

# Load Windows library to access EXIF data
[void][Reflection.Assembly]::LoadWithPartialName(&amp;quot;System.Drawing&amp;quot;)

# Loop through all JPGs and JPEGs in the given image folder
Get-ChildItem -Recurse -Path &amp;quot;$strDirectory\*&amp;quot; -Include *.jpg,*.jpeg | ForEach {

  # Load current image into Powershell as bitmap object
  $img = New-Object -TypeName system.drawing.bitmap -ArgumentList $_.FullName

    # Get EXIF data with ID 36867 - which is &amp;quot;DateTimeOriginal&amp;quot;
    $intExif = [Byte[]]$img.GetPropertyItem(36867).Value
 
    if ($intExif -ne $null) {
         $Year = ConvertAsciiArrayToString $intExif[0..3]  
         $Month = ConvertAsciiArrayToString $intExif[5..6]  
         $Day = ConvertAsciiArrayToString $intExif[8..9]  
         $Hour = ConvertAsciiArrayToString $intExif[11..12]  
         $Minute = ConvertAsciiArrayToString $intExif[14..15]  
         $Second = ConvertAsciiArrayToString $intExif[17..18]

    $Newname = $Year + &amp;quot;_&amp;quot; + $Month + &amp;quot;_&amp;quot; + $Day + &amp;quot;-&amp;quot; + $Hour + &amp;quot;h_&amp;quot; + $Minute + &amp;quot;m_&amp;quot; + $Second + &amp;quot;s&amp;quot; + $_.Extension
#    Rename-Item ( $_.FullName | Out-String ), ( $Newname | Out-String )
 $img.Dispose()
        if ( $_.Name -ne $NewName) {
            Rename-Item -Path $_.FullName -NewName $Newname -Force -Verbose
         }
      }

#Write-Host &amp;quot;File: &amp;quot; $_.Name&amp;quot;, New Name: &amp;quot; $NewName
}&lt;/pre&gt;
</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Mon, 11 Feb 2019 09:13:27 +0000</pubDate>
        </item>
        <item>
            <title>powershell_show_modal_popup_window</title>
            <link>https://wiki.autosys.tk/ms_windows_ms_sql/powershell_show_modal_popup_window</link>
            <description>&lt;pre class=&quot;code&quot;&gt;powershell [Reflection.Assembly]::LoadWithPartialName(&amp;quot;&amp;quot;&amp;quot;System.Windows.Forms&amp;quot;&amp;quot;&amp;quot;);[Windows.Forms.MessageBox]::show(&amp;quot;&amp;quot;&amp;quot;Hello World&amp;quot;&amp;quot;&amp;quot;, &amp;quot;&amp;quot;&amp;quot;My PopUp Message Box&amp;quot;&amp;quot;&amp;quot;&lt;/pre&gt;

&lt;p&gt;
&lt;br/&gt;

&lt;br/&gt;

&lt;br/&gt;

&lt;br/&gt;

&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;powershell (New-Object -ComObject Wscript.Shell).Popup(&amp;quot;&amp;quot;&amp;quot;Operation Completed&amp;quot;&amp;quot;&amp;quot;,0,&amp;quot;&amp;quot;&amp;quot;Done&amp;quot;&amp;quot;&amp;quot;,0x0)&lt;/pre&gt;

&lt;p&gt;
&lt;a href=&quot;https://msdn.microsoft.com/en-us/library/x83z1d9f(v=vs.84).aspx&quot; class=&quot;urlextern&quot; title=&quot;https://msdn.microsoft.com/en-us/library/x83z1d9f(v=vs.84).aspx&quot; rel=&quot;ugc nofollow&quot;&gt;https://msdn.microsoft.com/en-us/library/x83z1d9f(v=vs.84).aspx&lt;/a&gt;
&lt;/p&gt;
&lt;ol&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt;
 Stop 0x10 Stop
&lt;/div&gt;&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt;
 Question Mark 0x20 Question Mark
&lt;/div&gt;&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt;
 Exclamation Mark 0x30 Exclamation Mark
&lt;/div&gt;&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt;
 Information Mark 0x40 Information Mark
&lt;/div&gt;&lt;/li&gt;
&lt;/ol&gt;

</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Fri, 31 May 2019 14:18:43 +0000</pubDate>
        </item>
        <item>
            <title>powershell_skip_certificate_check</title>
            <link>https://wiki.autosys.tk/ms_windows_ms_sql/powershell_skip_certificate_check</link>
            <description>
&lt;p&gt;
&lt;a href=&quot;https://blog.gpunktschmitz.com/504-powershell-download-file-from-server-via-https-which-has-a-self-signed-certificate/&quot; class=&quot;urlextern&quot; title=&quot;https://blog.gpunktschmitz.com/504-powershell-download-file-from-server-via-https-which-has-a-self-signed-certificate/&quot; rel=&quot;ugc nofollow&quot;&gt;https://blog.gpunktschmitz.com/504-powershell-download-file-from-server-via-https-which-has-a-self-signed-certificate/&lt;/a&gt; - это на Powershell 5 не сработало&lt;br/&gt;

&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;&amp;quot;[System.Net.ServicePointManager]::ServerCertificateValidationCallback = {$true};(New-Object Net.WebClient).DownloadString(\&amp;quot;127.0.0.1/xxx\&amp;quot;)&amp;quot;&lt;/pre&gt;
</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Thu, 03 Jun 2021 15:52:52 +0000</pubDate>
        </item>
        <item>
            <title>powershell_start_transcript_not_record_all_output</title>
            <link>https://wiki.autosys.tk/ms_windows_ms_sql/powershell_start_transcript_not_record_all_output</link>
            <description>
&lt;p&gt;
&lt;a href=&quot;https://support.microsoft.com/en-us/kb/3014136&quot; class=&quot;urlextern&quot; title=&quot;https://support.microsoft.com/en-us/kb/3014136&quot; rel=&quot;ugc nofollow&quot;&gt;https://support.microsoft.com/en-us/kb/3014136&lt;/a&gt;
&lt;a href=&quot;http://hotfixv4.microsoft.com/Windows%208.1/Windows%20Server%202012%20R2/sp1/Fix528220/9600/free/481670_intl_x64_zip.exe&quot; class=&quot;urlextern&quot; title=&quot;http://hotfixv4.microsoft.com/Windows%208.1/Windows%20Server%202012%20R2/sp1/Fix528220/9600/free/481670_intl_x64_zip.exe&quot; rel=&quot;ugc nofollow&quot;&gt;http://hotfixv4.microsoft.com/Windows%208.1/Windows%20Server%202012%20R2/sp1/Fix528220/9600/free/481670_intl_x64_zip.exe&lt;/a&gt;
&lt;/p&gt;
</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Mon, 11 Feb 2019 09:13:27 +0000</pubDate>
        </item>
        <item>
            <title>powershell_stop_process_with_known_copyright_publisher_productname</title>
            <link>https://wiki.autosys.tk/ms_windows_ms_sql/powershell_stop_process_with_known_copyright_publisher_productname</link>
            <description>
&lt;p&gt;
Иногда бывает нужно закрыть все процессы, которые входят в состав какого-то продукта. Их можно идентифицировать по информации, хранящейся в исполняемом файлике. Например - названии продукта или имени издателя.
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;$processes = get-Process
foreach ($process in $processes)
{
    if ($process.Path -ne $null)
    {
        if ($(Get-Item $process.Path).VersionInfo.ProductName -match &amp;#039;ActivTrak&amp;#039; -or $(Get-Item $process.Path).VersionInfo.LegalCopyright -match &amp;#039;Birch&amp;#039;)
        {
            $process.Path
            $Process | Stop-Process -Force
        }
    }
}&lt;/pre&gt;
</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Mon, 11 Feb 2019 09:13:27 +0000</pubDate>
        </item>
        <item>
            <title>powershell_supress_messages</title>
            <link>https://wiki.autosys.tk/ms_windows_ms_sql/powershell_supress_messages</link>
            <description>
&lt;p&gt;
Иногда надо запретить вывод сообщений об ошибках в скриптах powershell.
Настройка параметров вывода сообщений производится с помощью переменных &lt;strong&gt;ErrorAction&lt;/strong&gt; и &lt;strong&gt;WarningAction&lt;/strong&gt;, которым можно задать значения (&lt;strong&gt;SilentlyContinue&lt;/strong&gt;, &lt;strong&gt;Continue&lt;/strong&gt;, &lt;strong&gt;Inquire&lt;/strong&gt; и &lt;strong&gt;Stop&lt;/strong&gt;). В многих случаях добавление к параметрам коммандлета &lt;strong&gt;-ErrorAction SilentlyContinue&lt;/strong&gt; позволяет избавиться от надоедливых сообщений. Однако, что же делать, когда это не помогает и сообщения продолжают появляться? &lt;br/&gt;

Такая ситуация возможна с коммандлетами, специфичными для приложений. Например - Microsoft Exchange. &lt;br/&gt;

Я столкнулся с нескрываемыми ошибками при выполнении &lt;strong&gt;Set-Mailbox&lt;/strong&gt;. Довольно длительное гугление привело меня сюда: &lt;a href=&quot;https://stackoverflow.com/questions/26137379/suppress-powershell-output-messages&quot; class=&quot;urlextern&quot; title=&quot;https://stackoverflow.com/questions/26137379/suppress-powershell-output-messages&quot; rel=&quot;ugc nofollow&quot;&gt;https://stackoverflow.com/questions/26137379/suppress-powershell-output-messages&lt;/a&gt; &lt;br/&gt;

А там приведен рецепт - перенаправление вывода таким вот образом:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;*&amp;gt;&amp;amp;1 | out-null&lt;/pre&gt;

&lt;p&gt;
В результате нежелательные сообщения (да все сообщения в принципе) отправляются в $null.
&lt;/p&gt;
</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Mon, 11 Feb 2019 09:13:27 +0000</pubDate>
        </item>
        <item>
            <title>powershell_the_fully_qualified_file_name_must_be_less_than_260_workaround</title>
            <link>https://wiki.autosys.tk/ms_windows_ms_sql/powershell_the_fully_qualified_file_name_must_be_less_than_260_workaround</link>
            <description>
&lt;h1 class=&quot;sectionedit1&quot; id=&quot;powershell_и_длинные_имена_файлов&quot;&gt;PowerShell и длинные имена файлов&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
При работе с файлами в &lt;strong&gt;powershell&lt;/strong&gt; часто возникает примерно такая ошибка:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;ls : The specified path, file name, or both are too long. The fully qualified file name must be less than 260
characters, and the directory name must be less than 248 characters.

    + CategoryInfo          : ReadError: (\\UKBTH05DFS03\...)\Post Exchange:String) [Get-ChildItem], PathTooLongException
    + FullyQualifiedErrorId : DirIOError,Microsoft.PowerShell.Commands.GetChildItemCommand&lt;/pre&gt;

&lt;p&gt;
Или вот такая:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;Get-Acl : Cannot find path &amp;#039;\\servername\d$\DFS\........................................................................
........................................................................................................................
...............................................&amp;#039; because it does not exist.
At C:\users\username\ScriptPath\Script.ps1:63 char:104
+ ... ory -Recurse | Get-Acl | Where {$_.AreAccessRulesProtected} | Select @{Name=&amp;quot;Pat ...
+                    ~~~~~~~
    + CategoryInfo          : ObjectNotFound: (:) [Get-Acl], ItemNotFoundException
    + FullyQualifiedErrorId : GetAcl_PathNotFound_Exception,Microsoft.PowerShell.Commands.GetAclCommand&lt;/pre&gt;

&lt;p&gt;
Эти ошибки являются суровым наследием и присутствует в &lt;strong&gt;Windows&lt;/strong&gt; уже не один десяток лет.
Надежных путей обхода этой ошибки существует несколько. Для доступа к файлам с длинными путями - &lt;strong&gt;robocopy&lt;/strong&gt; и &lt;strong&gt;PSAlphaFS&lt;/strong&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;PowerShell \u0438 \u0434\u043b\u0438\u043d\u043d\u044b\u0435 \u0438\u043c\u0435\u043d\u0430 \u0444\u0430\u0439\u043b\u043e\u0432&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;powershell_\u0438_\u0434\u043b\u0438\u043d\u043d\u044b\u0435_\u0438\u043c\u0435\u043d\u0430_\u0444\u0430\u0439\u043b\u043e\u0432&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:1,&amp;quot;range&amp;quot;:&amp;quot;1-1804&amp;quot;} --&gt;
&lt;h1 class=&quot;sectionedit2&quot; id=&quot;powershell_alphafs&quot;&gt;PowerShell AlphaFS&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
Если с &lt;strong&gt;robocopy&lt;/strong&gt; все понятно, то модуль &lt;strong&gt;AlphaFS&lt;/strong&gt; появился относительно недавно. &lt;br/&gt;

Итак. Этот модуль есть в &lt;strong&gt;PSGallery&lt;/strong&gt;. Чтобы установить &lt;strong&gt;AlphaFS&lt;/strong&gt; выполняем:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;Install-Module -Name PSAlphaFS&lt;/pre&gt;

&lt;p&gt;
Это работает на &lt;strong&gt;Windows Server 2016&lt;/strong&gt;. Если у вас более старая версия - нужно установить &lt;strong&gt;PackageManagement PowerShell Modules&lt;/strong&gt; (как это сделать написано тут - &lt;a href=&quot;https://docs.microsoft.com/en-us/powershell/gallery/readme&quot; class=&quot;urlextern&quot; title=&quot;https://docs.microsoft.com/en-us/powershell/gallery/readme&quot; rel=&quot;ugc nofollow&quot;&gt;https://docs.microsoft.com/en-us/powershell/gallery/readme&lt;/a&gt;) или тут инсталляторы x86 и x64 одним архивом: &lt;a href=&quot;https://wiki.autosys.tk/_media/ms_windows_ms_sql/powershell_packagemanagement.rar&quot; class=&quot;media mediafile mf_rar&quot; title=&quot;ms_windows_ms_sql:powershell_packagemanagement.rar (1 MB)&quot;&gt; powershell_packagemanagement.rar&lt;/a&gt;. &lt;br/&gt;

В &lt;strong&gt;Windows 2008 R2&lt;/strong&gt; предварительно потребуется обновить и &lt;strong&gt;Powershell&lt;/strong&gt; до версии &lt;strong&gt;3.0&lt;/strong&gt;,&lt;strong&gt;4.0&lt;/strong&gt; или &lt;strong&gt;5.0&lt;/strong&gt;. Как это сделать написано тут: &lt;a href=&quot;https://social.technet.microsoft.com/wiki/contents/articles/20623.step-by-step-upgrading-the-powershell-version-4-on-2008-r2.aspx&quot; class=&quot;urlextern&quot; title=&quot;https://social.technet.microsoft.com/wiki/contents/articles/20623.step-by-step-upgrading-the-powershell-version-4-on-2008-r2.aspx&quot; rel=&quot;ugc nofollow&quot;&gt;https://social.technet.microsoft.com/wiki/contents/articles/20623.step-by-step-upgrading-the-powershell-version-4-on-2008-r2.aspx&lt;/a&gt;. Powershell 5.0 можно взять тут: &lt;a href=&quot;https://www.microsoft.com/en-us/download/confirmation.aspx?id=54616&quot; class=&quot;urlextern&quot; title=&quot;https://www.microsoft.com/en-us/download/confirmation.aspx?id=54616&quot; rel=&quot;ugc nofollow&quot;&gt;https://www.microsoft.com/en-us/download/confirmation.aspx?id=54616&lt;/a&gt; &lt;br/&gt;

&lt;/p&gt;

&lt;p&gt;
После установки модуля можно выполнять:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;Get-LongChildItem ..... &lt;/pre&gt;

&lt;p&gt;
Теперь можно забыть про то, что &lt;strong&gt;“The fully qualified file name must be less than 260 characters, and the directory name must be less than 248 characters.”&lt;/strong&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;PowerShell AlphaFS&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;powershell_alphafs&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:2,&amp;quot;secid&amp;quot;:2,&amp;quot;range&amp;quot;:&amp;quot;1805-3354&amp;quot;} --&gt;
&lt;h1 class=&quot;sectionedit3&quot; id=&quot;монтирование_временного_диска&quot;&gt;Монтирование временного диска&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
Суть метода в том, что в системе монтируется временный диск с корнем в папке в которой лежат недоступные файлы. Таким образом, длина пути к файлам уменьшается на длину пути к корню временного диска.
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;Try{
    $ObjectACL = Get-ACL -Path $Folder
}
Catch{
    $SubPathLength = $Folder.FullName.substring(0,200).LastIndexOf(&amp;#039;\&amp;#039;)
    $NewTempPath = $Folder.FullName.SubString(0,$SubPathLength)
    New-PSDrive -Name &amp;quot;Temp4ACL&amp;quot; -PSProvider &amp;quot;FileSystem&amp;quot; -Root $NewTempPath
    $ObjectACL = Get-ACL &amp;quot;Temp4ACL:$($Folder.FullName.SubSTring($SubPathLength,$Folder.FullName.Length-$SubPathLength))&amp;quot;
    Remove-PSDrive -Name &amp;quot;Temp4ACL&amp;quot;
}&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u041c\u043e\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0432\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0433\u043e \u0434\u0438\u0441\u043a\u0430&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u043c\u043e\u043d\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435_\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u043e\u0433\u043e_\u0434\u0438\u0441\u043a\u0430&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:2,&amp;quot;secid&amp;quot;:3,&amp;quot;range&amp;quot;:&amp;quot;3355-&amp;quot;} --&gt;</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Mon, 11 Feb 2019 09:13:27 +0000</pubDate>
        </item>
        <item>
            <title>quick_install_all_drivers_from_folder_and_subfolders</title>
            <link>https://wiki.autosys.tk/ms_windows_ms_sql/quick_install_all_drivers_from_folder_and_subfolders</link>
            <description>
&lt;p&gt;
Обычно, если нет диска с драйверами, драйверы в Windows устанавливаются по одному и вручную. Это долго и утомительно. К счастью, на помощью приходит &lt;strong&gt;powershell&lt;/strong&gt;, который позволяет установить в голую систему &lt;strong&gt;Windows&lt;/strong&gt; (начиная с &lt;strong&gt;win7&lt;/strong&gt;) все драйверы из заданной папки буквально за один клик. Вот скрипт:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;Get-ChildItem &amp;quot;C:\mydrivers\&amp;quot; -Recurse -Filter &amp;quot;*.inf&amp;quot; | 
ForEach-Object { PNPUtil.exe /add-driver $_.FullName /install }&lt;/pre&gt;

&lt;p&gt;
Если &lt;strong&gt;pnputil&lt;/strong&gt; ругается, то скорее всего она не понимает ключей &lt;strong&gt;/add-driver&lt;/strong&gt; и &lt;strong&gt;/install&lt;/strong&gt; (напрмер - в &lt;strong&gt;Windows 7&lt;/strong&gt;). В таком случае их можно заменить на &lt;strong&gt;-a -i&lt;/strong&gt;:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;Get-ChildItem &amp;quot;C:\DRIVERS\&amp;quot; -Recurse -Filter &amp;quot;*.inf&amp;quot; | 
ForEach-Object { PNPUtil.exe -i -a $_.FullName }&lt;/pre&gt;

&lt;p&gt;
Например, таким образом удобно ставить драйверы на ноутбуки, для которых есть пакеты &lt;strong&gt;SCCM&lt;/strong&gt;. В частности - &lt;strong&gt;Lenovo&lt;/strong&gt;. Распаковываем пакет и натравливаем на него скрипт.
&lt;/p&gt;
</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Mon, 11 Feb 2019 09:13:27 +0000</pubDate>
        </item>
        <item>
            <title>remote_ad_expired_password_reset</title>
            <link>https://wiki.autosys.tk/ms_windows_ms_sql/remote_ad_expired_password_reset</link>
            <description>
&lt;h1 class=&quot;sectionedit1&quot; id=&quot;проблема&quot;&gt;Проблема&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
Просрочился пароль. Залогиниться не удается. Доступа к консоли компа нет - только удаленный доступ в сеть. &lt;br/&gt;

Как удаленно сбросить просроченный пароль от учетки &lt;strong&gt;Active Directory&lt;/strong&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;\u041f\u0440\u043e\u0431\u043b\u0435\u043c\u0430&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0430&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:1,&amp;quot;range&amp;quot;:&amp;quot;1-577&amp;quot;} --&gt;
&lt;h1 class=&quot;sectionedit2&quot; id=&quot;решение&quot;&gt;Решение&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
Можно применить скрипт &lt;strong&gt;Powershell&lt;/strong&gt;:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;    function Set-PasswordRemotely {
        [CmdletBinding()]
        param(
            [Parameter(Mandatory = $true)][string] $UserName,
            [Parameter(Mandatory = $true)][string] $OldPassword,
            [Parameter(Mandatory = $true)][string] $NewPassword,
            [Parameter(Mandatory = $true)][alias(&amp;#039;DC&amp;#039;, &amp;#039;Server&amp;#039;, &amp;#039;ComputerName&amp;#039;)][string] $DomainController
        )
        $DllImport = &amp;#039;
    [DllImport(&amp;quot;netapi32.dll&amp;quot;, CharSet = CharSet.Unicode)]
    public static extern bool NetUserChangePassword(string domain, string username, string oldpassword, string newpassword);
    &amp;#039;
        $NetApi32 = Add-Type -MemberDefinition $DllImport -Name &amp;#039;NetApi32&amp;#039; -Namespace &amp;#039;Win32&amp;#039; -PassThru
        if ($result = $NetApi32::NetUserChangePassword($DomainController, $UserName, $OldPassword, $NewPassword)) {
            Write-Output -InputObject &amp;#039;Password change failed. Please try again.&amp;#039;
        } else {
            Write-Output -InputObject &amp;#039;Password change succeeded.&amp;#039;
        }
    }

    Set-PasswordRemotely &amp;#039;username&amp;#039; &amp;#039;OlD_Pa$$W0Rd&amp;#039; &amp;#039;NeW_P@$$W0rD&amp;#039; &amp;#039;domain_controller.domain.local&amp;#039; &lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0420\u0435\u0448\u0435\u043d\u0438\u0435&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0440\u0435\u0448\u0435\u043d\u0438\u0435&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:2,&amp;quot;range&amp;quot;:&amp;quot;578-&amp;quot;} --&gt;</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Mon, 02 Sep 2019 07:09:55 +0000</pubDate>
        </item>
        <item>
            <title>remote_copy_files_using_registry</title>
            <link>https://wiki.autosys.tk/ms_windows_ms_sql/remote_copy_files_using_registry</link>
            <description>
&lt;h1 class=&quot;sectionedit1&quot; id=&quot;задача&quot;&gt;Задача&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
Тут надо писать еще!!
Скопировать файл на удаленную машину.
Однако, в команде есть запятая, которая некорректно обрабатывается (что описано тут: &lt;a href=&quot;https://stackoverflow.com/questions/23827199/escaping-strings-when-using-wmic&quot; class=&quot;urlextern&quot; title=&quot;https://stackoverflow.com/questions/23827199/escaping-strings-when-using-wmic&quot; rel=&quot;ugc nofollow&quot;&gt;https://stackoverflow.com/questions/23827199/escaping-strings-when-using-wmic&lt;/a&gt; ), а другие методы &lt;strong&gt;powershell 2.0&lt;/strong&gt; не умеет (с помощью &lt;strong&gt;BITS&lt;/strong&gt; не получилось). &lt;br/&gt;

Выход из этой ситуации такой. Можно создать скрипт с командой на скачивание дистрибутива и закинуть его более экзотическим способом - через реестр удаленной машины. Этот способ описан тут: &lt;br/&gt;

&lt;a href=&quot;https://github.com/ChrisTruncer/WMIOps/blob/master/WMIOps.ps1&quot; class=&quot;urlextern&quot; title=&quot;https://github.com/ChrisTruncer/WMIOps/blob/master/WMIOps.ps1&quot; rel=&quot;ugc nofollow&quot;&gt;https://github.com/ChrisTruncer/WMIOps/blob/master/WMIOps.ps1&lt;/a&gt; &lt;br/&gt;

&lt;a href=&quot;https://github.com/ChrisTruncer/WMIOps&quot; class=&quot;urlextern&quot; title=&quot;https://github.com/ChrisTruncer/WMIOps&quot; rel=&quot;ugc nofollow&quot;&gt;https://github.com/ChrisTruncer/WMIOps&lt;/a&gt; &lt;br/&gt;

Закинуть сразу дистрибутив - невозможно, поскольку скрипт &lt;strong&gt;WMIOps&lt;/strong&gt; не предназначен для перекидывания больших файлов.
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;$node=&amp;#039;szud-dev200&amp;#039;
$user=&amp;#039;.\Администратор&amp;#039;
$password=&amp;#039;P@ssw0rd&amp;#039;
$File=&amp;#039;c:\temp\upload.ps1&amp;#039;

Write-Verbose &amp;quot;Read in local file and base64 encode it&amp;quot;
$filecontents = Get-Content -Encoding byte $File
$filecontentencoded = [System.Convert]::ToBase64String($filecontents)

$password = ConvertTo-SecureString $password -asplaintext -force
$credentials = New-Object -Typename System.Management.Automation.PSCredential -argumentlist $user,$password


#Copy to remote registry
$HKEY_LOCAL_MACHINE=2147483650
$reg= Get-WMIObject -list &amp;quot;StdRegProv&amp;quot; -namespace root\default -computername $node -credential $credentials
$Key = &amp;quot;Software\Microsoft\DRM&amp;quot;
$ValueName=&amp;quot;content&amp;quot;
$Value=$filecontentencoded
$results = $reg.SetExpandedStringValue($HKEY_LOCAL_MACHINE, $Key, $ValueName, $Value)
&lt;/pre&gt;

&lt;/div&gt;
</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Mon, 11 Feb 2019 09:13:27 +0000</pubDate>
        </item>
        <item>
            <title>remote_desktop_services_home_folder_not_mapping</title>
            <link>https://wiki.autosys.tk/ms_windows_ms_sql/remote_desktop_services_home_folder_not_mapping</link>
            <description>
&lt;h1 class=&quot;sectionedit1&quot; id=&quot;проблема&quot;&gt;Проблема&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
При входе пользователя на терминальный сервер &lt;strong&gt;Windows Server 2016&lt;/strong&gt; не мапится пользовательский диск, прописанный в свойствах учетки на вкладке &lt;strong&gt;Remote Desktop Services Profile&lt;/strong&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;\u041f\u0440\u043e\u0431\u043b\u0435\u043c\u0430&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0430&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:1,&amp;quot;range&amp;quot;:&amp;quot;1-355&amp;quot;} --&gt;
&lt;h1 class=&quot;sectionedit2&quot; id=&quot;решение&quot;&gt;Решение&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
Оказывается по дефолту не включен соответствующий параметр в реестре, который позовляет брать параметры из свойств учетки в AD. &lt;br/&gt;

На терминальном сервере в ветку реестра &lt;strong&gt;HKLM\SOFTWARE\Policies\Microsoft\Windows NT\Terminal Services\&lt;/strong&gt; нужно добавить параметр &lt;strong&gt;fQueryUserConfigFromDC&lt;/strong&gt; типа &lt;strong&gt;REG_DWORD&lt;/strong&gt; со значением &lt;strong&gt;1&lt;/strong&gt;.
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows NT\Terminal Services]
&amp;quot;fQueryUserConfigFromDC&amp;quot;=dword:00000001&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0420\u0435\u0448\u0435\u043d\u0438\u0435&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0440\u0435\u0448\u0435\u043d\u0438\u0435&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:2,&amp;quot;range&amp;quot;:&amp;quot;356-&amp;quot;} --&gt;</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Mon, 11 Feb 2019 09:13:27 +0000</pubDate>
        </item>
        <item>
            <title>reset_computer_account_password</title>
            <link>https://wiki.autosys.tk/ms_windows_ms_sql/reset_computer_account_password</link>
            <description>
&lt;p&gt;
Сброс учетки компьютера в домене без изменения SID.
&lt;/p&gt;

&lt;p&gt;
Иногда нужно переподключить компьютер к домену (сбросить его учетку), но выводить компьютер из домена нельзя. Для этого есть такая команда:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;NETDOM RESETPWD /Server:SRVDC01 /UserD:domain\zilinec_admin /PasswordD:Heslo123&lt;/pre&gt;
</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Mon, 11 Feb 2019 09:13:27 +0000</pubDate>
        </item>
        <item>
            <title>software_restriction_policy_disallowed_start_some_programs</title>
            <link>https://wiki.autosys.tk/ms_windows_ms_sql/software_restriction_policy_disallowed_start_some_programs</link>
            <description>
&lt;h1 class=&quot;sectionedit1&quot; id=&quot;проблема&quot;&gt;Проблема&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
Домен &lt;strong&gt;Windows Server 2008R2&lt;/strong&gt;. Терминальный сервер &lt;strong&gt;Windows Server 2016&lt;/strong&gt;. &lt;br/&gt;

Сконфигурирована политика с параметрами &lt;strong&gt;Software Restriction Policy&lt;/strong&gt;. &lt;br/&gt;

Явно разрешен запуск логон скриптов по пути к скриптам. &lt;br/&gt;

&lt;strong&gt;Logon&lt;/strong&gt; скрипт не выполняется. При попытке запустить логон скрипт вручную появляется сообщение:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;... cannot be loaded because its execution is blocked by software restriction policies. For more information, contact your system administrator.  &lt;/pre&gt;

&lt;p&gt;
При включении расширенного логирования &lt;strong&gt;Software Restriction Policy&lt;/strong&gt; там появляются сообщения вида:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;... Disallowed using SRPv2 rule, Guid = {c71b5435-1293-4848-b0a3-b53066c76ca2}&lt;/pre&gt;

&lt;p&gt;
В групповой политике правил &lt;strong&gt;AppLocker&lt;/strong&gt; нет. Выполнено &lt;strong&gt;Clear Policy&lt;/strong&gt;. &lt;br/&gt;

В локальной политике тоже самое. &lt;br/&gt;

При этом, такое поведение наблюдается только на части машин. На большинстве компов все в порядке. &lt;br/&gt;

Машины нормально получают обновления политик с помощью:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;gpupdate /force /target:computer&lt;/pre&gt;

&lt;p&gt;
В &lt;strong&gt;gpresult&lt;/strong&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;\u041f\u0440\u043e\u0431\u043b\u0435\u043c\u0430&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0430&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:1,&amp;quot;range&amp;quot;:&amp;quot;1-1481&amp;quot;} --&gt;
&lt;h1 class=&quot;sectionedit2&quot; id=&quot;решение&quot;&gt;Решение&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
Оказалось, достаточно в локальной политике жмакнуть правой кнопкой по &lt;strong&gt;AppLocker&lt;/strong&gt;, выбрать &lt;strong&gt;Properties&lt;/strong&gt;, потом поставить все галочки &lt;strong&gt;Configured&lt;/strong&gt; и выбрать во всех правилах - &lt;strong&gt;Audit Only&lt;/strong&gt;. &lt;br/&gt;

Нажать &lt;strong&gt;Apply&lt;/strong&gt;, а потом снять все галочки &lt;strong&gt;Configured&lt;/strong&gt; и выполнить &lt;strong&gt;Clear Policy&lt;/strong&gt; для &lt;strong&gt;AppLocker&lt;/strong&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;\u0420\u0435\u0448\u0435\u043d\u0438\u0435&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0440\u0435\u0448\u0435\u043d\u0438\u0435&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:2,&amp;quot;range&amp;quot;:&amp;quot;1482-&amp;quot;} --&gt;</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Mon, 11 Feb 2019 09:13:27 +0000</pubDate>
        </item>
        <item>
            <title>sql_change_column_type</title>
            <link>https://wiki.autosys.tk/ms_windows_ms_sql/sql_change_column_type</link>
            <description>
&lt;p&gt;
Чтобы изменить тип данных в столбце выполняем такой запрос:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;ALTER TABLE table_name ALTER COLUMN column_name column_type;&lt;/pre&gt;

&lt;p&gt;
Например:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;ALTER TABLE employees ALTER COLUMN last_name VARCHAR(75) NOT NULL;&lt;/pre&gt;

&lt;p&gt;
&lt;strong&gt;NOT NULL&lt;/strong&gt; - необязательный параметр. Запрещает пустые значения (NULL).
&lt;/p&gt;
</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Mon, 11 Feb 2019 09:13:27 +0000</pubDate>
        </item>
        <item>
            <title>sql_copy_table_schema_to_new_table</title>
            <link>https://wiki.autosys.tk/ms_windows_ms_sql/sql_copy_table_schema_to_new_table</link>
            <description>
&lt;h1 class=&quot;sectionedit1&quot; id=&quot;скопировать_схему_в_новую_таблицу&quot;&gt;Скопировать схему в новую таблицу&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
Иногда нужно создать новую таблицу с полями аналогичными полям в уже существующей таблице. Иными словами - скопировать схему (структуру) таблицы.  &lt;br/&gt;

Это можно сделать одной командой:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;SELECT TOP 0 * INTO new_table FROM existing_table&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0421\u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u0442\u044c \u0441\u0445\u0435\u043c\u0443 \u0432 \u043d\u043e\u0432\u0443\u044e \u0442\u0430\u0431\u043b\u0438\u0446\u0443&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0441\u043a\u043e\u043f\u0438\u0440\u043e\u0432\u0430\u0442\u044c_\u0441\u0445\u0435\u043c\u0443_\u0432_\u043d\u043e\u0432\u0443\u044e_\u0442\u0430\u0431\u043b\u0438\u0446\u0443&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:1,&amp;quot;range&amp;quot;:&amp;quot;1-463&amp;quot;} --&gt;
&lt;h1 class=&quot;sectionedit2&quot; id=&quot;получить_схему_таблицы&quot;&gt;Получить схему таблицы&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;
&lt;pre class=&quot;code&quot;&gt;select *
from INFORMATION_SCHEMA.COLUMNS
where TABLE_NAME=&amp;#039;tableName&amp;#039;&lt;/pre&gt;

&lt;p&gt;
Или в C#:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;using(DbCommand cmd = ...)
using(var reader = cmd.ExecuteReader())
{
    var schema = reader.GetSchemaTable();
    foreach(DataRow row in schema.Rows)
    {
        Debug.WriteLine(row[&amp;quot;ColumnName&amp;quot;] + &amp;quot; - &amp;quot; + row[&amp;quot;DataTypeName&amp;quot;])
    }
}&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u041f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0441\u0445\u0435\u043c\u0443 \u0442\u0430\u0431\u043b\u0438\u0446\u044b&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u043f\u043e\u043b\u0443\u0447\u0438\u0442\u044c_\u0441\u0445\u0435\u043c\u0443_\u0442\u0430\u0431\u043b\u0438\u0446\u044b&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:2,&amp;quot;range&amp;quot;:&amp;quot;464-&amp;quot;} --&gt;</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Mon, 11 Feb 2019 09:13:27 +0000</pubDate>
        </item>
        <item>
            <title>sql_loop_over_table_records</title>
            <link>https://wiki.autosys.tk/ms_windows_ms_sql/sql_loop_over_table_records</link>
            <description>
&lt;p&gt;
Самый понятный мне способ перебора значений из таблицы MS SQL в цикле с помощью Transact SQL.
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;--Select initial (minimum) value from table
SELECT @value = MIN(Value_column) FROM Value_Table 
--Start loop
WHILE @value IS NOT NULL 
BEGIN
        -- DO SOMETHING
        ---Select next value from table. Do Next Loop Step
	SELECT @value = MIN(Value_column) FROM Value_Table WHERE Value_column &amp;gt; @value --Select next value from table. Do Next Loop Step
END&lt;/pre&gt;
</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Mon, 11 Feb 2019 09:13:27 +0000</pubDate>
        </item>
        <item>
            <title>ssl_certificate_private_key_permissions</title>
            <link>https://wiki.autosys.tk/ms_windows_ms_sql/ssl_certificate_private_key_permissions</link>
            <description>
&lt;h1 class=&quot;sectionedit1&quot; id=&quot;проблема&quot;&gt;Проблема&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
Я использую сертификаты &lt;strong&gt;Let&amp;#039;s Encrypt&lt;/strong&gt; на хосте &lt;strong&gt;Windows 2008R2&lt;/strong&gt;. Сертификат нужен для &lt;strong&gt;Citrix Secure Gateway&lt;/strong&gt;. &lt;br/&gt;

В один прекрасный день, после обновления сертификата средствами &lt;strong&gt;Windows ACME Simple&lt;/strong&gt; версии &lt;strong&gt;1.9.12.2&lt;/strong&gt; (&lt;strong&gt;letsencrypt.exe&lt;/strong&gt;) сервис отказался запускаться, ссылаясь на то, что не имеет прав на чтение &lt;strong&gt;private key&lt;/strong&gt;:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;Read access to the selected certificate&amp;#039;s private key failed.&lt;/pre&gt;

&lt;p&gt;
Сервис исполняется от имени &lt;strong&gt;Network Service&lt;/strong&gt;. Если в свойствах сертификата нажать &lt;strong&gt;Manage Private Keys…&lt;/strong&gt; и попытаться дать права для &lt;strong&gt;Network Service&lt;/strong&gt;, то появляется сообщение:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;Unable to save permission changes on &amp;lt;&amp;lt;certificate name and date&amp;gt;&amp;gt; private keys.
Access is denied.&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u041f\u0440\u043e\u0431\u043b\u0435\u043c\u0430&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0430&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:1,&amp;quot;range&amp;quot;:&amp;quot;1-993&amp;quot;} --&gt;
&lt;h1 class=&quot;sectionedit2&quot; id=&quot;решение&quot;&gt;Решение&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
Помогло применение &lt;strong&gt;PsExec&lt;/strong&gt;. &lt;br/&gt;

Запускаем &lt;strong&gt;mmc&lt;/strong&gt; от имени &lt;strong&gt;SYSTEM&lt;/strong&gt;:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;psexec -i -s mmc&lt;/pre&gt;

&lt;p&gt;
добавляем оснастку для управления сертификатами локального компьютера и теперь мы можем дать права на &lt;strong&gt;private key&lt;/strong&gt; этого сертификата. &lt;br/&gt;

Вероятная причина такого поведения - то что задача обновления сертификатов исполняется от имени &lt;strong&gt;SYSTEM&lt;/strong&gt;. &lt;br/&gt;

Также, почему-то &lt;strong&gt;Citrix Secure Gateway&lt;/strong&gt; отказывался запускаться пока я не дал права на чтение &lt;strong&gt;private key&lt;/strong&gt; учетке, от имени которой я производил установку и конфигурирование. &lt;br/&gt;

&lt;strong&gt;Scheduled Task&lt;/strong&gt; обновления сертификатов я буду запускать раз в неделю от имени учетки, которая устанавливала и конфигурировала &lt;strong&gt;Citrix Secure Gateway&lt;/strong&gt;.
Еще нюанс. У меня &lt;strong&gt;Citrix Secure Gateway&lt;/strong&gt; работает на одном хосте с &lt;strong&gt;Web Interface&lt;/strong&gt;. Соответственно, &lt;strong&gt;Web Interface&lt;/strong&gt; работает на 80 порту, а &lt;strong&gt;Secure Gateway&lt;/strong&gt; на 443. При обновлении сертификата клиент &lt;strong&gt;win-acme&lt;/strong&gt; обновляет (пересоздает) привязку 
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;https://*:443&lt;/pre&gt;

&lt;p&gt;
Я не разобрался как это изменить на уровне &lt;strong&gt;win-acme&lt;/strong&gt;, однако добавил в &lt;strong&gt;scheduled task&lt;/strong&gt; еще один &lt;strong&gt;Action&lt;/strong&gt; для удаления привязки:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;%systemroot%\system32\inetsrv\appcmd.exe set site /site.name:&amp;quot;Default Web Site&amp;quot; /-bindings.[protocol=&amp;#039;https&amp;#039;,bindingInformation=&amp;#039;*:443:&amp;#039;]&lt;/pre&gt;

&lt;p&gt;
В итоге, список &lt;strong&gt;Actions&lt;/strong&gt; в &lt;strong&gt;sheduled task&lt;/strong&gt; у меня такой:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;sc stop &amp;quot;CtxSecGwy&amp;quot;
c:\letsencrypt\letsencrypt.exe --renew --baseuri &amp;quot;https://acme-v01.api.letsencrypt.org/&amp;quot;
timeout /T 15
%systemroot%\system32\inetsrv\appcmd.exe set site /site.name:&amp;quot;Default Web Site&amp;quot; /-bindings.[protocol=&amp;#039;https&amp;#039;,bindingInformation=&amp;#039;*:443:&amp;#039;]
sc start &amp;quot;CtxSecGwy&amp;quot;&lt;/pre&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;\u0420\u0435\u0448\u0435\u043d\u0438\u0435&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0440\u0435\u0448\u0435\u043d\u0438\u0435&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:2,&amp;quot;range&amp;quot;:&amp;quot;994-&amp;quot;} --&gt;</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Mon, 11 Feb 2019 09:13:28 +0000</pubDate>
        </item>
        <item>
            <title>ssl_error_bad_mac_alert_ilo</title>
            <link>https://wiki.autosys.tk/ms_windows_ms_sql/ssl_error_bad_mac_alert_ilo</link>
            <description>
&lt;h1 class=&quot;sectionedit1&quot; id=&quot;проблема&quot;&gt;Проблема&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
При попытке подключиться к странице &lt;strong&gt;iLo&lt;/strong&gt; с помощью &lt;strong&gt;Mozilla Firefox&lt;/strong&gt; появляется ошибка:
&lt;/p&gt;
&lt;div class=&quot;table sectionedit2&quot;&gt;&lt;table class=&quot;inline&quot;&gt;
	&lt;tr class=&quot;row0&quot;&gt;
		&lt;th class=&quot;col0&quot;&gt;&lt;strong&gt;SSL_ERROR_BAD_MAC_ALERT&lt;/strong&gt;&lt;/th&gt;
	&lt;/tr&gt;
&lt;/table&gt;&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;table&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;table&amp;quot;,&amp;quot;secid&amp;quot;:2,&amp;quot;range&amp;quot;:&amp;quot;180-210&amp;quot;} --&gt;
&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u041f\u0440\u043e\u0431\u043b\u0435\u043c\u0430&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0430&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:1,&amp;quot;range&amp;quot;:&amp;quot;1-211&amp;quot;} --&gt;
&lt;h1 class=&quot;sectionedit3&quot; id=&quot;решение&quot;&gt;Решение&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
Скорее всего, дело в том, что сервер не поддерживает новые версии &lt;strong&gt;TLS&lt;/strong&gt; (1.2 и выше). &lt;br/&gt;

Выход - понизить максимальную версию до 1.&lt;br/&gt;

Для этого идем в &lt;strong&gt;about:config&lt;/strong&gt;, ищем параметр &lt;strong&gt;security.tls.version.max&lt;/strong&gt; и даем ему значение 1 (по умолчанию стоит 3).
&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;\u0420\u0435\u0448\u0435\u043d\u0438\u0435&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0440\u0435\u0448\u0435\u043d\u0438\u0435&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:3,&amp;quot;range&amp;quot;:&amp;quot;212-&amp;quot;} --&gt;</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Mon, 11 Feb 2019 09:13:27 +0000</pubDate>
        </item>
        <item>
            <title>taskkill-the-remote-system-must-be-running-windows-2000-or-above</title>
            <link>https://wiki.autosys.tk/ms_windows_ms_sql/taskkill-the-remote-system-must-be-running-windows-2000-or-above</link>
            <description>
&lt;h1 class=&quot;sectionedit1&quot; id=&quot;проблема&quot;&gt;Проблема&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
При попытке удаленно завершить процесс с помощью команды &lt;strong&gt;taskkill&lt;/strong&gt; появляется ошибка:&lt;br/&gt;

&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;ERROR: The remote system must be running Windows 2000 or above.&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u041f\u0440\u043e\u0431\u043b\u0435\u043c\u0430&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0430&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:1,&amp;quot;range&amp;quot;:&amp;quot;1-264&amp;quot;} --&gt;
&lt;h1 class=&quot;sectionedit2&quot; id=&quot;причина&quot;&gt;Причина&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
Неправильно работает WMI на удаленной машине.
&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;\u041f\u0440\u0438\u0447\u0438\u043d\u0430&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u043f\u0440\u0438\u0447\u0438\u043d\u0430&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:1,&amp;quot;secid&amp;quot;:2,&amp;quot;range&amp;quot;:&amp;quot;265-375&amp;quot;} --&gt;
&lt;h1 class=&quot;sectionedit3&quot; id=&quot;решение&quot;&gt;Решение&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
Сначала остановить WMI:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;sc config winmgmt start= disabled
net stop winmgmt /y&lt;/pre&gt;

&lt;p&gt;
Нужно выполнить либо восстановление, либо сброс базы данных WMI (WMI repository):
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;Winmgmt /salvagerepository&lt;/pre&gt;

&lt;p&gt;
либо:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;Winmgmt /resetrepository&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0420\u0435\u0448\u0435\u043d\u0438\u0435&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0440\u0435\u0448\u0435\u043d\u0438\u0435&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:1,&amp;quot;secid&amp;quot;:3,&amp;quot;range&amp;quot;:&amp;quot;376-&amp;quot;} --&gt;</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Mon, 11 Feb 2019 09:13:27 +0000</pubDate>
        </item>
        <item>
            <title>tpautoconnect_no_suitable_client_protocol_found</title>
            <link>https://wiki.autosys.tk/ms_windows_ms_sql/tpautoconnect_no_suitable_client_protocol_found</link>
            <description>
&lt;h1 class=&quot;sectionedit1&quot; id=&quot;проблема&quot;&gt;Проблема&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
На терминальном сервере Windows 2008 R2 с &lt;strong&gt;ThinPrint&lt;/strong&gt; не прописываются принтеры (&lt;strong&gt;Map Additional Printers&lt;/strong&gt;). Перезапуск сервися &lt;strong&gt;ThinPrint&lt;/strong&gt; и повторный запуск &lt;strong&gt;TPAutoconnect.exe&lt;/strong&gt; результата не дает, но появляется сообщение: &lt;strong&gt;No suitable client protocol found&lt;/strong&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;\u041f\u0440\u043e\u0431\u043b\u0435\u043c\u0430&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0430&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:1,&amp;quot;range&amp;quot;:&amp;quot;1-419&amp;quot;} --&gt;
&lt;h1 class=&quot;sectionedit2&quot; id=&quot;причина&quot;&gt;Причина&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
Неправильно работает WMI.
&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;\u041f\u0440\u0438\u0447\u0438\u043d\u0430&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u043f\u0440\u0438\u0447\u0438\u043d\u0430&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:2,&amp;quot;range&amp;quot;:&amp;quot;420-493&amp;quot;} --&gt;
&lt;h1 class=&quot;sectionedit3&quot; id=&quot;решение&quot;&gt;Решение&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
Очистить &lt;strong&gt;WMI Repository&lt;/strong&gt; и переустановить &lt;strong&gt;ThinPrint Terminal Server Extension&lt;/strong&gt;.
Сначала остановить WMI:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;sc config winmgmt start= disabled
net stop winmgmt /y&lt;/pre&gt;

&lt;p&gt;
Выполнить сброс базы данных WMI (WMI repository):
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;Winmgmt /resetrepository&lt;/pre&gt;

&lt;p&gt;
Cнова включить WMI:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;sc config winmgmt start= auto
net start winmgmt /y&lt;/pre&gt;

&lt;p&gt;
Переустановить ThinPrint (удалить и установить снова). При переустановке система попросит перезагружаться, но это можно не делать. В ThinPrint сделать Send Configuration.
&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;\u0420\u0435\u0448\u0435\u043d\u0438\u0435&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0440\u0435\u0448\u0435\u043d\u0438\u0435&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:3,&amp;quot;range&amp;quot;:&amp;quot;494-&amp;quot;} --&gt;</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Mon, 11 Feb 2019 09:13:27 +0000</pubDate>
        </item>
        <item>
            <title>unload_filesystem_driver</title>
            <link>https://wiki.autosys.tk/ms_windows_ms_sql/unload_filesystem_driver</link>
            <description>
&lt;h1 class=&quot;sectionedit1&quot; id=&quot;проблема&quot;&gt;Проблема&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
Иногда возникают проблемы с серверными ОС &lt;strong&gt;Windows&lt;/strong&gt;, которые никак не поддаются диагностике и вынуждают переустанавливать систему. &lt;br/&gt;

Многие такие проблемы связаны с различным ПО, информационно-безопаснической направленности.&lt;br/&gt;

Такое ПО часто использует &lt;strong&gt;File System Filters&lt;/strong&gt; для мониторинга активности файловой системы и в результате наблюдаются необъяснимые глюки.&lt;br/&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;\u041f\u0440\u043e\u0431\u043b\u0435\u043c\u0430&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0430&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:1,&amp;quot;range&amp;quot;:&amp;quot;1-690&amp;quot;} --&gt;
&lt;h1 class=&quot;sectionedit2&quot; id=&quot;решение&quot;&gt;Решение&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
Итак. С чего начать.&lt;br/&gt;

для начала смотрим список установленных драйверов:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;driverquery&lt;/pre&gt;

&lt;p&gt;
или подробнее:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;driverquery /V&lt;/pre&gt;

&lt;p&gt;
тут можно найти подробности об установленных в системе драйверах (фильтры файловой системы являются драйверами).&lt;br/&gt;

Также можно посмотреть на список фильтров отдельно:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;fltmc.exe

Filter Name                     Num Instances    Altitude    Frame
------------------------------  -------------  ------------  -----
MpFilter                                2       328000         0
FsFilter                                1       260200         0
GuardianFileMonitoringService           1       260100.2       0
upmjit                                  2       182400.1       0
luafv                                   1       135000         0
DAFsFilter                              0       134000.3       0&lt;/pre&gt;

&lt;p&gt;
Можно поискать названия фильтров из вывода &lt;strong&gt;fltmc.exe&lt;/strong&gt; в таблице выводимой &lt;strong&gt;driverquery /V&lt;/strong&gt; и понять, к какому ПО относится тот или иной фильтр. &lt;br/&gt;

В данном случае подозрительны &lt;strong&gt;FsFilter&lt;/strong&gt; и &lt;strong&gt;GuardianFileMonitoringService&lt;/strong&gt;.&lt;br/&gt;

Выгрузить подозрительный фильтр можно так:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;fltmc unload FsFilter&lt;/pre&gt;

&lt;p&gt;
или просто отсоединить его от критичного тома:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;Fltmc detach FsFilter C:&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0420\u0435\u0448\u0435\u043d\u0438\u0435&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0440\u0435\u0448\u0435\u043d\u0438\u0435&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:2,&amp;quot;range&amp;quot;:&amp;quot;691-&amp;quot;} --&gt;</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Mon, 11 Feb 2019 09:13:27 +0000</pubDate>
        </item>
        <item>
            <title>upgrade_joomla_1.5.26_to_3.6.5</title>
            <link>https://wiki.autosys.tk/ms_windows_ms_sql/upgrade_joomla_1.5.26_to_3.6.5</link>
            <description>
&lt;p&gt;
Ошибка: Call to undefined method JFormFieldRadio::getRenderer() 
&lt;/p&gt;

&lt;p&gt;
Clean install Joomla 3.4.8 &lt;br/&gt;

Install redmigrator 1.6 &lt;br/&gt;

migrated Joomla 1.5.26 &lt;br/&gt;

uninstall redmigrator &lt;br/&gt;

upgrade to joomla 3.5 &lt;br/&gt;

&lt;/p&gt;

&lt;p&gt;
Everything works
&lt;/p&gt;

&lt;h1 class=&quot;sectionedit1&quot; id=&quot;ubuntu_1604_lamp_php_53_joomla_348&quot;&gt;Ubuntu 16.04 LAMP PHP 5.3 Joomla 3.4.8&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;
&lt;pre class=&quot;code&quot;&gt;sudo apt-get update &amp;amp;&amp;amp; sudo apt-get -y upgrade &amp;amp;&amp;amp; sudo apt-get -y install wget nano software-properties-common
sudo add-apt-repository ppa:sergey-dryabzhinsky/php53
sudo apt-get update
wget http://launchpadlibrarian.net/212189159/libmysqlclient18_5.6.25-0ubuntu1_amd64.deb
sudo apt-get -y install ./libmysqlclient18_5.6.25-0ubuntu1_amd64.deb
sudo apt-get -y install apache2 mysql-server unzip mysql-client libapache2-mod-php53 php53-mod-mysql php53-mod-json php53-mod-curl php53-mod-simplexml &lt;/pre&gt;
&lt;pre class=&quot;code&quot;&gt;sudo rm -f /etc/apache2/mods-enabled/mpm_*
sudo ln -s /etc/apache2/mods-available/mpm_prefork* /etc/apache2/mods-enabled/

sudo a2enmod php53 &amp;amp;&amp;amp; sudo service apache2 restart
wget --no-check-certificate https://downloads.joomla.org/ru/cms/joomla3/3-4-8/joomla_3-4-8-stable-full_package-zip?format=zip
  
mysql -u root -p&lt;/pre&gt;
&lt;pre class=&quot;code&quot;&gt;mysql&amp;gt; create database joomla_db;&lt;/pre&gt;
&lt;pre class=&quot;code&quot;&gt;mysql&amp;gt; GRANT ALL PRIVILEGES ON joomla_db.* TO joomla_user@localhost IDENTIFIED BY &amp;#039;p@$$W0rd&amp;#039;;
Query OK, 0 rows affected (0.00 sec)&lt;/pre&gt;
&lt;pre class=&quot;code&quot;&gt;mysql&amp;gt; FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.00 sec)&lt;/pre&gt;
&lt;pre class=&quot;code&quot;&gt;mysql&amp;gt; exit&lt;/pre&gt;
&lt;pre class=&quot;code&quot;&gt;sudo service apache2 restart ; sudo service mysql restart
sudo chown -R www-data.www-data /var/www/html
sudo chmod -R 755 /var/www/html&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Ubuntu 16.04 LAMP PHP 5.3 Joomla 3.4.8&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;ubuntu_1604_lamp_php_53_joomla_348&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:1,&amp;quot;range&amp;quot;:&amp;quot;225-1517&amp;quot;} --&gt;
&lt;h1 class=&quot;sectionedit2&quot; id=&quot;redmigrator_16&quot;&gt;redMIGRATOR 1.6&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
&lt;a href=&quot;https://joomlanl.nl/downloads/category/8-diversen?download=9:redmigrator-v1-6-0&quot; class=&quot;urlextern&quot; title=&quot;https://joomlanl.nl/downloads/category/8-diversen?download=9:redmigrator-v1-6-0&quot; rel=&quot;ugc nofollow&quot;&gt;https://joomlanl.nl/downloads/category/8-diversen?download=9:redmigrator-v1-6-0&lt;/a&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;redMIGRATOR 1.6&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;redmigrator_16&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:2,&amp;quot;range&amp;quot;:&amp;quot;1518-&amp;quot;} --&gt;</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Mon, 11 Feb 2019 09:13:27 +0000</pubDate>
        </item>
        <item>
            <title>using_cmac_to_automate_vpn_connection_creation</title>
            <link>https://wiki.autosys.tk/ms_windows_ms_sql/using_cmac_to_automate_vpn_connection_creation</link>
            <description>
&lt;p&gt;
Автоматическое создание &lt;strong&gt;VPN&lt;/strong&gt;-подключения с заданными параметрами на клиентах &lt;strong&gt;Windows&lt;/strong&gt;. Эта задача решается с помощью инструмента &lt;strong&gt;CMAK&lt;/strong&gt;.
&lt;/p&gt;

&lt;h1 class=&quot;sectionedit1&quot; id=&quot;установка_cmak&quot;&gt;Установка CMAK&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
&lt;strong&gt;RAS Connection Manager Administration Kit&lt;/strong&gt;
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;Import-Module Servermanager
Add-WindowsFeature CMAK&lt;/pre&gt;

&lt;p&gt;
Windows Administrative Tools →
&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;\u0423\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430 CMAK&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430_cmak&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:1,&amp;quot;range&amp;quot;:&amp;quot;246-&amp;quot;} --&gt;</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Mon, 11 Mar 2019 10:18:32 +0000</pubDate>
        </item>
        <item>
            <title>visual-studio_2017-community-vsto-outlook</title>
            <link>https://wiki.autosys.tk/ms_windows_ms_sql/visual-studio_2017-community-vsto-outlook</link>
            <description>
&lt;h1 class=&quot;sectionedit1&quot; id=&quot;задача&quot;&gt;Задача&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
Нужно реализовать всплывающее окно в &lt;strong&gt;Outlook 2016&lt;/strong&gt;, если число получателей письма больше одного. &lt;br/&gt;

Вот что получилось. &lt;a href=&quot;https://wiki.autosys.tk/_media/ms_windows_ms_sql/multiple_recipients_popup_add-in_src.rar&quot; class=&quot;media mediafile mf_rar&quot; title=&quot;ms_windows_ms_sql:multiple_recipients_popup_add-in_src.rar (1.8 MB)&quot;&gt;Исходники&lt;/a&gt;. &lt;a href=&quot;https://wiki.autosys.tk/_media/ms_windows_ms_sql/multiple_recipient_popup_add-in_setup.rar&quot; class=&quot;media mediafile mf_rar&quot; title=&quot;ms_windows_ms_sql:multiple_recipient_popup_add-in_setup.rar (279.5 KB)&quot;&gt;Инсталлятор&lt;/a&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;\u0417\u0430\u0434\u0430\u0447\u0430&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0437\u0430\u0434\u0430\u0447\u0430&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:1,&amp;quot;range&amp;quot;:&amp;quot;1-413&amp;quot;} --&gt;
&lt;h1 class=&quot;sectionedit2&quot; id=&quot;средства&quot;&gt;Средства&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
&lt;strong&gt;Visual Studio 2017 Community Edition&lt;/strong&gt; + &lt;strong&gt;VSTO&lt;/strong&gt; (Visual Studio Tools for Office). &lt;br/&gt;

&lt;strong&gt;Tools&lt;/strong&gt; → &lt;strong&gt;Get Tools And Features&lt;/strong&gt; → вкладка &lt;strong&gt;Workloads&lt;/strong&gt; → ставим галочку на &lt;strong&gt;Office/Sharepoint Development&lt;/strong&gt;. &lt;br/&gt;

после установки открываем &lt;strong&gt;Visual Studio&lt;/strong&gt;. &lt;br/&gt;

&lt;strong&gt;File&lt;/strong&gt; → &lt;strong&gt;New&lt;/strong&gt; → &lt;strong&gt;Project&lt;/strong&gt; → слева &lt;strong&gt;Installed&lt;/strong&gt; → &lt;strong&gt;Visual C#&lt;/strong&gt; → &lt;strong&gt;Office/Share Point&lt;/strong&gt; → &lt;strong&gt;VSTO AddIns&lt;/strong&gt; → &lt;strong&gt;Outlook 2013 and 2016 Add-in&lt;/strong&gt; &lt;br/&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\u0440\u0435\u0434\u0441\u0442\u0432\u0430&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0441\u0440\u0435\u0434\u0441\u0442\u0432\u0430&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:2,&amp;quot;range&amp;quot;:&amp;quot;414-915&amp;quot;} --&gt;
&lt;h1 class=&quot;sectionedit3&quot; id=&quot;алгоритм&quot;&gt;Алгоритм&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
Для начала я попытаюсь реализовать самый простой вариант. &lt;br/&gt;

При нажатии кнопки &lt;strong&gt;Send&lt;/strong&gt; моя надстойка будет проверять количество реципиентов. Если их больше 1 - показываем диалоговое окно с вопросом “Слать/Не слать”… &lt;br/&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;\u0410\u043b\u0433\u043e\u0440\u0438\u0442\u043c&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:3,&amp;quot;range&amp;quot;:&amp;quot;916-1339&amp;quot;} --&gt;
&lt;h1 class=&quot;sectionedit4&quot; id=&quot;реализация&quot;&gt;Реализация&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
Реализацию нашел в книжке: &lt;a href=&quot;https://books.google.ru/books?id=DnxuBDWM9E4C&amp;amp;pg=PT157&amp;amp;lpg=PT157&amp;amp;dq=VSTO+show+dialog+on+mail+send&amp;amp;source=bl&amp;amp;ots=-JvI4l1OS9&amp;amp;sig=zaVaxedmASxcDgnrEJp6MVWJJxs&amp;amp;hl=ru&amp;amp;sa=X&amp;amp;ved=2ahUKEwiYnJeLo5reAhXDhKYKHZ9ZAhEQ6AEwBHoECAUQAQ#v=onepage&amp;amp;q=VSTO%20show%20dialog%20on%20mail%20send&amp;amp;f=false&quot; class=&quot;urlextern&quot; title=&quot;https://books.google.ru/books?id=DnxuBDWM9E4C&amp;amp;pg=PT157&amp;amp;lpg=PT157&amp;amp;dq=VSTO+show+dialog+on+mail+send&amp;amp;source=bl&amp;amp;ots=-JvI4l1OS9&amp;amp;sig=zaVaxedmASxcDgnrEJp6MVWJJxs&amp;amp;hl=ru&amp;amp;sa=X&amp;amp;ved=2ahUKEwiYnJeLo5reAhXDhKYKHZ9ZAhEQ6AEwBHoECAUQAQ#v=onepage&amp;amp;q=VSTO%20show%20dialog%20on%20mail%20send&amp;amp;f=false&quot; rel=&quot;ugc nofollow&quot;&gt;https://books.google.ru/books?id=DnxuBDWM9E4C&amp;amp;pg=PT157&amp;amp;lpg=PT157&amp;amp;dq=VSTO+show+dialog+on+mail+send&amp;amp;source=bl&amp;amp;ots=-JvI4l1OS9&amp;amp;sig=zaVaxedmASxcDgnrEJp6MVWJJxs&amp;amp;hl=ru&amp;amp;sa=X&amp;amp;ved=2ahUKEwiYnJeLo5reAhXDhKYKHZ9ZAhEQ6AEwBHoECAUQAQ#v=onepage&amp;amp;q=VSTO%20show%20dialog%20on%20mail%20send&amp;amp;f=false&lt;/a&gt; &lt;br/&gt;

&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;using System;
using Outlook = Microsoft.Office.Interop.Outlook;
using System.Windows.Forms;
using Microsoft.Office.Interop.Outlook;

namespace Multiple_Recipients_PopUP
{
    public partial class ThisAddIn
    {
        private void ThisAddIn_Startup(object sender, System.EventArgs e)
        {
            this.Application.ItemSend += new ApplicationEvents_11_ItemSendEventHandler(Application_ItemSend);
        }

        private void ThisAddIn_Shutdown(object sender, System.EventArgs e)
        {
            // Note: Outlook no longer raises this event. If you have code that 
            //    must run when Outlook shuts down, see https://go.microsoft.com/fwlink/?LinkId=506785
        }

        void Application_ItemSend(object Item, ref bool Cancel)
        {
            Outlook.MailItem currentMailItem = Item as Outlook.MailItem;

            if (currentMailItem != null)
            {
                if (currentMailItem.Recipients.Count &amp;gt; 1)
                {
                    string message = &amp;quot;Send mail to {0} people?&amp;quot;;
                    string caption = &amp;quot;More than one recipient...&amp;quot;;
                    MessageBoxButtons buttons = MessageBoxButtons.YesNo;
                    DialogResult result;
                    result = MessageBox.Show(String.Format(message, currentMailItem.Recipients.Count), caption, buttons);

                    if (result == DialogResult.No)
                    {
                        Cancel = true;
                        return;
                    }
                }
            }
        }
        #region VSTO generated code

        /// &amp;lt;summary&amp;gt;
        /// Required method for Designer support - do not modify
        /// the contents of this method with the code editor.
        /// &amp;lt;/summary&amp;gt;
        private void InternalStartup()
        {
            this.Startup += new System.EventHandler(ThisAddIn_Startup);
            this.Shutdown += new System.EventHandler(ThisAddIn_Shutdown);
        }
        
        #endregion
    }
}&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0420\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0440\u0435\u0430\u043b\u0438\u0437\u0430\u0446\u0438\u044f&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:4,&amp;quot;range&amp;quot;:&amp;quot;1340-3722&amp;quot;} --&gt;
&lt;h1 class=&quot;sectionedit5&quot; id=&quot;проверка_того_что_все_работает&quot;&gt;Проверка того, что все работает&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
Жмем &lt;strong&gt;Build&lt;/strong&gt; → &lt;strong&gt;Publish&lt;/strong&gt; … &lt;br/&gt;

Выбираем папку, куда опубликуется наша надстройка и выбираем тип - я выбрал CD-ROM. &lt;br/&gt;

В результате в выбранной папке появится файлик &lt;strong&gt;setup.exe&lt;/strong&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;\u041f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u0442\u043e\u0433\u043e, \u0447\u0442\u043e \u0432\u0441\u0435 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0430_\u0442\u043e\u0433\u043e_\u0447\u0442\u043e_\u0432\u0441\u0435_\u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:1,&amp;quot;secid&amp;quot;:5,&amp;quot;range&amp;quot;:&amp;quot;3723-4229&amp;quot;} --&gt;
&lt;h1 class=&quot;sectionedit6&quot; id=&quot;развертывание&quot;&gt;Развертывание&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
&lt;a href=&quot;https://docs.microsoft.com/en-us/previous-versions/office/developer/office-2007/cc563937(v=office.12)#creating-a-basic-installer&quot; class=&quot;urlextern&quot; title=&quot;https://docs.microsoft.com/en-us/previous-versions/office/developer/office-2007/cc563937(v=office.12)#creating-a-basic-installer&quot; rel=&quot;ugc nofollow&quot;&gt;Creating a Basic Installer for VSTO project&lt;/a&gt; &lt;br/&gt;

Разворачивать полученную надстройку можно либо с помощью &lt;strong&gt;Cick-Once&lt;/strong&gt;, либо с помощью &lt;strong&gt;Microsoft Installer&lt;/strong&gt;.
Как написано &lt;a href=&quot;https://docs.microsoft.com/ru-ru/visualstudio/vsto/deploying-an-office-solution-by-using-windows-installer?view=vs-2017#Obtain&quot; class=&quot;urlextern&quot; title=&quot;https://docs.microsoft.com/ru-ru/visualstudio/vsto/deploying-an-office-solution-by-using-windows-installer?view=vs-2017#Obtain&quot; rel=&quot;ugc nofollow&quot;&gt;тут&lt;/a&gt; &lt;strong&gt;Cick-Once&lt;/strong&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;\u0420\u0430\u0437\u0432\u0435\u0440\u0442\u044b\u0432\u0430\u043d\u0438\u0435&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0440\u0430\u0437\u0432\u0435\u0440\u0442\u044b\u0432\u0430\u043d\u0438\u0435&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:1,&amp;quot;secid&amp;quot;:6,&amp;quot;range&amp;quot;:&amp;quot;4230-5049&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit7&quot; id=&quot;развертывание_с_помощью_visual_studio_installer&quot;&gt;Развертывание с помощью Visual Studio Installer&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
Скачиваем и устанавливаем &lt;a href=&quot;https://marketplace.visualstudio.com/items?itemName=visualstudioclient.MicrosoftVisualStudio2017InstallerProjects&quot; class=&quot;urlextern&quot; title=&quot;https://marketplace.visualstudio.com/items?itemName=visualstudioclient.MicrosoftVisualStudio2017InstallerProjects&quot; rel=&quot;ugc nofollow&quot;&gt;Microsoft Visual Studio 2017 Installer Projects&lt;/a&gt; &lt;br/&gt;

В &lt;strong&gt;Solution Explorer&lt;/strong&gt; жмакаем правой кнопкой по солюшену и создаем новый проект -  &lt;strong&gt;Add → New Project… → Other Project Types → Visual Studio Installer → Setup Project&lt;/strong&gt;. &lt;br/&gt;

Нам надо добавить файлы надстройки и записи в реестре. &lt;br/&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;\u0420\u0430\u0437\u0432\u0435\u0440\u0442\u044b\u0432\u0430\u043d\u0438\u0435 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e Visual Studio Installer&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0440\u0430\u0437\u0432\u0435\u0440\u0442\u044b\u0432\u0430\u043d\u0438\u0435_\u0441_\u043f\u043e\u043c\u043e\u0449\u044c\u044e_visual_studio_installer&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:1,&amp;quot;secid&amp;quot;:7,&amp;quot;range&amp;quot;:&amp;quot;5050-5684&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit8&quot; id=&quot;добавляем_файлы&quot;&gt;Добавляем файлы&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
В &lt;strong&gt;Solution Explorer&lt;/strong&gt; жмакаем правой кнопкой по проекту → &lt;strong&gt;Add → Project Output…&lt;/strong&gt; &lt;br/&gt;

Там в поле &lt;strong&gt;Project&lt;/strong&gt; выбран наш единственный проект, а из списка выбираем &lt;strong&gt;Primary Output&lt;/strong&gt;. &lt;br/&gt;

В результате в проект инсталлятора добавится &lt;strong&gt;dll&lt;/strong&gt; нашей надстройки и необходимые зависимости. &lt;br/&gt;

Кроме того, надо добавить файлы &lt;strong&gt;*.vsto&lt;/strong&gt; и &lt;strong&gt;*.manifest&lt;/strong&gt;, которые лежат в папке с собранной надстройкой. &lt;br/&gt;

В &lt;strong&gt;Solution Explorer&lt;/strong&gt; жмакаем правой кнопкой по проекту → &lt;strong&gt;Add → File…&lt;/strong&gt; и находим файлы &lt;strong&gt;*.vsto&lt;/strong&gt; и &lt;strong&gt;*.manifest&lt;/strong&gt; из папки &lt;strong&gt;bin\Release&lt;/strong&gt;. &lt;br/&gt;

В &lt;strong&gt;Solution Explorer&lt;/strong&gt; жмакаем правой кнопкой по проекту → &lt;strong&gt;View → File System&lt;/strong&gt;. &lt;br/&gt;

Кликаем по &lt;strong&gt;Application Folder&lt;/strong&gt; и справа в строке &lt;strong&gt;DefaultLocation&lt;/strong&gt;указываем путь установки. Обычно это &lt;strong&gt;[ProgramFilesFolder][Manufacturer]\[ProductName]&lt;/strong&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;\u0414\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u0444\u0430\u0439\u043b\u044b&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c_\u0444\u0430\u0439\u043b\u044b&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:1,&amp;quot;secid&amp;quot;:8,&amp;quot;range&amp;quot;:&amp;quot;5685-7039&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit9&quot; id=&quot;добавляем_записи_в_реестр&quot;&gt;Добавляем записи в реестр&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
В &lt;strong&gt;Solution Explorer&lt;/strong&gt; жмакаем правой кнопкой по проекту → &lt;strong&gt;View → Registry&lt;/strong&gt;. 
Дальше делаем в соответствии с этим - &lt;a href=&quot;https://docs.microsoft.com/ru-ru/visualstudio/vsto/registry-entries-for-vsto-add-ins?view=vs-2017&quot; class=&quot;urlextern&quot; title=&quot;https://docs.microsoft.com/ru-ru/visualstudio/vsto/registry-entries-for-vsto-add-ins?view=vs-2017&quot; rel=&quot;ugc nofollow&quot;&gt;Registry entries for VSTO Add-ins&lt;/a&gt; &lt;br/&gt;

В окошке &lt;strong&gt;Registry On target Machine&lt;/strong&gt; добавляем ключи: &lt;strong&gt;HKLM\Software\Microsoft\Office\Outlook\Addins\Multiple_Recipients_PopUP&lt;/strong&gt; &lt;br/&gt;

И добавляем описанные параметры. &lt;br/&gt;

Путь к манифесту задаем как &lt;strong&gt;[ProgramFilesFolder][Manufacturer]\[ProductName]\…&lt;/strong&gt; &lt;br/&gt;

В качестве манифеста указываем файл &lt;strong&gt;vsto&lt;/strong&gt; из корня. На сборочной машине у меня файл реестра был указан как &lt;strong&gt;filename.vsto|vstolocal&lt;/strong&gt;. При разворачивании  &lt;strong&gt;|vstolocal&lt;/strong&gt; не нужен. Путь к манифесту указываем без &lt;strong&gt;|vstolocal&lt;/strong&gt;.&lt;br/&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;\u0414\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c \u0437\u0430\u043f\u0438\u0441\u0438 \u0432 \u0440\u0435\u0435\u0441\u0442\u0440&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0435\u043c_\u0437\u0430\u043f\u0438\u0441\u0438_\u0432_\u0440\u0435\u0435\u0441\u0442\u0440&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:1,&amp;quot;secid&amp;quot;:9,&amp;quot;range&amp;quot;:&amp;quot;7040-8324&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit10&quot; id=&quot;выбираем_установку_для_всех_пользователей&quot;&gt;Выбираем установку для всех пользователей&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
В &lt;strong&gt;Solution Explorer&lt;/strong&gt; кликаем по проекту и справа в окне свойств меняем значение поля &lt;strong&gt;InstallAllUsers&lt;/strong&gt; на &lt;strong&gt;True&lt;/strong&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;\u0412\u044b\u0431\u0438\u0440\u0430\u0435\u043c \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0443 \u0434\u043b\u044f \u0432\u0441\u0435\u0445 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0432\u044b\u0431\u0438\u0440\u0430\u0435\u043c_\u0443\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0443_\u0434\u043b\u044f_\u0432\u0441\u0435\u0445_\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:1,&amp;quot;secid&amp;quot;:10,&amp;quot;range&amp;quot;:&amp;quot;8325-8592&amp;quot;} --&gt;
&lt;h1 class=&quot;sectionedit11&quot; id=&quot;публикация_с_помощью_политик_gpo&quot;&gt;Публикация с помощью политик GPO&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
&lt;a href=&quot;https://www.add-in-express.com/creating-addins-blog/2011/02/25/deploying-peruser-office-extensions-group-policy/&quot; class=&quot;urlextern&quot; title=&quot;https://www.add-in-express.com/creating-addins-blog/2011/02/25/deploying-peruser-office-extensions-group-policy/&quot; rel=&quot;ugc nofollow&quot;&gt;https://www.add-in-express.com/creating-addins-blog/2011/02/25/deploying-peruser-office-extensions-group-policy/&lt;/a&gt; &lt;br/&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;\u041f\u0443\u0431\u043b\u0438\u043a\u0430\u0446\u0438\u044f \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u043f\u043e\u043b\u0438\u0442\u0438\u043a GPO&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u043f\u0443\u0431\u043b\u0438\u043a\u0430\u0446\u0438\u044f_\u0441_\u043f\u043e\u043c\u043e\u0449\u044c\u044e_\u043f\u043e\u043b\u0438\u0442\u0438\u043a_gpo&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:1,&amp;quot;secid&amp;quot;:11,&amp;quot;range&amp;quot;:&amp;quot;8593-8781&amp;quot;} --&gt;
&lt;h1 class=&quot;sectionedit12&quot; id=&quot;тестирование_и_отладка&quot;&gt;Тестирование и отладка&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
В моем случае - после того как я проверил работу моей надстройки на своей машине, собрал инсталлятор и установил надстройку на целевой сервер она нормально появилась в &lt;strong&gt;Outlook 2016&lt;/strong&gt; у пользователя, но запускаться отказывалась. &lt;br/&gt;

Для того, чтобы посмотреть какую ошибку выдает надстройка при запуске нужно:
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt;
 открыть окошко cmd и задать переменной &lt;strong&gt;VSTO_SUPPRESSDISPLAYALERTS&lt;/strong&gt; значение &lt;strong&gt;0&lt;/strong&gt;
&lt;/div&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;pre class=&quot;code&quot;&gt;set VSTO_SUPPRESSDISPLAYALERTS=0&lt;/pre&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt;
Запустить &lt;strong&gt;Outlook&lt;/strong&gt; из этого окошка.
&lt;/div&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;pre class=&quot;code&quot;&gt;C:\Program Files (x86)\Microsoft Office\Office16\OUTLOOK.EXE&lt;/pre&gt;

&lt;p&gt;
Затем в &lt;strong&gt;Outlook → File → Options → Add-Ins → Manage COM Add-ins Go…&lt;/strong&gt; → ставим галочку на оснастке и жмем &lt;strong&gt;OK&lt;/strong&gt;. В результате появится окно с сообщением и кнопкой &lt;strong&gt;Details&lt;/strong&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;\u0422\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0438 \u043e\u0442\u043b\u0430\u0434\u043a\u0430&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435_\u0438_\u043e\u0442\u043b\u0430\u0434\u043a\u0430&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:1,&amp;quot;secid&amp;quot;:12,&amp;quot;range&amp;quot;:&amp;quot;8782-&amp;quot;} --&gt;</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Mon, 11 Feb 2019 09:13:27 +0000</pubDate>
        </item>
        <item>
            <title>visual_basic_6.0_runtime_in_windows-10</title>
            <link>https://wiki.autosys.tk/ms_windows_ms_sql/visual_basic_6.0_runtime_in_windows-10</link>
            <description>
&lt;p&gt;
&lt;strong&gt;Microsoft&lt;/strong&gt; утверждает, что &lt;strong&gt;Visual basic 6.0&lt;/strong&gt; нормально устанавливается и работает на &lt;strong&gt;Windows 10&lt;/strong&gt; - &lt;a href=&quot;https://docs.microsoft.com/en-us/previous-versions/visualstudio/visual-basic-6/visual-basic-6-support-policy?view=vs-2019&quot; class=&quot;urlextern&quot; title=&quot;https://docs.microsoft.com/en-us/previous-versions/visualstudio/visual-basic-6/visual-basic-6-support-policy?view=vs-2019&quot; rel=&quot;ugc nofollow&quot;&gt;https://docs.microsoft.com/en-us/previous-versions/visualstudio/visual-basic-6/visual-basic-6-support-policy?view=vs-2019&lt;/a&gt; &lt;br/&gt;

&lt;strong&gt;Visual Basic 6.0 Runtime&lt;/strong&gt; для &lt;strong&gt;Windows 10&lt;/strong&gt; - &lt;a href=&quot;https://docs.microsoft.com/en-us/previous-versions/visualstudio/visual-basic-6/visual-basic-6-support-policy?view=vs-2019&quot; class=&quot;urlextern&quot; title=&quot;https://docs.microsoft.com/en-us/previous-versions/visualstudio/visual-basic-6/visual-basic-6-support-policy?view=vs-2019&quot; rel=&quot;ugc nofollow&quot;&gt;https://docs.microsoft.com/en-us/previous-versions/visualstudio/visual-basic-6/visual-basic-6-support-policy?view=vs-2019&lt;/a&gt; &lt;br/&gt;

&lt;strong&gt;Visual Basic 6.0 Common Control&lt;/strong&gt;s (comctl32.ocx, mscomctl.ocx) для &lt;strong&gt;Windows 10&lt;/strong&gt; - &lt;a href=&quot;https://www.microsoft.com/en-us/download/confirmation.aspx?id=10019&quot; class=&quot;urlextern&quot; title=&quot;https://www.microsoft.com/en-us/download/confirmation.aspx?id=10019&quot; rel=&quot;ugc nofollow&quot;&gt;https://www.microsoft.com/en-us/download/confirmation.aspx?id=10019&lt;/a&gt;
&lt;/p&gt;
</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Mon, 13 May 2019 12:43:17 +0000</pubDate>
        </item>
        <item>
            <title>web_gui_for_powershell_scripts</title>
            <link>https://wiki.autosys.tk/ms_windows_ms_sql/web_gui_for_powershell_scripts</link>
            <description>
&lt;h1 class=&quot;sectionedit1&quot; id=&quot;powershell_using_aspnet_application&quot;&gt;PowerShell using ASP.NET application&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
У меня получилось сделать все что нужно (запустить от имени пользователя оболочку powershell, передать ей скрипт и получить обратно консольный вывод с помощью информации из этих ссылок): &lt;br/&gt;

Описано расширение стандартного класса &lt;strong&gt;Process&lt;/strong&gt; и его примемение: &lt;a href=&quot;https://odetocode.com/blogs/scott/archive/2004/10/29/createprocessasuser.aspx&quot; class=&quot;urlextern&quot; title=&quot;https://odetocode.com/blogs/scott/archive/2004/10/29/createprocessasuser.aspx&quot; rel=&quot;ugc nofollow&quot;&gt;https://odetocode.com/blogs/scott/archive/2004/10/29/createprocessasuser.aspx&lt;/a&gt; &lt;br/&gt;

Вот тут написано как вызывать эти методы: &lt;a href=&quot;http://rsdn.org/forum/dotnet/3287068.1&quot; class=&quot;urlextern&quot; title=&quot;http://rsdn.org/forum/dotnet/3287068.1&quot; rel=&quot;ugc nofollow&quot;&gt;http://rsdn.org/forum/dotnet/3287068.1&lt;/a&gt; &lt;br/&gt;

&lt;br/&gt;

Если необходимо, чтобы &lt;strong&gt;Application Pool&lt;/strong&gt; работал в &lt;strong&gt;Integrated&lt;/strong&gt;, то вызов методов, которые запускают процесс, нужно обертывать в &lt;strong&gt;using (WindowsImpersonationContext wic = clientId.Impersonate())&lt;/strong&gt;. Об этом рассказано тут: &lt;a href=&quot;https://stackoverflow.com/questions/12966286/impersonate-domain-user-with-integrated-pipeline&quot; class=&quot;urlextern&quot; title=&quot;https://stackoverflow.com/questions/12966286/impersonate-domain-user-with-integrated-pipeline&quot; rel=&quot;ugc nofollow&quot;&gt;https://stackoverflow.com/questions/12966286/impersonate-domain-user-with-integrated-pipeline&lt;/a&gt; .&lt;br/&gt;

&lt;br/&gt;

Например, вот обработчик нажатия кнопки, который запускает &lt;strong&gt;powershell&lt;/strong&gt;-скрипт от имени авторизованного пользователя:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;protected void ExecuteCode_Click(object sender, EventArgs e)
        {

            ResultBox.Text = string.Empty;

            var current = System.Security.Principal.WindowsIdentity.GetCurrent();
            WindowsIdentity clientId = (WindowsIdentity)User.Identity;

            using (WindowsImpersonationContext wic = clientId.Impersonate())
            {
                UserSpecificProcess myProcess = new UserSpecificProcess();
                myProcess.StartInfo.FileName = &amp;quot;powershell.exe&amp;quot;;
                myProcess.StartInfo.Arguments = @&amp;quot;-File c:\temp\test.ps1&amp;quot;;
                myProcess.StartInfo.UseShellExecute = false;
                myProcess.StartInfo.CreateNoWindow = false;
                myProcess.StartInfo.WorkingDirectory = @&amp;quot;c:\temp\&amp;quot;;
                myProcess.StartAsUser();
                StreamReader output = myProcess.StandardOutput;

                string line;
                StringBuilder builder = new StringBuilder();
                while ((line = output.ReadLine()) != null)
                {
                    // We use a string builder ton create our result text
                    builder.Append(line + &amp;quot;\r\n&amp;quot;);
                }

                // Encode the string in HTML (prevent security issue with &amp;#039;dangerous&amp;#039; caracters like &amp;lt; &amp;gt;
                ResultBox.Text = Server.HtmlEncode(builder.ToString());
            }
        }&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;PowerShell using ASP.NET application&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;powershell_using_aspnet_application&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:1,&amp;quot;range&amp;quot;:&amp;quot;1-2743&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit2&quot; id=&quot;пример_aspnet-приложения_запускающего_скрипт_от_имени_залогиненного_пользователя&quot;&gt;Пример ASP.NET-приложения, запускающего скрипт от имени залогиненного пользователя&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
В итоге вот что у меня получилось. &lt;a href=&quot;https://wiki.autosys.tk/_media/ms_windows_ms_sql/powershellexecution_source_solution.rar&quot; class=&quot;media mediafile mf_rar&quot; title=&quot;ms_windows_ms_sql:powershellexecution_source_solution.rar (9.6 KB)&quot;&gt;Солюшн для работы в VisualStudio 2017&lt;/a&gt; и &lt;a href=&quot;https://wiki.autosys.tk/_media/ms_windows_ms_sql/powershellexecution_published_app.rar&quot; class=&quot;media mediafile mf_rar&quot; title=&quot;ms_windows_ms_sql:powershellexecution_published_app.rar (6.7 KB)&quot;&gt;опубликованное приложение&lt;/a&gt;, которое имеет кнопку для запуска &lt;strong&gt;powershell&lt;/strong&gt;-скрипта (c:\temp\test.ps1) и окошко для вывода результатов. &lt;br/&gt;

Протестировано на &lt;strong&gt;IIS&lt;/strong&gt; под &lt;strong&gt;Windows Server 2012R2&lt;/strong&gt;. &lt;strong&gt;Application pool .NET 4&lt;/strong&gt; работает в &lt;strong&gt;Integrated Mode&lt;/strong&gt;, от имени &lt;strong&gt;Local System&lt;/strong&gt;. &lt;br/&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;\u041f\u0440\u0438\u043c\u0435\u0440 ASP.NET-\u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f, \u0437\u0430\u043f\u0443\u0441\u043a\u0430\u044e\u0449\u0435\u0433\u043e \u0441\u043a\u0440\u0438\u043f\u0442 \u043e\u0442 \u0438\u043c\u0435\u043d\u0438 \u0437\u0430\u043b\u043e\u0433\u0438\u043d\u0435\u043d\u043d\u043e\u0433\u043e \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u043f\u0440\u0438\u043c\u0435\u0440_aspnet-\u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u044f_\u0437\u0430\u043f\u0443\u0441\u043a\u0430\u044e\u0449\u0435\u0433\u043e_\u0441\u043a\u0440\u0438\u043f\u0442_\u043e\u0442_\u0438\u043c\u0435\u043d\u0438_\u0437\u0430\u043b\u043e\u0433\u0438\u043d\u0435\u043d\u043d\u043e\u0433\u043e_\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:1,&amp;quot;secid&amp;quot;:2,&amp;quot;range&amp;quot;:&amp;quot;2744-3794&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit3&quot; id=&quot;iis_impersonation_и_делегирование_прав_доступа_к_ресурсам&quot;&gt;IIS Impersonation и делегирование прав доступа к ресурсам&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
На эту тему написано очень много. Обычно это именуется &lt;strong&gt;impersonation double hop issue&lt;/strong&gt;. Имеется в виду следующее. &lt;br/&gt;

Когда пользователь успешно имперсонирован (олицетворен) в приложении &lt;strong&gt;ASP.NET&lt;/strong&gt;, то он получает доступ к ресурсам &lt;strong&gt;СЕРВЕРА&lt;/strong&gt;, на котором работает приложение от своего имени. То есть если он обращается к файлам или &lt;strong&gt;SQL&lt;/strong&gt;-базе, размещенной на этом сервере, то всё работает. Однако, если приложение пытается получить доступ к ресурсам, размещенным не на этом сервере, а например к файлам на сетевом ресурсе или &lt;strong&gt;SQL&lt;/strong&gt;-базе на другом сервере, то ничего не выйдет. &lt;br/&gt;

Для того, чтобы все работало, необходимо, чтобы СЕРВЕР на котором исполняется приложение имел право что-то делать от имени пользователя, то есть - представлять пользователя. Это называется делегированием. Пользователь, аутентифицированный на сервере приложений &lt;strong&gt;ASP.NET&lt;/strong&gt;, делегирует свои права серверу. &lt;br/&gt;

Права серверу на делегирование пользователей выдаются с помощью оснастки &lt;strong&gt;Active Directory Users and Computers&lt;/strong&gt;. Нужно открыть свойства учетной записи сервера, на котором исполняется приложение &lt;strong&gt;ASP.NET&lt;/strong&gt;, перейти на вкладку &lt;strong&gt;Delegation&lt;/strong&gt; и включить делегирование. &lt;br/&gt;

При этом, если приложение &lt;strong&gt;ASP.NET&lt;/strong&gt; запускает локальный процесс на web-сервере (например - &lt;strong&gt;powershell&lt;/strong&gt;), который осуществляет доступ к нелокальным ресурсам (например подключается к экземплярам &lt;strong&gt;Microsoft Exchange&lt;/strong&gt; или запрашивает данные &lt;strong&gt;Active Directory&lt;/strong&gt;), то делегирование не требуется. Достаточно, чтобы  имперсонированный пользователь был авторизован методом &lt;strong&gt;Kerberos&lt;/strong&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;IIS Impersonation \u0438 \u0434\u0435\u043b\u0435\u0433\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u043f\u0440\u0430\u0432 \u0434\u043e\u0441\u0442\u0443\u043f\u0430 \u043a \u0440\u0435\u0441\u0443\u0440\u0441\u0430\u043c&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;iis_impersonation_\u0438_\u0434\u0435\u043b\u0435\u0433\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435_\u043f\u0440\u0430\u0432_\u0434\u043e\u0441\u0442\u0443\u043f\u0430_\u043a_\u0440\u0435\u0441\u0443\u0440\u0441\u0430\u043c&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:1,&amp;quot;secid&amp;quot;:3,&amp;quot;range&amp;quot;:&amp;quot;3795-6635&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit4&quot; id=&quot;когда_windows_authentication_и_делегирование_работает_на_localhost_но_не_работает_на_fqdn&quot;&gt;Когда Windows Authentication и делегирование работает на **localhost**, но не работает на FQDN&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Еще один важный момент. &lt;br/&gt;

Часто можно наблюдать ситуацию, когда при доступе к &lt;strong&gt;ASP.NET&lt;/strong&gt;-приложению непосредственно с самого сервера по адресу &lt;strong&gt;localhost&lt;/strong&gt; все работает. И прозрачная аутентификация и делегирование. Однако, если попытаться зайти на страничку приложения по &lt;strong&gt;FQDN&lt;/strong&gt;-имени сервера (даже с самого этого сервера), то страничка запрашивает имя пользователя и пароль (хотя при заходе по &lt;strong&gt;localhost&lt;/strong&gt; работает прозрачная аутентификация), нормально аутентифицирует пользователя и работает имперсонация, однако делегирование не работает и доступ к ресурсам вне &lt;strong&gt;web&lt;/strong&gt;-сервера запрещен. &lt;br/&gt;

Это происходит из-за того, что &lt;strong&gt;FQDN&lt;/strong&gt;-имя сервера не внесено в список &lt;strong&gt;Intranet&lt;/strong&gt; (локальных) сайтов в конфигурации браузера. В результате, браузер аутентифицирует пользователя не по протоколу &lt;strong&gt;Kerberos&lt;/strong&gt;, а по протоколу &lt;strong&gt;NTLM&lt;/strong&gt;, а протокол &lt;strong&gt;NTLM&lt;/strong&gt; не позволяет делегирование. Об этом мне удалось прочитать тут: &lt;a href=&quot;http://www.justskins.com/forums/iis-and-fqdn-authentication-183966.html#&quot; class=&quot;urlextern&quot; title=&quot;http://www.justskins.com/forums/iis-and-fqdn-authentication-183966.html#&quot; rel=&quot;ugc nofollow&quot;&gt;http://www.justskins.com/forums/iis-and-fqdn-authentication-183966.html#&lt;/a&gt; &lt;br/&gt;

А вот тут подробнее от &lt;strong&gt;Microsoft&lt;/strong&gt;: &lt;a href=&quot;https://blogs.msdn.microsoft.com/besidethepoint/2010/05/08/double-hop-authentication-why-ntlm-fails-and-kerberos-works/&quot; class=&quot;urlextern&quot; title=&quot;https://blogs.msdn.microsoft.com/besidethepoint/2010/05/08/double-hop-authentication-why-ntlm-fails-and-kerberos-works/&quot; rel=&quot;ugc nofollow&quot;&gt;https://blogs.msdn.microsoft.com/besidethepoint/2010/05/08/double-hop-authentication-why-ntlm-fails-and-kerberos-works/&lt;/a&gt; &lt;br/&gt;

Вот тут: &lt;a href=&quot;https://blogs.msdn.microsoft.com/friis/2013/01/08/asp-net-authentication-test-page/&quot; class=&quot;urlextern&quot; title=&quot;https://blogs.msdn.microsoft.com/friis/2013/01/08/asp-net-authentication-test-page/&quot; rel=&quot;ugc nofollow&quot;&gt;https://blogs.msdn.microsoft.com/friis/2013/01/08/asp-net-authentication-test-page/&lt;/a&gt; &lt;br/&gt;

приведен пример тестовой страницы, которая показывает детальную информацию о методе аутентификации текущего пользователя. Утащил к себе - &lt;a href=&quot;https://wiki.autosys.tk/_media/ms_windows_ms_sql/authpage.zip&quot; class=&quot;media mediafile mf_zip&quot; title=&quot;ms_windows_ms_sql:authpage.zip (15.2 KB)&quot;&gt; authpage.zip&lt;/a&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;\u041a\u043e\u0433\u0434\u0430 Windows Authentication \u0438 \u0434\u0435\u043b\u0435\u0433\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u043d\u0430 **localhost**, \u043d\u043e \u043d\u0435 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 \u043d\u0430 FQDN&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u043a\u043e\u0433\u0434\u0430_windows_authentication_\u0438_\u0434\u0435\u043b\u0435\u0433\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435_\u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442_\u043d\u0430_localhost_\u043d\u043e_\u043d\u0435_\u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442_\u043d\u0430_fqdn&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:1,&amp;quot;secid&amp;quot;:4,&amp;quot;range&amp;quot;:&amp;quot;6636-9039&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit5&quot; id=&quot;настройки_браузеров_для_корректной_работы_имперсонации&quot;&gt;Настройки браузеров для корректной работы имперсонации&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 \u0431\u0440\u0430\u0443\u0437\u0435\u0440\u043e\u0432 \u0434\u043b\u044f \u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u043e\u0439 \u0440\u0430\u0431\u043e\u0442\u044b \u0438\u043c\u043f\u0435\u0440\u0441\u043e\u043d\u0430\u0446\u0438\u0438&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438_\u0431\u0440\u0430\u0443\u0437\u0435\u0440\u043e\u0432_\u0434\u043b\u044f_\u043a\u043e\u0440\u0440\u0435\u043a\u0442\u043d\u043e\u0439_\u0440\u0430\u0431\u043e\u0442\u044b_\u0438\u043c\u043f\u0435\u0440\u0441\u043e\u043d\u0430\u0446\u0438\u0438&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:1,&amp;quot;secid&amp;quot;:5,&amp;quot;range&amp;quot;:&amp;quot;9040-9153&amp;quot;} --&gt;
&lt;h4 class=&quot;sectionedit6&quot; id=&quot;internet_explorer&quot;&gt;Internet Explorer&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Параметр настроек &lt;strong&gt;Internet Explorer&lt;/strong&gt;, который предписывает использовать &lt;strong&gt;KERBEROS&lt;/strong&gt; находится в  &lt;strong&gt;Internet Explorer Optinons → Security → Custom Level&lt;/strong&gt; и называется &lt;strong&gt;Automatic logon with current user name and password&lt;/strong&gt;. Если он включен, то первым для аутентификации используется KERBEROS, а в случае неудачи - NTLM. Важно знать, что включенный параметр &lt;strong&gt;Prompt for user name and password&lt;/strong&gt; разрешает аутентифицировать пользователей только по NTLM.
&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;Internet Explorer&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;internet_explorer&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:1,&amp;quot;secid&amp;quot;:6,&amp;quot;range&amp;quot;:&amp;quot;9154-9848&amp;quot;} --&gt;
&lt;h4 class=&quot;sectionedit7&quot; id=&quot;firefox&quot;&gt;Firefox&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
Если для доступа к приложению используется &lt;strong&gt;Firefox&lt;/strong&gt;, то для того, чтобы он аутентифицировался по &lt;strong&gt;KERBROS&lt;/strong&gt; адрес сайта приложения нужно добавить в доверенные. Для этого открыввем в &lt;strong&gt;Firefox&lt;/strong&gt; страницу &lt;strong&gt;about:config&lt;/strong&gt;. В поле поиска вводим &lt;strong&gt;negotiate&lt;/strong&gt;. Дважды кликаем по параметру &lt;strong&gt;network.negotiate-auth.trusted-uris&lt;/strong&gt; и добавляем туда адрес сайта (например - &lt;strong&gt;example.com&lt;/strong&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;Firefox&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;firefox&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:1,&amp;quot;secid&amp;quot;:7,&amp;quot;range&amp;quot;:&amp;quot;9849-10469&amp;quot;} --&gt;
&lt;h4 class=&quot;sectionedit8&quot; id=&quot;chrome&quot;&gt;Chrome&lt;/h4&gt;
&lt;div class=&quot;level4&quot;&gt;

&lt;p&gt;
&lt;strong&gt;Chrome&lt;/strong&gt; в &lt;strong&gt;windows&lt;/strong&gt; использует настройки &lt;strong&gt;Internet Explorer&lt;/strong&gt;. &lt;br/&gt;

В других ОС передать Chrome список доверенных сайтов можно с помощью аргумента командной строки: 
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;--auth-negotiate-delegate-whitelist=&amp;quot;*.adexample.pingidentity.com&amp;quot;&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Chrome&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;chrome&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:1,&amp;quot;secid&amp;quot;:8,&amp;quot;range&amp;quot;:&amp;quot;10470-10834&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit9&quot; id=&quot;чтобы_в_приложении_aspnet_работала_сквозная_windows-аутентификация_имперсонация_и_делегирование&quot;&gt;Чтобы в приложении ASP.NET работала сквозная Windows-аутентификация, имперсонация и делегирование&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
В итоге. Чтобы в приложении &lt;strong&gt;ASP.NET&lt;/strong&gt; работала сквозная &lt;strong&gt;Windows&lt;/strong&gt;-аутентификация, имперсонация и делегирование необходимо соблюдение условий:
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt;
 Для приложения вцелом (&lt;strong&gt;Classic Application Pool mode&lt;/strong&gt;) или для куска кода (&lt;strong&gt;Integrated Application Pool mode&lt;/strong&gt;) включена имперсонация.
&lt;/div&gt;&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt;
 Для приложения отключена аутентификация анонимных пользователей, потому, что &lt;strong&gt;IIS&lt;/strong&gt; применяет первый успешный метод аутентификации.
&lt;/div&gt;&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt;
 Принудительно включен &lt;strong&gt;Kerberos&lt;/strong&gt; (&lt;strong&gt;Windows Authentication&lt;/strong&gt; → &lt;strong&gt;Providers&lt;/strong&gt; (справа) оставитьтолько &lt;strong&gt;Negotiate:Kerberos&lt;/strong&gt;)
&lt;/div&gt;&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt;
 Если адрес к которому обращаются пользователи отличается от имени web-сервера, то для учетки web-сервера должен быть корректно прописан &lt;strong&gt;SPN&lt;/strong&gt;. Толково написано тут: &lt;a href=&quot;http://winitpro.ru/index.php/2016/05/18/nastrojka-kerberos-avtorizacii-na-sajte-iis/&quot; class=&quot;urlextern&quot; title=&quot;http://winitpro.ru/index.php/2016/05/18/nastrojka-kerberos-avtorizacii-na-sajte-iis/&quot; rel=&quot;ugc nofollow&quot;&gt;http://winitpro.ru/index.php/2016/05/18/nastrojka-kerberos-avtorizacii-na-sajte-iis/&lt;/a&gt;
&lt;/div&gt;&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt;
 Для учетной записи web-сервера разрешено делегирование.
&lt;/div&gt;&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt;
 Адрес сайта, на котором размещено приложение добавлен в список &lt;strong&gt;Интранет&lt;/strong&gt; сайтов.
&lt;/div&gt;&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;
В противном случае - не будет корректно работать делегирование и будут ошибки при доступе к сетевым ресурсам и &lt;strong&gt;Active Directory&lt;/strong&gt; (ошибки типа &lt;strong&gt;Exception calling “GetComputerSite” with “0” argument(s): “An operations error occurred.”&lt;/strong&gt; &lt;br/&gt;

Траблшутинг аутентификации Kerberos толково описан тут: &lt;a href=&quot;https://blogs.msdn.microsoft.com/friis/2009/12/31/things-to-check-when-kerberos-authentication-fails-using-iisie/&quot; class=&quot;urlextern&quot; title=&quot;https://blogs.msdn.microsoft.com/friis/2009/12/31/things-to-check-when-kerberos-authentication-fails-using-iisie/&quot; rel=&quot;ugc nofollow&quot;&gt;https://blogs.msdn.microsoft.com/friis/2009/12/31/things-to-check-when-kerberos-authentication-fails-using-iisie/&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;
Для одного из сервисов я описал настройку web-сервера на базе Windows Server 2016: &lt;a href=&quot;https://wiki.autosys.tk/_media/ms_windows_ms_sql/ams_server.docx&quot; class=&quot;media mediafile mf_docx&quot; title=&quot;ms_windows_ms_sql:ams_server.docx (358.1 KB)&quot;&gt; IIS Web Server Setup for correct impersonating &lt;/a&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;\u0427\u0442\u043e\u0431\u044b \u0432 \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0438 ASP.NET \u0440\u0430\u0431\u043e\u0442\u0430\u043b\u0430 \u0441\u043a\u0432\u043e\u0437\u043d\u0430\u044f Windows-\u0430\u0443\u0442\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u044f, \u0438\u043c\u043f\u0435\u0440\u0441\u043e\u043d\u0430\u0446\u0438\u044f \u0438 \u0434\u0435\u043b\u0435\u0433\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0447\u0442\u043e\u0431\u044b_\u0432_\u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0438_aspnet_\u0440\u0430\u0431\u043e\u0442\u0430\u043b\u0430_\u0441\u043a\u0432\u043e\u0437\u043d\u0430\u044f_windows-\u0430\u0443\u0442\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u044f_\u0438\u043c\u043f\u0435\u0440\u0441\u043e\u043d\u0430\u0446\u0438\u044f_\u0438_\u0434\u0435\u043b\u0435\u0433\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:2,&amp;quot;secid&amp;quot;:9,&amp;quot;range&amp;quot;:&amp;quot;10835-13301&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit10&quot; id=&quot;еще_немного_полезных_ссылок&quot;&gt;Еще немного полезных ссылок&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
Вот этот гайд описывает как запускать процесс от имени имперсонированного пользователя. Вторая ссылка - как получить то что выводится в стандартный вывод. &lt;br/&gt;

ASP.NET Run Process As Impersonated User: &lt;a href=&quot;https://support.microsoft.com/en-us/help/889251/how-to-spawn-a-process-that-runs-under-the-context-of-the-impersonated&quot; class=&quot;urlextern&quot; title=&quot;https://support.microsoft.com/en-us/help/889251/how-to-spawn-a-process-that-runs-under-the-context-of-the-impersonated&quot; rel=&quot;ugc nofollow&quot;&gt;https://support.microsoft.com/en-us/help/889251/how-to-spawn-a-process-that-runs-under-the-context-of-the-impersonated&lt;/a&gt; &lt;br/&gt;

Вот тут написано как человек пытается получить вывод от процесса запущенного с помощью &lt;strong&gt;CreateProcessAsUser&lt;/strong&gt;: &lt;br/&gt;

&lt;a href=&quot;https://groups.google.com/forum/#!topic/microsoft.public.dotnet.framework.interop/dM6jE-3eRq4&quot; class=&quot;urlextern&quot; title=&quot;https://groups.google.com/forum/#!topic/microsoft.public.dotnet.framework.interop/dM6jE-3eRq4&quot; rel=&quot;ugc nofollow&quot;&gt;https://groups.google.com/forum/#!topic/microsoft.public.dotnet.framework.interop/dM6jE-3eRq4&lt;/a&gt; &lt;br/&gt;

А вот тут представлен класс, который по идее это все делает. но у меня не получилось :(
&lt;a href=&quot;https://stackoverflow.com/questions/27986399/capture-standard-output-from-createprocessasuser-in-c-sharp&quot; class=&quot;urlextern&quot; title=&quot;https://stackoverflow.com/questions/27986399/capture-standard-output-from-createprocessasuser-in-c-sharp&quot; rel=&quot;ugc nofollow&quot;&gt;https://stackoverflow.com/questions/27986399/capture-standard-output-from-createprocessasuser-in-c-sharp&lt;/a&gt; &lt;br/&gt;

&lt;br/&gt;

Вот тут написано как из приложения ASP.NET запустить процесс от имени импесонированного пользователя, указав имя и пароль (&lt;strong&gt;Impersonate a Specific User in Code&lt;/strong&gt;): &lt;a href=&quot;https://support.microsoft.com/en-us/help/306158/how-to-implement-impersonation-in-an-asp-net-application&quot; class=&quot;urlextern&quot; title=&quot;https://support.microsoft.com/en-us/help/306158/how-to-implement-impersonation-in-an-asp-net-application&quot; rel=&quot;ugc nofollow&quot;&gt;https://support.microsoft.com/en-us/help/306158/how-to-implement-impersonation-in-an-asp-net-application&lt;/a&gt;
&lt;br/&gt;

Вот тут понятные классы, которые помогают запустить процесс от имени конкретного пользователя: &lt;a href=&quot;https://habr.com/ru/post/135299/&quot; class=&quot;urlextern&quot; title=&quot;https://habr.com/ru/post/135299/&quot; rel=&quot;ugc nofollow&quot;&gt;https://habr.com/ru/post/135299/&lt;/a&gt; &lt;br/&gt;

&lt;/p&gt;

&lt;p&gt;
Вот ссылки описывают как создать проект, однако в них не работает имперсонализация пользователя. 
&lt;a href=&quot;http://jeffmurr.com/blog/?p=142&quot; class=&quot;urlextern&quot; title=&quot;http://jeffmurr.com/blog/?p=142&quot; rel=&quot;ugc nofollow&quot;&gt;http://jeffmurr.com/blog/?p=142&lt;/a&gt; &lt;br/&gt;

&lt;a href=&quot;https://incoherenttruth.wordpress.com/2011/01/05/execute-powershell-cmdlets-from-asp-net-with-user-impersonation/&quot; class=&quot;urlextern&quot; title=&quot;https://incoherenttruth.wordpress.com/2011/01/05/execute-powershell-cmdlets-from-asp-net-with-user-impersonation/&quot; rel=&quot;ugc nofollow&quot;&gt;https://incoherenttruth.wordpress.com/2011/01/05/execute-powershell-cmdlets-from-asp-net-with-user-impersonation/&lt;/a&gt; &lt;br/&gt;

Change ASP.NET Settings per pool. &lt;a href=&quot;https://weblogs.asp.net/owscott/setting-an-aspnet-config-file-per-application-pool&quot; class=&quot;urlextern&quot; title=&quot;https://weblogs.asp.net/owscott/setting-an-aspnet-config-file-per-application-pool&quot; rel=&quot;ugc nofollow&quot;&gt;https://weblogs.asp.net/owscott/setting-an-aspnet-config-file-per-application-pool&lt;/a&gt; &lt;br/&gt;

&lt;a href=&quot;https://discussions.citrix.com/topic/277547-impersonation-seems-not-to-flow-to-powershell-runspace/&quot; class=&quot;urlextern&quot; title=&quot;https://discussions.citrix.com/topic/277547-impersonation-seems-not-to-flow-to-powershell-runspace/&quot; rel=&quot;ugc nofollow&quot;&gt;https://discussions.citrix.com/topic/277547-impersonation-seems-not-to-flow-to-powershell-runspace/&lt;/a&gt; &lt;br/&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;\u0415\u0449\u0435 \u043d\u0435\u043c\u043d\u043e\u0433\u043e \u043f\u043e\u043b\u0435\u0437\u043d\u044b\u0445 \u0441\u0441\u044b\u043b\u043e\u043a&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0435\u0449\u0435_\u043d\u0435\u043c\u043d\u043e\u0433\u043e_\u043f\u043e\u043b\u0435\u0437\u043d\u044b\u0445_\u0441\u0441\u044b\u043b\u043e\u043a&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:2,&amp;quot;secid&amp;quot;:10,&amp;quot;range&amp;quot;:&amp;quot;13302-15508&amp;quot;} --&gt;
&lt;h1 class=&quot;sectionedit11&quot; id=&quot;powershell_ui_using_jenkins&quot;&gt;PowerShell UI Using Jenkins&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
&lt;a href=&quot;https://hodgkins.io/automating-with-jenkins-and-powershell-on-windows-part-1&quot; class=&quot;urlextern&quot; title=&quot;https://hodgkins.io/automating-with-jenkins-and-powershell-on-windows-part-1&quot; rel=&quot;ugc nofollow&quot;&gt;https://hodgkins.io/automating-with-jenkins-and-powershell-on-windows-part-1&lt;/a&gt; &lt;br/&gt;

&lt;a href=&quot;https://hodgkins.io/automating-with-jenkins-and-powershell-on-windows-part-2&quot; class=&quot;urlextern&quot; title=&quot;https://hodgkins.io/automating-with-jenkins-and-powershell-on-windows-part-2&quot; rel=&quot;ugc nofollow&quot;&gt;https://hodgkins.io/automating-with-jenkins-and-powershell-on-windows-part-2&lt;/a&gt; &lt;br/&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;PowerShell UI Using Jenkins&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;powershell_ui_using_jenkins&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:2,&amp;quot;secid&amp;quot;:11,&amp;quot;range&amp;quot;:&amp;quot;15509-15711&amp;quot;} --&gt;
&lt;h1 class=&quot;sectionedit12&quot; id=&quot;powershell_ui_using_asp&quot;&gt;Powershell UI Using ASP&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
&lt;a href=&quot;http://waynes-world-it.blogspot.ru/2008/05/running-powersell-scripts-from-aspnet.html&quot; class=&quot;urlextern&quot; title=&quot;http://waynes-world-it.blogspot.ru/2008/05/running-powersell-scripts-from-aspnet.html&quot; rel=&quot;ugc nofollow&quot;&gt;http://waynes-world-it.blogspot.ru/2008/05/running-powersell-scripts-from-aspnet.html&lt;/a&gt;
&lt;a href=&quot;http://elbsolutions.com/projects/making-powershell-script-run-aspx-worked-12-hour/&quot; class=&quot;urlextern&quot; title=&quot;http://elbsolutions.com/projects/making-powershell-script-run-aspx-worked-12-hour/&quot; rel=&quot;ugc nofollow&quot;&gt;http://elbsolutions.com/projects/making-powershell-script-run-aspx-worked-12-hour/&lt;/a&gt;
&lt;/p&gt;

&lt;p&gt;
Для создания &lt;strong&gt;web&lt;/strong&gt;-страницы, которая сможет запускать &lt;strong&gt;PowerShell&lt;/strong&gt;-скрипт потребуется:
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt;
 Разместить &lt;strong&gt;aspx&lt;/strong&gt;-файл в корневой папке web-проекта.
&lt;/div&gt;&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt;
 Разместить &lt;strong&gt;web.config&lt;/strong&gt; в корневой папке web-проекта.
&lt;/div&gt;&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt;
 Если web-приложения работает от имени &lt;strong&gt;Network Service&lt;/strong&gt;, то дать этой службе права на чтение.
&lt;/div&gt;&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt;
 Собственно сам скрипт &lt;strong&gt;PowerShell&lt;/strong&gt; 
&lt;/div&gt;&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt;
 Библиотека (dll) &lt;strong&gt;System.Management.Automation&lt;/strong&gt; в папке &lt;strong&gt;.\bin&lt;/strong&gt; 
&lt;/div&gt;&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;
Для вывода строк следует использовать &lt;strong&gt;Out-String&lt;/strong&gt;. Для передачи параметров следует использовать &lt;strong&gt;$args&lt;/strong&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;Powershell UI Using ASP&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;powershell_ui_using_asp&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:2,&amp;quot;secid&amp;quot;:12,&amp;quot;range&amp;quot;:&amp;quot;15712-16745&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit13&quot; id=&quot;webconfig&quot;&gt;web.config&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;
&lt;pre class=&quot;code&quot;&gt;&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;
&amp;lt;configuration&amp;gt;
    &amp;lt;system.net&amp;gt;
 &amp;lt;defaultProxy enabled=&amp;quot;false&amp;quot;/&amp;gt;
    &amp;lt;/system.net&amp;gt;
    &amp;lt;system.web&amp;gt;
 &amp;lt;pages validateRequest=&amp;quot;false&amp;quot;/&amp;gt;
 &amp;lt;compilation defaultLanguage=&amp;quot;c#&amp;quot; debug=&amp;quot;false&amp;quot;/&amp;gt;
 &amp;lt;customErrors mode=&amp;quot;Off&amp;quot;/&amp;gt;
 &amp;lt;authentication mode=&amp;quot;Windows&amp;quot;/&amp;gt;
 &amp;lt;identity impersonate=&amp;quot;true&amp;quot;/&amp;gt;
    &amp;lt;/system.web&amp;gt;
&amp;lt;/configuration&amp;gt;&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;web.config&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;webconfig&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:2,&amp;quot;secid&amp;quot;:13,&amp;quot;range&amp;quot;:&amp;quot;16746-17137&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit14&quot; id=&quot;powershell_скрипт_testps1&quot;&gt;Powershell скрипт test.ps1&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;
&lt;pre class=&quot;code&quot;&gt;if ($args.count -ge 2)
{ $text = $args[1]}
write-output $text&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Powershell \u0441\u043a\u0440\u0438\u043f\u0442 test.ps1&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;powershell_\u0441\u043a\u0440\u0438\u043f\u0442_testps1&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:3,&amp;quot;secid&amp;quot;:14,&amp;quot;range&amp;quot;:&amp;quot;17138-17259&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit15&quot; id=&quot;страница_aspx_-_testaspx&quot;&gt;Страница aspx - Test.aspx&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;
&lt;pre class=&quot;code&quot;&gt;&amp;lt;%@ Page language=&amp;quot;c#&amp;quot; AutoEventWireup=&amp;quot;true&amp;quot; Debug=&amp;quot;true&amp;quot; %&amp;gt;
&amp;lt;%@ Import Namespace=&amp;quot;System&amp;quot; %&amp;gt;
&amp;lt;%@ Import Namespace=&amp;quot;System.IO&amp;quot; %&amp;gt;
&amp;lt;%@ Import Namespace=&amp;quot;System.Management.Automation.Runspaces&amp;quot; %&amp;gt;
&amp;lt;%@ Import Namespace=&amp;quot;System.Management.Automation&amp;quot; %&amp;gt;
&amp;lt;%@ Import Namespace=&amp;quot;System.Collections.ObjectModel&amp;quot; %&amp;gt;


&amp;lt;script language=&amp;quot;C#&amp;quot; runat=&amp;quot;server&amp;quot;&amp;gt;

// The previous lines use &amp;lt;%...%&amp;gt; to indicate script code, and they specify the namespaces to import. As mentioned earlier, the assemblies must be located in the \Bin subdirectory of the application&amp;#039;s starting point.
// http://msdn.microsoft.com/en-us/library/aa309354(VS.71).aspx


private void Button3_Click(object sender, System.EventArgs e)
{
String fp = Server.MapPath(&amp;quot;.&amp;quot;) + &amp;quot;\\&amp;quot; + tPowerShellScriptName.Text;
StreamReader sr = new StreamReader(fp);
tPowerShellScriptCode.Text = sr.ReadToEnd();
sr.Close();
}

private void Button2_Click(object sender, System.EventArgs e)
{
tPowerShellScriptResult.Text = RunScript(tPowerShellScriptCode.Text);
}

// http://msdn.microsoft.com/en-us/library/ms714635(VS.85).aspx

private string RunScript(string scriptText)
{
Runspace runspace = RunspaceFactory.CreateRunspace();
runspace.Open();
Pipeline pipeline = runspace.CreatePipeline();

// Create a new runspaces.command object of type script
Command cmdScript = new Command(scriptText, true, false);
cmdScript.Parameters.Add(&amp;quot;-t&amp;quot;, txtInput.Text);
pipeline.Commands.Add(cmdScript);
//You could also use: pipeline.Commands.AddScript(scriptText);

// Re-format all output to strings
pipeline.Commands.Add(&amp;quot;Out-String&amp;quot;);

// Invoke the pipeline
Collection&amp;lt;PSObject&amp;gt; results = pipeline.Invoke();

//String sresults = pipeline.Output.Count.ToString();
//sresults = sresults + &amp;quot;,&amp;quot; + results.Count.ToString();
String sresults = &amp;quot;&amp;quot;;

foreach (PSObject obj in results)
{
sresults = sresults + obj.ToString();
}

// close the runspace and set to null
runspace.Close();
runspace = null;

return sresults;
}


&amp;lt;/script&amp;gt;

&amp;lt;form id=&amp;quot;Form1&amp;quot; method=&amp;quot;post&amp;quot; runat=&amp;quot;server&amp;quot;&amp;gt;
&amp;lt;P&amp;gt; &amp;lt;asp:Label id=&amp;quot;Label1&amp;quot; runat=&amp;quot;server&amp;quot; Width=&amp;quot;104px&amp;quot;&amp;gt;Parameter:&amp;lt;/asp:Label&amp;gt;
&amp;lt;asp:TextBox id=&amp;quot;txtInput&amp;quot; runat=&amp;quot;server&amp;quot;&amp;gt;&amp;lt;/asp:TextBox&amp;gt;&amp;lt;/P&amp;gt;
&amp;lt;P&amp;gt; &amp;lt;asp:Button id=&amp;quot;Button3&amp;quot; runat=&amp;quot;server&amp;quot; Text=&amp;quot;Load&amp;quot; OnClick=&amp;quot;Button3_Click&amp;quot;&amp;gt;&amp;lt;/asp:Button&amp;gt; &amp;lt;/P&amp;gt;
&amp;lt;P&amp;gt; &amp;lt;asp:Button id=&amp;quot;Button2&amp;quot; runat=&amp;quot;server&amp;quot; Text=&amp;quot;Run&amp;quot; OnClick=&amp;quot;Button2_Click&amp;quot;&amp;gt;&amp;lt;/asp:Button&amp;gt; &amp;lt;/P&amp;gt;
&amp;lt;P&amp;gt; &amp;lt;asp:Label id=&amp;quot;Label2&amp;quot; runat=&amp;quot;server&amp;quot; &amp;gt;Relative script name:&amp;lt;/asp:Label&amp;gt;
&amp;lt;asp:TextBox id=&amp;quot;tPowerShellScriptName&amp;quot; Text=&amp;quot;test.ps1&amp;quot; runat=&amp;quot;server&amp;quot;&amp;gt;&amp;lt;/asp:TextBox&amp;gt;&amp;lt;/P&amp;gt;
&amp;lt;P&amp;gt; &amp;lt;asp:TextBox rows=&amp;quot;20&amp;quot; columns=&amp;quot;120&amp;quot; TextMode=&amp;quot;multiline&amp;quot; id=&amp;quot;tPowerShellScriptCode&amp;quot; runat=&amp;quot;server&amp;quot;&amp;gt;&amp;lt;/asp:TextBox&amp;gt;&amp;lt;/P&amp;gt;
&amp;lt;P&amp;gt; &amp;lt;asp:TextBox rows=&amp;quot;8&amp;quot; columns=&amp;quot;120&amp;quot; TextMode=&amp;quot;multiline&amp;quot; id=&amp;quot;tPowerShellScriptResult&amp;quot; runat=&amp;quot;server&amp;quot;&amp;gt;&amp;lt;/asp:TextBox&amp;gt;&amp;lt;/P&amp;gt;
&amp;lt;/form&amp;gt;&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0421\u0442\u0440\u0430\u043d\u0438\u0446\u0430 aspx - Test.aspx&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0430_aspx_-_testaspx&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:4,&amp;quot;secid&amp;quot;:15,&amp;quot;range&amp;quot;:&amp;quot;17260-20079&amp;quot;} --&gt;
&lt;h1 class=&quot;sectionedit16&quot; id=&quot;запуск_процессов_от_имени_имперсонированного_пользователя&quot;&gt;Запуск процессов от имени имперсонированного пользователя&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;
&lt;pre class=&quot;code&quot;&gt;using System;
using System.Runtime.InteropServices;
using System.Security.Principal;
using System.Text;
using System.Diagnostics;
using System.IO;
using System.ComponentModel;
using System.Reflection;
using Microsoft.Win32.SafeHandles;

namespace vmware_net
{


    /// &amp;lt;summary&amp;gt;
    /// UserSpecificProcess extends the standard Process object to 
    /// create new processes under a different user than the calling parent process.
    /// Also, the standard output of the child process redirected back to the parent process.
    /// This is class is designed to operate inside an ASP.NET web application.
    /// The assumption is that the calling thread is operating with an impersonated security token.
    /// The this class will change the imperonated security token to a primary token, 
    /// and call CreateProcessAsUser.
    /// A System.Diagnostics.Process object will be returned with appropriate properties set.
    /// To use this function, the following security priviliges need to be set for the ASPNET account 
    /// using the local security policy MMC snap-in. CreateProcessAsUser requirement.
    /// &amp;quot;Replace a process level token&amp;quot;/SE_ASSIGNPRIMARYTOKEN_NAME/SeAssignPrimaryTokenPrivilege
    /// &amp;quot;Adjust memory quotas for a process&amp;quot;/SE_INCREASE_QUOTA_NAME/SeIncreaseQuotaPrivilege
    ///
    /// This class was designed for .NET 1.1 for operating systems W2k an higher.
    /// Any other features or platform support can be implemented by using the .NET reflector and 
    /// investigating the Process class.
    /// &amp;lt;/summary&amp;gt;
    public class UserSpecificProcess : Process
    {
        [StructLayout(LayoutKind.Sequential)]
        public class CreateProcessStartupInfo
        {
            public int cb;
            public string lpReserved;
            public string lpDesktop;
            public string lpTitle;
            public int dwX;
            public int dwY;
            public int dwXSize;
            public int dwYSize;
            public int dwXCountChars;
            public int dwYCountChars;
            public int dwFillAttribute;
            public int dwFlags;
            public short wShowWindow;
            public short cbReserved2;
            public IntPtr lpReserved2;
            public IntPtr hStdInput;
            public IntPtr hStdOutput;
            public IntPtr hStdError;
            public CreateProcessStartupInfo()
            {
                this.cb = Marshal.SizeOf(typeof(CreateProcessStartupInfo));
                this.lpReserved = null;
                this.lpDesktop = null;
                this.lpTitle = null;
                this.dwX = 0;
                this.dwY = 0;
                this.dwXSize = 0;
                this.dwYSize = 0;
                this.dwXCountChars = 0;
                this.dwYCountChars = 0;
                this.dwFillAttribute = 0;
                this.dwFlags = 0;
                this.wShowWindow = 0;
                this.cbReserved2 = 0;
                this.lpReserved2 = IntPtr.Zero;
                this.hStdInput = IntPtr.Zero;
                this.hStdOutput = IntPtr.Zero;
                this.hStdError = IntPtr.Zero;
            }
        }

        [StructLayout(LayoutKind.Sequential)]
        public class CreateProcessProcessInformation
        {
            public IntPtr hProcess;
            public IntPtr hThread;
            public int dwProcessId;
            public int dwThreadId;
            public CreateProcessProcessInformation()
            {
                this.hProcess = IntPtr.Zero;
                this.hThread = IntPtr.Zero;
                this.dwProcessId = 0;
                this.dwThreadId = 0;
            }
        }

        [StructLayout(LayoutKind.Sequential)]
        public class SecurityAttributes
        {
            public int nLength;
            public IntPtr lpSecurityDescriptor;
            public bool bInheritHandle;
            public SecurityAttributes()
            {
                this.nLength = Marshal.SizeOf(typeof(SecurityAttributes));
            }
        }

        [DllImport(&amp;quot;kernel32.dll&amp;quot;, CharSet = CharSet.Auto, SetLastError = true, ExactSpelling = true)]
        public static extern bool CloseHandle(HandleRef handle);

        [DllImport(&amp;quot;kernel32.dll&amp;quot;, CharSet = CharSet.Auto, SetLastError = true)]
        public static extern bool
        CreateProcess([MarshalAs(UnmanagedType.LPTStr)] string lpApplicationName, StringBuilder lpCommandLine, SecurityAttributes lpProcessAttributes, SecurityAttributes lpThreadAttributes, bool bInheritHandles, int dwCreationFlags, IntPtr lpEnvironment, [MarshalAs(UnmanagedType.LPTStr)] string lpCurrentDirectory, CreateProcessStartupInfo lpStartupInfo, CreateProcessProcessInformation lpProcessInformation);

        [DllImport(&amp;quot;advapi32.dll&amp;quot;)]
        public static extern int LogonUserA(String lpszUserName, string lpszDomain, string lpszPassword, int dwLogonType, int dwLogonProvider, ref IntPtr phToken);

        [DllImport(&amp;quot;advapi32.dll&amp;quot;, CharSet = CharSet.Unicode, SetLastError = true)]
        public static extern bool CreateProcessAsUserW(IntPtr token, [MarshalAs(UnmanagedType.LPTStr)] string lpApplicationName, [MarshalAs(UnmanagedType.LPTStr)] string lpCommandLine, SecurityAttributes lpProcessAttributes, SecurityAttributes lpThreadAttributes, bool bInheritHandles, int dwCreationFlags, IntPtr lpEnvironment, [MarshalAs(UnmanagedType.LPTStr)] string lpCurrentDirectory, CreateProcessStartupInfo lpStartupInfo, CreateProcessProcessInformation lpProcessInformation);

        [DllImport(&amp;quot;advapi32.dll&amp;quot;, CharSet = CharSet.Unicode, SetLastError = true)]
        public static extern bool CreateProcessAsUser(IntPtr token, [MarshalAs(UnmanagedType.LPTStr)] string lpApplicationName, [MarshalAs(UnmanagedType.LPTStr)] string lpCommandLine, SecurityAttributes lpProcessAttributes, SecurityAttributes lpThreadAttributes, bool bInheritHandles, int dwCreationFlags, IntPtr lpEnvironment, [MarshalAs(UnmanagedType.LPTStr)] string lpCurrentDirectory, CreateProcessStartupInfo lpStartupInfo, CreateProcessProcessInformation lpProcessInformation);

        [DllImport(&amp;quot;kernel32.dll&amp;quot;, CharSet = CharSet.Ansi, SetLastError = true)]
        public static extern IntPtr GetStdHandle(int whichHandle);

        [DllImport(&amp;quot;kernel32.dll&amp;quot;, CharSet = CharSet.Auto)]
        public static extern IntPtr CreateFile(string lpFileName, int dwDesiredAccess, int dwShareMode, SecurityAttributes lpSecurityAttributes, int dwCreationDisposition, int dwFlagsAndAttributes, HandleRef hTemplateFile);

        [DllImport(&amp;quot;kernel32.dll&amp;quot;, CharSet = CharSet.Auto, SetLastError = true)]
        public static extern IntPtr CreateNamedPipe(string name, int openMode, int pipeMode, int maxInstances, int outBufSize, int inBufSize, int timeout, SecurityAttributes lpPipeAttributes);

        [DllImport(&amp;quot;kernel32.dll&amp;quot;, CharSet = CharSet.Auto, SetLastError = true)]
        public static extern int GetConsoleOutputCP();

        [DllImport(&amp;quot;advapi32.dll&amp;quot;, CharSet = CharSet.Auto, SetLastError = true)]
        public static extern bool DuplicateTokenEx(HandleRef hToken, int access, SecurityAttributes tokenAttributes, int impersonationLevel, int tokenType, ref IntPtr hNewToken);

        // WinNT.h ACCESS TYPES
        const int GENERIC_ALL = 0x10000000;

        // WinNT.h enum SECURITY_IMPERSONATION_LEVEL
        const int SECURITY_IMPERSONATION = 2;

        // WinNT.h TOKEN TYPE
        const int TOKEN_PRIMARY = 1;

        // WinBase.h
        const int STD_INPUT_HANDLE = -10;
        const int STD_ERROR_HANDLE = -12;

        // WinBase.h STARTUPINFO
        const int STARTF_USESTDHANDLES = 0x100;

        // Microsoft.Win23.NativeMethods
        static IntPtr INVALID_HANDLE_VALUE = (IntPtr)(-1);
        public static HandleRef NullHandleRef = new HandleRef(null, IntPtr.Zero);

        public const int LOGON32_LOGON_INTERACTIVE = 2;
        public const int LOGON32_PROVIDER_DEFAULT = 0;

        /// &amp;lt;summary&amp;gt;
        /// Starts the process with the security token of the calling thread.
        /// If the security token has a token type of TokenImpersonation,
        /// the token will be duplicated to a primary token before calling
        /// CreateProcessAsUser.
        /// &amp;lt;/summary&amp;gt;
        /// &amp;lt;param name=&amp;quot;process&amp;quot;&amp;gt;The process to start.&amp;lt;/param&amp;gt;
        public void StartAsUser()
        {
            StartAsUser(WindowsIdentity.GetCurrent().Token);
        }

        /// &amp;lt;summary&amp;gt;
        /// Starts the process with the given security token.
        /// If the security token has a token type of TokenImpersonation,
        /// the token will be duplicated to a primary token before calling
        /// CreateProcessAsUser.
        /// &amp;lt;/summary&amp;gt;
        /// &amp;lt;param name=&amp;quot;process&amp;quot;&amp;gt;&amp;lt;/param&amp;gt;
        public void StartAsUser(IntPtr userToken)
        {
            if (StartInfo.UseShellExecute)
            {
                throw new InvalidOperationException(&amp;quot;can&amp;#039;t call this with shell execute&amp;quot;);
            }

            // just assume that the securityToken is of TokenImpersonation and create a primary.
            IntPtr primayUserToken = CreatePrimaryToken(userToken);

            CreateProcessStartupInfo startupInfo = new CreateProcessStartupInfo();
            CreateProcessProcessInformation processInformation = new CreateProcessProcessInformation();

            IntPtr stdinHandle;
            IntPtr stdoutReadHandle;
            IntPtr stdoutWriteHandle = IntPtr.Zero;
            IntPtr stderrHandle;
            try
            {
                stdinHandle = GetStdHandle(STD_INPUT_HANDLE);
                MyCreatePipe(out stdoutReadHandle, out stdoutWriteHandle, false);
                stderrHandle = GetStdHandle(STD_ERROR_HANDLE);

                //assign handles to startup info
                startupInfo.dwFlags = STARTF_USESTDHANDLES;
                startupInfo.hStdInput = stdinHandle;
                startupInfo.hStdOutput = stdoutWriteHandle;
                startupInfo.hStdError = stderrHandle;

                string commandLine = GetCommandLine();
                //Set Creation Flags value 0x8000000 to hide window. To show window set it to 0
                int creationFlags = 0x8000000;
                //int creationFlags = 0;
                IntPtr environment = IntPtr.Zero;
                string workingDirectory = GetWorkingDirectory();

                // create the process or fail trying.
                //if (!CreateProcessAsUserW(
                if (!CreateProcessAsUser(
                primayUserToken,
                null,
                commandLine,
                null,
                null,
                true,
                creationFlags,
                environment,
                workingDirectory,
                startupInfo,
                processInformation))
                {
                    throw new Win32Exception();
                }
            }
            finally
            {
                // close thread handle
                if (processInformation.hThread != INVALID_HANDLE_VALUE)
                {
                    CloseHandle(new HandleRef(this, processInformation.hThread));
                }

                // close client stdout handle
                CloseHandle(new HandleRef(this, stdoutWriteHandle));
            }
            // }
            // get reader for standard output from the child
            Encoding encoding = Encoding.GetEncoding(GetConsoleOutputCP());
            //
            //StreamReader standardOutput = new StreamReader(new FileStream(stdoutReadHandle, FileAccess.Read, true, 0x1000, true), encoding);
            SafeFileHandle SafeStdOutReadHandle = new SafeFileHandle(stdoutReadHandle, true);
            StreamReader standardOutput = new StreamReader(new FileStream(SafeStdOutReadHandle, FileAccess.Read, 0x1000, true), encoding);

            // set this on the object accordingly.
            typeof(Process).InvokeMember(&amp;quot;standardOutput&amp;quot;,
            BindingFlags.SetField | BindingFlags.NonPublic | BindingFlags.Instance,
            null, this, new object[] { standardOutput });

            // scream if a process wasn&amp;#039;t started instead of returning false.
            if (processInformation.hProcess == IntPtr.Zero)
            {
                throw new Exception(&amp;quot;failed to create process&amp;quot;);
            }

            // configure the properties of the Process object correctly
            //typeof(Process).InvokeMember(&amp;quot;SetProcessHandle&amp;quot;,
            //BindingFlags.InvokeMethod | BindingFlags.NonPublic | BindingFlags.Instance,
            //null, this, new object[] { processInformation.hProcess });
            typeof(Process).InvokeMember(&amp;quot;SetProcessId&amp;quot;,
            BindingFlags.InvokeMethod | BindingFlags.NonPublic | BindingFlags.Instance,
            null, this, new object[] { processInformation.dwProcessId });
        }

        /// &amp;lt;summary&amp;gt;
        /// Starts the process as user with provided username, domain name and password.
        /// Method loggs user with provided cretential, get token and pass it to StartAsUser method.
        /// &amp;lt;/summary&amp;gt;
        public void StartAsUserWithLogon(string UserName, string Domain, string Password)
        {
            IntPtr UserToken = IntPtr.Zero;
            if (LogonUserA(UserName, Domain, Password, LOGON32_LOGON_INTERACTIVE, LOGON32_PROVIDER_DEFAULT, ref UserToken) !=0)
            {
                StartAsUser(CreatePrimaryToken(UserToken));
            }
            else
            {
                throw new Win32Exception();
            }
        }

        /// &amp;lt;summary&amp;gt;
        /// Creates a primayToken out of an existing token.
        /// &amp;lt;/summary&amp;gt;
        /// &amp;lt;param name=&amp;quot;userToken&amp;quot;&amp;gt;&amp;lt;/param&amp;gt;
        private IntPtr CreatePrimaryToken(IntPtr userToken)
        {
            SecurityAttributes securityAttributes = new SecurityAttributes();
            IntPtr primaryUserToken = IntPtr.Zero;
            if (!DuplicateTokenEx(new HandleRef(this, userToken), GENERIC_ALL, securityAttributes, SECURITY_IMPERSONATION, TOKEN_PRIMARY, ref
            primaryUserToken))
            {
                throw new Win32Exception();
            }
            return primaryUserToken;
        }

        /// &amp;lt;summary&amp;gt;
        /// Gets the appropriate commandLine from the process.
        /// &amp;lt;/summary&amp;gt;
        /// &amp;lt;param name=&amp;quot;process&amp;quot;&amp;gt;&amp;lt;/param&amp;gt;
        /// &amp;lt;returns&amp;gt;&amp;lt;/returns&amp;gt;
        private string GetCommandLine()
        {
            StringBuilder builder1 = new StringBuilder();
            string text1 = StartInfo.FileName.Trim();
            string text2 = StartInfo.Arguments;
            bool flag1 = text1.StartsWith(&amp;quot;\&amp;quot;&amp;quot;) &amp;amp;&amp;amp; text1.EndsWith(&amp;quot;\&amp;quot;&amp;quot;);
            if (!flag1)
            {
                builder1.Append(&amp;quot;\&amp;quot;&amp;quot;);
            }
            builder1.Append(text1);
            if (!flag1)
            {
                builder1.Append(&amp;quot;\&amp;quot;&amp;quot;);
            }
            if ((text2 != null) &amp;amp;&amp;amp; (text2.Length &amp;gt; 0))
            {
                builder1.Append(&amp;quot; &amp;quot;);
                builder1.Append(text2);
            }
            return builder1.ToString();
        }

        /// &amp;lt;summary&amp;gt;
        /// Gets the working directory or returns null if an empty string was found.
        /// &amp;lt;/summary&amp;gt;
        /// &amp;lt;returns&amp;gt;&amp;lt;/returns&amp;gt;
        private string GetWorkingDirectory()
        {
            return (StartInfo.WorkingDirectory != string.Empty) ?
            StartInfo.WorkingDirectory : null;
        }

        /// &amp;lt;summary&amp;gt;
        /// A clone of Process.CreatePipe. This is only implemented because reflection with
        /// out parameters are a pain.
        /// Note: This is only finished for w2k and higher machines.
        /// &amp;lt;/summary&amp;gt;
        /// &amp;lt;param name=&amp;quot;parentHandle&amp;quot;&amp;gt;&amp;lt;/param&amp;gt;
        /// &amp;lt;param name=&amp;quot;childHandle&amp;quot;&amp;gt;&amp;lt;/param&amp;gt;
        /// &amp;lt;param name=&amp;quot;parentInputs&amp;quot;&amp;gt;Specifies whether the parent will be performing the writes.&amp;lt;/param&amp;gt;
        public static void MyCreatePipe(out IntPtr parentHandle, out IntPtr childHandle, bool parentInputs)
        {
            string pipename = @&amp;quot;\\.\pipe\Global\&amp;quot; + Guid.NewGuid().ToString();

            SecurityAttributes attributes2 = new SecurityAttributes();
            attributes2.bInheritHandle = false;

            parentHandle = CreateNamedPipe(pipename, 0x40000003, 0, 0xff, 0x1000, 0x1000, 0, attributes2);
            if (parentHandle == INVALID_HANDLE_VALUE)
            {
                throw new Win32Exception();
            }

            SecurityAttributes attributes3 = new SecurityAttributes();
            attributes3.bInheritHandle = true;
            int num1 = 0x40000000;
            if (parentInputs)
            {
                num1 = -2147483648;
            }
            childHandle = CreateFile(pipename, num1, 3, attributes3, 3, 0x40000080, NullHandleRef);
            if (childHandle == INVALID_HANDLE_VALUE)
            {
                throw new Win32Exception();
            }
        }
    }
}&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0417\u0430\u043f\u0443\u0441\u043a \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0432 \u043e\u0442 \u0438\u043c\u0435\u043d\u0438 \u0438\u043c\u043f\u0435\u0440\u0441\u043e\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0433\u043e \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0437\u0430\u043f\u0443\u0441\u043a_\u043f\u0440\u043e\u0446\u0435\u0441\u0441\u043e\u0432_\u043e\u0442_\u0438\u043c\u0435\u043d\u0438_\u0438\u043c\u043f\u0435\u0440\u0441\u043e\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0433\u043e_\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:5,&amp;quot;secid&amp;quot;:16,&amp;quot;range&amp;quot;:&amp;quot;20080-37112&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit17&quot; id=&quot;примеры_использования&quot;&gt;Примеры использования&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u041f\u0440\u0438\u043c\u0435\u0440\u044b \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u043f\u0440\u0438\u043c\u0435\u0440\u044b_\u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:6,&amp;quot;secid&amp;quot;:17,&amp;quot;range&amp;quot;:&amp;quot;37113-37166&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit18&quot; id=&quot;запуск_процесса_powershellexe_от_имени_залогиненного_имперсонированного_пользователя&quot;&gt;Запуск процесса (powershell.exe) от имени залогиненного имперсонированного пользователя&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;

&lt;p&gt;
Для доступа к ресурсам за пределами сервера нужна аутентификация kerberos (обязательно), а также включенная делегация &lt;strong&gt;kerberos&lt;/strong&gt; для учетки, от имени которой исполняется &lt;strong&gt;Application Pool&lt;/strong&gt;. То есть, например &lt;strong&gt;AppPool Identity&lt;/strong&gt; - &lt;strong&gt;LocalSystem&lt;/strong&gt;, а для учетки компьютера в AD включена делегация &lt;strong&gt;kerberos&lt;/strong&gt;.&lt;br/&gt;

На уровне всего приложения &lt;strong&gt;&amp;lt;identity impersonate=“false”/&amp;gt;&lt;/strong&gt;. От имперсонированного пользователя запускается только кусок кода в using {…}.
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;//Get User Identity for Initializing Impersonation Context
var current = System.Security.Principal.WindowsIdentity.GetCurrent();
WindowsIdentity clientId = (WindowsIdentity)User.Identity;
string ScriptFilePath = @&amp;quot;&amp;quot;;
string Arguments = @&amp;quot;&amp;quot;;

using (WindowsImpersonationContext wic = clientId.Impersonate())
{
    UserSpecificProcess myProcess = new UserSpecificProcess();
    myProcess.StartInfo.FileName = &amp;quot;powershell.exe&amp;quot;;
    myProcess.StartInfo.Arguments = @&amp;quot;-NoLogo -NoProfile -executionpolicy bypass -File &amp;quot; + ScriptFilePath + &amp;quot; &amp;quot; + Arguments;

    //ResultBuilder.Append(ScriptFilePath + &amp;quot; &amp;quot; + Arguments + &amp;quot;\r\n&amp;quot;);

    myProcess.StartInfo.UseShellExecute = false;
    myProcess.StartInfo.CreateNoWindow = false;
    myProcess.StartInfo.WorkingDirectory = ScriptWorkingDirectory;
    myProcess.StartAsUser();
    StreamReader output = myProcess.StandardOutput;

    //wait then kill process
    if (!myProcess.WaitForExit(ScriptExecutionTimeout))
    {
        myProcess.Kill();
    }

    string line;
    while ((line = output.ReadLine()) != null)
    {
        // We use a string builder ton create our result text
        ResultBuilder.Append(line + &amp;quot;\r\n&amp;quot;);
    }
}&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0417\u0430\u043f\u0443\u0441\u043a \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0430 (powershell.exe) \u043e\u0442 \u0438\u043c\u0435\u043d\u0438 \u0437\u0430\u043b\u043e\u0433\u0438\u043d\u0435\u043d\u043d\u043e\u0433\u043e \u0438\u043c\u043f\u0435\u0440\u0441\u043e\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0433\u043e \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0437\u0430\u043f\u0443\u0441\u043a_\u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0430_powershellexe_\u043e\u0442_\u0438\u043c\u0435\u043d\u0438_\u0437\u0430\u043b\u043e\u0433\u0438\u043d\u0435\u043d\u043d\u043e\u0433\u043e_\u0438\u043c\u043f\u0435\u0440\u0441\u043e\u043d\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u043e\u0433\u043e_\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:6,&amp;quot;secid&amp;quot;:18,&amp;quot;range&amp;quot;:&amp;quot;37167-39242&amp;quot;} --&gt;
&lt;h3 class=&quot;sectionedit19&quot; id=&quot;запуск_процесса_powershellexe_от_имени_конкретного_пользователя&quot;&gt;Запуск процесса (powershell.exe) от имени конкретного пользователя&lt;/h3&gt;
&lt;div class=&quot;level3&quot;&gt;
&lt;pre class=&quot;code&quot;&gt;protected void RunScript()
{
    string ScriptFilePath = @&amp;quot;c:\temp\script.ps1&amp;quot;;
    string Arguments = @&amp;quot;&amp;quot;;
    string ScriptWorkingDirectory = @&amp;quot;c:\temp\&amp;quot;;
    string UserName = &amp;quot;Username&amp;quot;;
    string Domain = &amp;quot;DomainName_or_MachineName&amp;quot;;
    string Password = &amp;quot;superpassword&amp;quot;;

    UserSpecificProcess proc = new UserSpecificProcess();

    proc.StartInfo.UseShellExecute = false;
    proc.StartInfo.CreateNoWindow = false;
    proc.StartInfo.RedirectStandardError = true;
    proc.StartInfo.RedirectStandardOutput = true;
    proc.StartInfo.FileName = &amp;quot;powershell.exe&amp;quot;;
    proc.StartInfo.WorkingDirectory = ScriptWorkingDirectory;
    proc.StartInfo.Arguments = @&amp;quot;-NoLogo -NoProfile -executionpolicy bypass -command &amp;quot; + &amp;#039;&amp;quot;&amp;#039; + ScriptFilePath + &amp;quot; &amp;quot; + Arguments + &amp;#039;&amp;quot;&amp;#039;;

    proc.StartAsUserWithLogon(UserName, Domain, Password);

    while (!proc.HasExited &amp;amp;&amp;amp; proc.Responding)
    {
        System.Threading.Thread.Sleep(1000);
    }
} &lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0417\u0430\u043f\u0443\u0441\u043a \u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0430 (powershell.exe) \u043e\u0442 \u0438\u043c\u0435\u043d\u0438 \u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u043e\u0433\u043e \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0437\u0430\u043f\u0443\u0441\u043a_\u043f\u0440\u043e\u0446\u0435\u0441\u0441\u0430_powershellexe_\u043e\u0442_\u0438\u043c\u0435\u043d\u0438_\u043a\u043e\u043d\u043a\u0440\u0435\u0442\u043d\u043e\u0433\u043e_\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:7,&amp;quot;secid&amp;quot;:19,&amp;quot;range&amp;quot;:&amp;quot;39243-&amp;quot;} --&gt;</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Wed, 15 May 2019 14:03:01 +0000</pubDate>
        </item>
        <item>
            <title>win2012_deduplication</title>
            <link>https://wiki.autosys.tk/ms_windows_ms_sql/win2012_deduplication</link>
            <description>
&lt;p&gt;
Включаем дедупликацию:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;EnableDedupVolume X:&lt;/pre&gt;

&lt;p&gt;
Устанавливаем минимальный порог возраста файла
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;Set-DedupVolume X: -MinimumFileAgeDays 0&lt;/pre&gt;

&lt;p&gt;
Запускаем дедупликацию вручную:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;Start-DedupJob -Volume X: -Type Optimization&lt;/pre&gt;

&lt;p&gt;
Смотрим статус:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;Get-DedupJob&lt;/pre&gt;
</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Mon, 11 Feb 2019 09:13:27 +0000</pubDate>
        </item>
        <item>
            <title>windows-2008-7-8-bootrec-rebuidbcd-элемент-не-наиден</title>
            <link>https://wiki.autosys.tk/ms_windows_ms_sql/windows-2008-7-8-bootrec-rebuidbcd-%D1%8D%D0%BB%D0%B5%D0%BC%D0%B5%D0%BD%D1%82-%D0%BD%D0%B5-%D0%BD%D0%B0%D0%B8%D0%B4%D0%B5%D0%BD</link>
            <description>
&lt;p&gt;
Эта история начала с того что я перетаскивал с аварийного массива &lt;strong&gt;RAID&lt;/strong&gt; систему &lt;strong&gt;Windows 2008 Server&lt;/strong&gt; с помощью загрузочного диска &lt;strong&gt;Linux&lt;/strong&gt; и команды &lt;strong&gt;dd&lt;/strong&gt;.&lt;br/&gt;

&lt;/p&gt;

&lt;p&gt;
И вот я с помощью &lt;strong&gt;dd&lt;/strong&gt; перелил партиции целиком на сетевой ресурс командами типа 
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;dd if=/dev/sda1 ... &lt;/pre&gt;

&lt;p&gt;
и 
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;dd if=/dev/sda2 ...&lt;/pre&gt;

&lt;p&gt;
Потом, после заливки этих разделов на разделы, вновь созданные на новом диске, система отказалась грузиться.&lt;br/&gt;

При этом, восстановление загрузочной информации с помощью команды
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;bootrec /RebuidBCD&lt;/pre&gt;

&lt;p&gt;
результата не дало. &lt;br/&gt;

&lt;/p&gt;

&lt;p&gt;
Вот что оказалось надо было делать:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;DISKPART
list disk
sel disk 0
list partition
sel part 1
active
exit&lt;/pre&gt;

&lt;p&gt;
А потом поправить загрузочный сектор:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;c:\bootsect /nt60 All /force\\
bcdboot %Windir% /l ru-Ru /s С:\\&lt;/pre&gt;
</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Mon, 11 Feb 2019 09:13:27 +0000</pubDate>
        </item>
        <item>
            <title>windows_2012r2_domain_controller_repair_from_page_fault_in_nonpaged_area</title>
            <link>https://wiki.autosys.tk/ms_windows_ms_sql/windows_2012r2_domain_controller_repair_from_page_fault_in_nonpaged_area</link>
            <description>
&lt;h1 class=&quot;sectionedit1&quot; id=&quot;проблема&quot;&gt;Проблема&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
После внезапного выключения электричества, контроллер домена на базе &lt;strong&gt;Windows Server 2012R2&lt;/strong&gt; (виртуальная машина на &lt;strong&gt;standalone VMWareESXi 6.5&lt;/strong&gt; - без vcenter) ушел в несознанку и при каждой загрузке вываливается в синий экран с ошибкой:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;PAGE_FAULT_IN_NONPAGED_AREA&lt;/pre&gt;

&lt;p&gt;
Все предварительные реанимационные мероприятия проведены. Создан снепшот, выполнен &lt;strong&gt;chkdsk&lt;/strong&gt; (ошибок не обнаружено). &lt;br/&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;\u041f\u0440\u043e\u0431\u043b\u0435\u043c\u0430&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0430&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:1,&amp;quot;range&amp;quot;:&amp;quot;1-722&amp;quot;} --&gt;
&lt;h1 class=&quot;sectionedit2&quot; id=&quot;решение&quot;&gt;Решение&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
После очередной перезагрузки стартует &lt;strong&gt;Repair Mode&lt;/strong&gt;. &lt;br/&gt;

Там жмем &lt;strong&gt;Troubleshoot&lt;/strong&gt; и запускаем &lt;strong&gt;Command Prompt&lt;/strong&gt;. &lt;br/&gt;

Проверяем, что на диске &lt;strong&gt;С&lt;/strong&gt; у нас есть наш &lt;strong&gt;Windows&lt;/strong&gt;:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;c:
dir&lt;/pre&gt;

&lt;p&gt;
Смело (ведь у нас есть снепшот) восстанавливаем реестр из бекапа: 
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;copy /y c:\windows\system32\config\regback\* c:\windows\system32\config\
exit&lt;/pre&gt;

&lt;p&gt;
И перезагружаемся. &lt;br/&gt;

В результате у меня система начала грузиться иначе - теперь ошибка была уже &lt;strong&gt;0xc00002e2&lt;/strong&gt; - &lt;strong&gt;Directory Services Could Not Start&lt;/strong&gt;. А это гораздо лучше!!! &lt;br/&gt;

Теперь нам надо загрузиться в режим восстановления служб &lt;strong&gt;Active Directory&lt;/strong&gt; - &lt;strong&gt;Directory Services Repair Mode&lt;/strong&gt; (&lt;strong&gt;DSRM&lt;/strong&gt;). &lt;br/&gt;

Для этого, когда комп опять перезагрузится в &lt;strong&gt;Repair Mode&lt;/strong&gt; жмем &lt;strong&gt;Troubleshoot&lt;/strong&gt; и затем &lt;strong&gt;Startup Settings&lt;/strong&gt; и &lt;strong&gt;Restart&lt;/strong&gt;. В результате мы попадем в меню, которое раньше (в виндах до 8/2012) было доступно по &lt;strong&gt;F8&lt;/strong&gt;. &lt;br/&gt;

Там выбираем &lt;strong&gt;Directory Services Repair Mode&lt;/strong&gt;. В моем случае винда загрузилась в &lt;strong&gt;&lt;abbr title=&quot;Graphical User Interface&quot;&gt;GUI&lt;/abbr&gt;&lt;/strong&gt;.&lt;br/&gt;

Теперь логинимся локальным админом и начинаем чинить. &lt;br/&gt;

&lt;br/&gt;

1. Делаем бекап папки &lt;strong&gt;c:\Windows\NTDS&lt;/strong&gt; &lt;br/&gt;

2. Запускаем &lt;strong&gt;cmd&lt;/strong&gt; и выполняем:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;cd c:\Windows\NTDS
del /q /f *.log
ntdsutil&lt;/pre&gt;

&lt;p&gt;
3. В консоли &lt;strong&gt;NTDSUTIL&lt;/strong&gt; выполняем:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;activate instance ntds
files
info&lt;/pre&gt;

&lt;p&gt;
Смотрим и видим, что у нас действительно используются файлы из папки &lt;strong&gt;c:\Windows\NTDS&lt;/strong&gt;. &lt;br/&gt;

4. Выходим из &lt;strong&gt;NTDSUTIL&lt;/strong&gt; с помощью команды &lt;strong&gt;q&lt;/strong&gt;. &lt;br/&gt;

5. Собственно сама починка. В командной строчке выполняем:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;esentutl /p &amp;quot;c:\windows\ntds\ntds.dit&amp;quot;&lt;/pre&gt;

&lt;p&gt;
На вопрос отвечаем утвердительно. &lt;br/&gt;

6. Теперь выполняем дефрагментацию базы данных &lt;strong&gt;AD&lt;/strong&gt;. &lt;br/&gt;

Для этого создаем временную папку:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;cd C:\Windows\NTDS
md Temp&lt;/pre&gt;

&lt;p&gt;
7. Запускаем &lt;strong&gt;NTDSUTIL&lt;/strong&gt;
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;NTDSUTIL&lt;/pre&gt;

&lt;p&gt;
8. В консоли &lt;strong&gt;NTDSUTIL&lt;/strong&gt; выполняем:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;activate instance ntds
files
info
compact to &amp;quot;C:\Windows\NTDS\Temp&amp;quot;&lt;/pre&gt;

&lt;p&gt;
Выходим из &lt;strong&gt;ntdsutil&lt;/strong&gt; с помощью &lt;strong&gt;q&lt;/strong&gt; &lt;br/&gt;

9. Копируем дефрагментированную базу изз временной папки: 
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;copy /y C:\Windows\NTDS\Temp\ntds.dit C:\Windows\NTDS\ntds.dit
del /q /f C:\Windows\NTDS\*.log&lt;/pre&gt;

&lt;p&gt;
10. Перезагружаемся!!! Все должно работать! &lt;br/&gt;

&lt;a href=&quot;https://community.spiceworks.com/topic/1345241-2012-r2-dc-crash-and-won-t-boot-with-error-0xc00002e2&quot; class=&quot;urlextern&quot; title=&quot;https://community.spiceworks.com/topic/1345241-2012-r2-dc-crash-and-won-t-boot-with-error-0xc00002e2&quot; rel=&quot;ugc nofollow&quot;&gt;https://community.spiceworks.com/topic/1345241-2012-r2-dc-crash-and-won-t-boot-with-error-0xc00002e2&lt;/a&gt; &lt;br/&gt;

&lt;a href=&quot;https://ithinkvirtual.com/2017/11/12/fixing-a-corrupt-domain-controller-stop-code-0x00002e2/&quot; class=&quot;urlextern&quot; title=&quot;https://ithinkvirtual.com/2017/11/12/fixing-a-corrupt-domain-controller-stop-code-0x00002e2/&quot; rel=&quot;ugc nofollow&quot;&gt;https://ithinkvirtual.com/2017/11/12/fixing-a-corrupt-domain-controller-stop-code-0x00002e2/&lt;/a&gt; &lt;br/&gt;

&lt;a href=&quot;http://windowssystemsadmin.blogspot.com/2017/05/how-to-fix-c00002e2-directory-services.html&quot; class=&quot;urlextern&quot; title=&quot;http://windowssystemsadmin.blogspot.com/2017/05/how-to-fix-c00002e2-directory-services.html&quot; rel=&quot;ugc nofollow&quot;&gt;http://windowssystemsadmin.blogspot.com/2017/05/how-to-fix-c00002e2-directory-services.html&lt;/a&gt; &lt;br/&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;\u0420\u0435\u0448\u0435\u043d\u0438\u0435&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0440\u0435\u0448\u0435\u043d\u0438\u0435&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:2,&amp;quot;range&amp;quot;:&amp;quot;723-&amp;quot;} --&gt;</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Mon, 11 Feb 2019 09:13:28 +0000</pubDate>
        </item>
        <item>
            <title>windows_docker_failed_to_register_layer_cannot_create_layer_with_missing_parent</title>
            <link>https://wiki.autosys.tk/ms_windows_ms_sql/windows_docker_failed_to_register_layer_cannot_create_layer_with_missing_parent</link>
            <description>
&lt;h1 class=&quot;sectionedit1&quot; id=&quot;проблема&quot;&gt;Проблема&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
&lt;strong&gt;Windows Server 2019&lt;/strong&gt; &lt;br/&gt;

После очистки директории C:\ProgramData\docker\windowsfilter от &lt;strong&gt;orphan&lt;/strong&gt; слоев путем прибавления &lt;strong&gt;-removing&lt;/strong&gt; к имени папки и остановки сервиса &lt;strong&gt;docker&lt;/strong&gt; при скачивании образов получаю ошибку:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;failed to register layer: Cannot create layer with missing parent 24a11ea223dd48e16b0eec8b146825349969f6f14c7c84779e5a23d86cf9d4d6: CreateFile C:\ProgramData\docker\windowsfilter\24a11ea223dd48e16b0eec8b146825349969f6f14c7c84779e5a23d86cf9d4d6: The system cannot find the file specified.&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u041f\u0440\u043e\u0431\u043b\u0435\u043c\u0430&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0430&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:1,&amp;quot;range&amp;quot;:&amp;quot;1-652&amp;quot;} --&gt;
&lt;h1 class=&quot;sectionedit2&quot; id=&quot;решение&quot;&gt;Решение&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
Решил всё (удалением ??) докера, удалением всех файлов докера ( и установкой докера обратно ???)
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;Stop-Service docker
??? UnInstall-Package -Name Docker -ProviderName DockerMsftProvider
takeown /R /F C:\ProgramData\docker
ICACLS C:\ProgramData\docker /T /Q /C /RESET.
Remove-Item -Path C:\ProgramData\docker -Recurse -Force
??? Install-Package -Name Docker -ProviderName DockerMsftProvider -Update -Force
Start-Service docker&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0420\u0435\u0448\u0435\u043d\u0438\u0435&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0440\u0435\u0448\u0435\u043d\u0438\u0435&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:2,&amp;quot;range&amp;quot;:&amp;quot;653-&amp;quot;} --&gt;</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Fri, 24 Dec 2021 21:26:15 +0000</pubDate>
        </item>
        <item>
            <title>windows_docker_purge_orphan_layers</title>
            <link>https://wiki.autosys.tk/ms_windows_ms_sql/windows_docker_purge_orphan_layers</link>
            <description>
&lt;p&gt;
Если директория &lt;strong&gt;C:\ProgramData\docker\windowsfilter&lt;/strong&gt; неприлично разрослась, а команда 
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;docker system prune -a -f&lt;/pre&gt;

&lt;p&gt;
не помогает освобить место, то нужно почистить orphan (сиротские) слои, не принадлежащие никаким образам.
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;Function Find-OrphanDockerLayers () {

    param (
        [switch]$RenameOrphanLayers,
        [switch]$CalcSize
    )

    If ($RenameOrphanLayers) {
	    Write-Warning &amp;quot;$($env:COMPUTERNAME) -RenameOrphanLayers option enabled, will rename all orphan layers&amp;quot;
    }

    # Get known layers on Docker images
    [array]$ImageDetails += docker images -q | ForEach { docker inspect $_ | ConvertFrom-Json }
    ForEach ($Image in $ImageDetails) {
	    $ImageLayer = $Image.GraphDriver.Data.dir
	
	    [array]$ImageLayers += $ImageLayer
	    $LayerChain = Get-Content &amp;quot;$ImageLayer\layerchain.json&amp;quot;
	    If ($LayerChainFileContent -ne &amp;quot;null&amp;quot;) {
		    [array]$ImageParentLayers += $LayerChain | ConvertFrom-Json
	    }
    }

    # Get known layes on Docker containers
    [array]$ContainerDetails = docker ps -a -q | ForEach { docker inspect $_ | ConvertFrom-Json}
    ForEach ($Container in $ContainerDetails) {
	    [array]$ContainerLayers += $Container.GraphDriver.Data.dir
    }

    # Get layers on disk
    $LayersOnDisk = (Get-ChildItem -Path C:\ProgramData\Docker\windowsfilter -Directory).FullName
    $ImageLayers += $ImageParentLayers
    $UniqueImageLayers = $ImageLayers | Select-Object -Unique
    [array]$KnownLayers = $UniqueImageLayers
    $KnownLayers += $ContainerLayers

    # Find orphan layers
    $OrphanLayersTotal = 0
    ForEach ($Layer in $LayersOnDisk) {
	    If ($KnownLayers -notcontains $Layer) {
		    [array]$OrphanLayer += $Layer
            If ($CalcSize) {
                $LayerSize = (Get-ChildItem -Path $Layer -Recurse -ErrorAction:SilentlyContinue | Measure-Object -Property Length -Sum -ErrorAction Stop).Sum
		        $OrphanLayersTotal += $LayerSize
                Write-Warning &amp;quot;$($env:COMPUTERNAME) - Found orphan layer: $($Layer -Replace &amp;#039;\r\n&amp;#039;,&amp;#039;&amp;#039;) with size: $(($LayerSize -Replace &amp;#039;\r\n&amp;#039;,&amp;#039;&amp;#039;) / 1MB) MB&amp;quot;
            }
            else {
                Write-Warning &amp;quot;$($env:COMPUTERNAME) - Found orphan layer: $($Layer -Replace &amp;#039;\r\n&amp;#039;,&amp;#039;&amp;#039;)..&amp;quot;
            }
		
		    If (($RenameOrphanLayers) -and ($Layer -notlike &amp;quot;*-removing&amp;quot;)) {
                GrantFullAccessToAdmins $Layer
                $LayerNewPath = $Layer + &amp;quot;-removing&amp;quot;
			    Rename-Item -Path $Layer -NewName $LayerNewPath
		    }
	    }
    }

    Write-Host &amp;quot;$($env:COMPUTERNAME) - Layers on disk: $($LayersOnDisk.count)&amp;quot;
    Write-Host &amp;quot;$($env:COMPUTERNAME) - Image layers: $($UniqueImageLayers.count)&amp;quot;
    Write-Host &amp;quot;$($env:COMPUTERNAME) - Container layers: $($ContainerLayers.count)&amp;quot;
    If ($CalcSize) {
        $OrphanLayersTotalMB = $OrphanLayersTotal / 1MB
        Write-Warning &amp;quot;$($env:COMPUTERNAME) - Found $($OrphanLayer.count) orphan layers with total size $OrphanLayersTotalMB MB&amp;quot;
    }
    else {
        Write-Warning &amp;quot;$($env:COMPUTERNAME) - Found $($OrphanLayer.count) orphan layers...&amp;quot;
    }
    
}

function GrantFullAccessToAdmins ($Path) {
    $NewAcl = Get-Acl -Path $Path
    # Set properties
    $identity = &amp;quot;BUILTIN\Administrators&amp;quot;
    $fileSystemRights = &amp;quot;FullControl&amp;quot;
    #$type = &amp;quot;Allow&amp;quot;
    # Create new rule
    $fileSystemAccessRuleArgumentList = $identity, $fileSystemRights, &amp;quot;None&amp;quot;, &amp;quot;None&amp;quot;,&amp;quot;Allow&amp;quot; # $type (https://stackoverflow.com/a/37015095)
    $fileSystemAccessRule = New-Object -TypeName System.Security.AccessControl.FileSystemAccessRule -ArgumentList $fileSystemAccessRuleArgumentList
    # Apply new rule
    $NewAcl.SetAccessRule($fileSystemAccessRule)
    Set-Acl -Path $Path -AclObject $NewAcl
}

# Purge untagged images
if ( $(docker images -f &amp;quot;dangling=true&amp;quot; -q) ) { Invoke-Expression &amp;#039;docker rmi $(docker images -f &amp;quot;dangling=true&amp;quot; -q)&amp;#039; }

GrantFullAccessToAdmins &amp;quot;C:\ProgramData\docker\windowsfilter&amp;quot;

Find-OrphanDockerLayers -RenameOrphanLayers

# Due to short docker service shutdown timeout I will restart it untill all labeled layers be purged.
while (Get-ChildItem -Path C:\ProgramData\Docker\windowsfilter -Directory -Filter &amp;quot;*-removing&amp;quot;) {
    Stop-Service *docker*
    Restart-Service *docker*
}&lt;/pre&gt;
</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Sat, 25 Dec 2021 09:51:58 +0000</pubDate>
        </item>
        <item>
            <title>windows_server_2012_essentials_dashboard_crash</title>
            <link>https://wiki.autosys.tk/ms_windows_ms_sql/windows_server_2012_essentials_dashboard_crash</link>
            <description>
&lt;h1 class=&quot;sectionedit1&quot; id=&quot;windows_server_2012_essentials_dashboard_crash&quot;&gt;Windows Server 2012 Essentials Dashboard Crash&lt;/h1&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;Windows Server 2012 Essentials Dashboard Crash&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;windows_server_2012_essentials_dashboard_crash&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:1,&amp;quot;range&amp;quot;:&amp;quot;1-61&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit2&quot; id=&quot;проблема&quot;&gt;Проблема&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
Имеем полностью обновленную систему &lt;strong&gt;Windows Server 2012 R2&lt;/strong&gt;. &lt;br/&gt;

перестала нормально запускаться &lt;strong&gt;Dashboard&lt;/strong&gt; - &lt;strong&gt;%windir%\system32\ConsoleLauncher.exe&lt;/strong&gt; &lt;br/&gt;

Показывает только splashscreen и закрывается. &lt;br/&gt;

В сервисах не запускается &lt;strong&gt;Windows Server Health Service&lt;/strong&gt;. &lt;br/&gt;

В журнале &lt;strong&gt;C:\ProgramData\Microsoft\Windows Server\Logs\SharedServiceHost-AlertServiceConfig.log&lt;/strong&gt; встречается такое:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;ProviderFramework: Information: [0] : ExceptionScreener._ScreenForExceptions: Operation &amp;quot;GetAllNetworkAlerts&amp;quot; threw a FaultException&amp;lt;SecurityAccessDeniedException&amp;gt;: (FaultException&amp;lt;SecurityAccessDeniedException&amp;gt;) The creator of this fault did not specify a Reason. ==&amp;gt; (SecurityAccessDeniedException) System error.&lt;/pre&gt;

&lt;p&gt;
В логе &lt;strong&gt;\Event Viewer\Windows Logs\Application\&lt;/strong&gt; присутствует такое:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;Application: Dashboard.exe
Framework Version: v4.0.30319
Description: The process was terminated due to an unhandled exception.
Exception Info: System.InvalidOperationException
   at System.Security.Cryptography.SHA256Managed..ctor()
   at Microsoft.WindowsServerSolutions.Administration.Extensibility.Tracking.PluginInfo.GetFileHash(System.String)
   at Microsoft.WindowsServerSolutions.Administration.Extensibility.Tracking.PluginInfo.GetHashCode()
   at Microsoft.WindowsServerSolutions.Common.PluginMap.IsSamePlugin(Microsoft.WindowsServerSolutions.Administration.Extensibility.Tracking.PluginInfo, Microsoft.WindowsServerSolutions.Administration.Extensibility.Tracking.PluginInfo)
   at Microsoft.WindowsServerSolutions.Common.PluginMap.InitPluginMap(Microsoft.WindowsServerSolutions.Administration.Extensibility.Tracking.PluginInfo[])
   at Microsoft.WindowsServerSolutions.Dashboard.Forms.Dialogs.SafeMode.SafeModeSettingsDialog.LoadCrashedPlugins()
   at Microsoft.WindowsServerSolutions.Dashboard.Forms.Dialogs.SafeMode.SafeModeSettingsDialog.SetViewMode(Microsoft.WindowsServerSolutions.Dashboard.Forms.Dialogs.SafeMode.SafeModeSettingsDialogViewMode)
   at Microsoft.WindowsServerSolutions.Dashboard.Forms.Dialogs.SafeMode.SafeModeSettingsDialog.Initialize(Microsoft.WindowsServerSolutions.Dashboard.Forms.Dialogs.SafeMode.SafeModeSettingsDialogViewMode)
   at Microsoft.WindowsServerSolutions.Dashboard.Forms.Dialogs.SafeMode.SafeModeSettingsDialog.ShowDialog(Microsoft.WindowsServerSolutions.Dashboard.Forms.Dialogs.SafeMode.SafeModeSettingsDialogViewMode)
   at Microsoft.WindowsServerSolutions.Dashboard.Program.Main(System.String[])&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u041f\u0440\u043e\u0431\u043b\u0435\u043c\u0430&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0430&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:2,&amp;quot;range&amp;quot;:&amp;quot;62-2694&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit3&quot; id=&quot;причина&quot;&gt;Причина&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
Причина в строке - &lt;strong&gt;Exception Info: System.InvalidOperationException at System.Security.Cryptography.SHA256Managed..ctor()&lt;/strong&gt;. &lt;br/&gt;

Видимо, какой-то апдейт отключил &lt;strong&gt;SHA256&lt;/strong&gt;, а вернее включил политику &lt;strong&gt;FIPS&lt;/strong&gt;. То есть политику &lt;strong&gt;FIPS&lt;/strong&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;\u041f\u0440\u0438\u0447\u0438\u043d\u0430&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u043f\u0440\u0438\u0447\u0438\u043d\u0430&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:1,&amp;quot;secid&amp;quot;:3,&amp;quot;range&amp;quot;:&amp;quot;2695-3065&amp;quot;} --&gt;
&lt;h2 class=&quot;sectionedit4&quot; id=&quot;решение&quot;&gt;Решение&lt;/h2&gt;
&lt;div class=&quot;level2&quot;&gt;

&lt;p&gt;
На решение наткнулся вот в этом форуме: &lt;a href=&quot;https://social.msdn.microsoft.com/Forums/vstudio/en-US/e820d5b0-0172-4d94-b6ba-3f656bd3b1e1/fips-encryption-error-when-build-agent-labels-source?forum=tfsbuild&quot; class=&quot;urlextern&quot; title=&quot;https://social.msdn.microsoft.com/Forums/vstudio/en-US/e820d5b0-0172-4d94-b6ba-3f656bd3b1e1/fips-encryption-error-when-build-agent-labels-source?forum=tfsbuild&quot; rel=&quot;ugc nofollow&quot;&gt;https://social.msdn.microsoft.com/Forums/vstudio/en-US/e820d5b0-0172-4d94-b6ba-3f656bd3b1e1/fips-encryption-error-when-build-agent-labels-source?forum=tfsbuild&lt;/a&gt; &lt;br/&gt;

Ветка реестра:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa\FipsAlgorithmPolicy&lt;/pre&gt;

&lt;p&gt;
Ключ - &lt;strong&gt;Enabled&lt;/strong&gt;.  &lt;br/&gt;

ЧТобы всё заработало нужно выставить &lt;strong&gt;Enabled - 0&lt;/strong&gt;
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa\FipsAlgorithmPolicy]
&amp;quot;Enabled&amp;quot;=dword:00000000
&lt;/pre&gt;

&lt;p&gt;
После применения этого изменения успешно стартует сервис &lt;strong&gt;Windows Server Health Service&lt;/strong&gt; и запускается &lt;strong&gt;Dashboard&lt;/strong&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;\u0420\u0435\u0448\u0435\u043d\u0438\u0435&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0440\u0435\u0448\u0435\u043d\u0438\u0435&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:1,&amp;quot;secid&amp;quot;:4,&amp;quot;range&amp;quot;:&amp;quot;3066-&amp;quot;} --&gt;</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Mon, 11 Feb 2019 09:13:27 +0000</pubDate>
        </item>
        <item>
            <title>windows_server_2016_2019_change_product_key</title>
            <link>https://wiki.autosys.tk/ms_windows_ms_sql/windows_server_2016_2019_change_product_key</link>
            <description>
&lt;p&gt;
Если при попытке сменить ключ продукта с помощью 
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;slmgr.vsb -ipk&lt;/pre&gt;

&lt;p&gt;
вылезает ошибка типа:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;Run “slui.exe 0x2a 0xC004F069” to display the error text&lt;/pre&gt;

&lt;p&gt;
то нужно делать так:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;DISM.exe /Online /Get-TargetEditions
DISM /online /Set-Edition:ServerStandard /ProductKey:ENTER-YOUR-SERIAL-FROM-TABLE /AcceptEula&lt;/pre&gt;

&lt;h1 class=&quot;sectionedit1&quot; id=&quot;volume_gvlk_ключи_для_windows_server_2019&quot;&gt;Volume (GVLK) ключи для Windows Server 2019&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;
&lt;pre class=&quot;code&quot;&gt;Windows Server 2019 Datacenter WMDGN-G9PQG-XVVXX-R3X43-63DFG
Windows Server 2019 Standard N69G4-B89J2-4G8F4-WWYCC-J464C
Windows Server 2019 Standard Retail Q28NV-6P69W-4D4QT-QRCDW-J8HYD
Windows Server 2019 Essentials WVDHN-86M7X-466P6-VHXV7-YY726
Windows Server 2019 Azure Core FDNH6-VW9RW-BXPJ7-4XTYG-239TB
Windows Server 2019 Datacenter Semi-Annual Channel (v.1809) 6NMRW-2C8FM-D24W7-TQWMY-CWH2D
Windows Server 2019 Standard Semi-Annual Channel (v.1809) N2KJX-J94YW-TQVFB-DG9YT-724CC
Windows Server 2019 ARM64 GRFBW-QNDC4-6QBHG-CCK3B-2PR88&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Volume (GVLK) \u043a\u043b\u044e\u0447\u0438 \u0434\u043b\u044f Windows Server 2019&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;volume_gvlk_\u043a\u043b\u044e\u0447\u0438_\u0434\u043b\u044f_windows_server_2019&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:1,&amp;quot;range&amp;quot;:&amp;quot;384-1005&amp;quot;} --&gt;
&lt;h1 class=&quot;sectionedit2&quot; id=&quot;volume_gvlk_ключи_для_windows_server_2016&quot;&gt;Volume (GVLK) ключи для Windows Server 2016&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;
&lt;pre class=&quot;code&quot;&gt;Windows Server 2016 Standard Semi-Annual Channel (v.1803) PTXN8-JFHJM-4WC78-MPCBR-9W4KR
Windows Server 2016 Datacenter Semi-Annual Channel (v.1803) 2HXDN-KRXHB-GPYC7-YCKFJ-7FVDG
Windows Server 2016 Datacenter Semi-Annual Channel (v.1709) 6Y6KB-N82V8-D8CQV-23MJW-BWTG6
Windows Server 2016 Standard Semi-Annual Channel (v.1709) DPCNP-XQFKJ-BJF7R-FRC8D-GF6G4
Windows Server 2016 ARM64 K9FYF-G6NCK-73M32-XMVPY-F9DRR
Windows Server 2016 Datacenter CB7KF-BWN84-R7R2Y-793K2-8XDDG
Windows Server 2016 Standard WC2BQ-8NRM3-FDDYY-2BFGV-KHKQY
Windows Server 2016 Essentials JCKRF-N37P4-C2D82-9YXRT-4M63B
Windows Server 2016 Cloud Storage QN4C6-GBJD2-FB422-GHWJK-GJG2R
Windows Server 2016 Azure Core VP34G-4NPPG-79JTQ-864T4-R3MQX
WNCYY-GFBH2-M4WTT-XQ2FP-PG2K9&lt;/pre&gt;

&lt;p&gt;
И теперь можно выполнить:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;slmgr.vbs /ipk &amp;lt;your product key&amp;gt;
slmgr.vbs /ato&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;Volume (GVLK) \u043a\u043b\u044e\u0447\u0438 \u0434\u043b\u044f Windows Server 2016&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;volume_gvlk_\u043a\u043b\u044e\u0447\u0438_\u0434\u043b\u044f_windows_server_2016&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:1,&amp;quot;secid&amp;quot;:2,&amp;quot;range&amp;quot;:&amp;quot;1006-&amp;quot;} --&gt;</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Tue, 18 May 2021 18:16:22 +0000</pubDate>
        </item>
        <item>
            <title>windows_server_2016_bsod_inaccessible_boot_device_after_update</title>
            <link>https://wiki.autosys.tk/ms_windows_ms_sql/windows_server_2016_bsod_inaccessible_boot_device_after_update</link>
            <description>
&lt;h1 class=&quot;sectionedit1&quot; id=&quot;проблема&quot;&gt;Проблема&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
После очередного апдейта &lt;strong&gt;Windows Server 2016&lt;/strong&gt; виртуальная машина перестала загружаться. &lt;br/&gt;

При загрузке вываливался синий экран &lt;strong&gt;BSOD&lt;/strong&gt; с ошибкой &lt;strong&gt;INACCESSIBLE_BOOT_DEVICE - 0x0000007B&lt;/strong&gt;. &lt;br/&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;\u041f\u0440\u043e\u0431\u043b\u0435\u043c\u0430&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0430&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:1,&amp;quot;range&amp;quot;:&amp;quot;1-327&amp;quot;} --&gt;
&lt;h1 class=&quot;sectionedit2&quot; id=&quot;решение&quot;&gt;Решение&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
Мне удалось победить этот глюк. &lt;br/&gt;

&lt;/p&gt;
&lt;ol&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt;
 В гипервизоре (в моем случае - proxmox) устанавливаем тип диска, который будет доступен без дополнительных драйверов - IDE или SATA.
&lt;/div&gt;&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt;
 Загружаем систему в режиме автоматического восстановления (она сама это сделает после BSOD), либо загружаемся с инсталляционного диска и в окошке с кнопкой &lt;strong&gt;Install now&lt;/strong&gt; слева снизу жмем &lt;strong&gt;Repair your computer&lt;/strong&gt;. &lt;br/&gt;

&lt;/div&gt;&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt;
 Запускаем командную строку (&lt;strong&gt;Troubleshoot&lt;/strong&gt; → &lt;strong&gt;Command Prompt&lt;/strong&gt;).
&lt;/div&gt;&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt;
 В командной строке запускаем &lt;strong&gt;diskpart&lt;/strong&gt; с помощью нижеприведенных команд определяем на месте ли разделы и какая сейчас буква у диска с &lt;strong&gt;Windows&lt;/strong&gt; и у загрузочного раздела. Обычно достаточно &lt;strong&gt;list volume&lt;/strong&gt;.&lt;pre class=&quot;code&quot;&gt;  diskpart
  list volume
  
  select disk 0
  detail disk
  list partition
  select partition 1
  detail partition
  select partition 2
  detail partition
  select disk 1
  detail disk
  list partition
  exit&lt;/pre&gt;

&lt;p&gt;
или
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;  bcdedit |find &amp;quot;osdevice&amp;quot;
  osdevice       partition=D: &lt;/pre&gt;

&lt;p&gt;

&lt;/div&gt;&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt;
 Смотрим что файлы на месте и на всякий случай проверяем диск:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;  dir d:\
  chkdsk /r d: &lt;/pre&gt;

&lt;p&gt;

&lt;/div&gt;&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt;
 При необходимости - перезагружаемся опять в режим восстановления.
&lt;/div&gt;&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt;
 Проверяем целостность системных файлов:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;  sfc /scannow /offbootdir=d:\ /offwindir=d:\windows&lt;/pre&gt;

&lt;p&gt;

&lt;/div&gt;&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt;
 Чиним загрузочные компоненты:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;  bootrec /fixmbr
  bootrec /fixboot
  bootrec /scanos
  bootrec /rebuildbcd&lt;/pre&gt;

&lt;p&gt;

&lt;/div&gt;&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt;
 На этом этапе утилита может сказать, что &lt;strong&gt;Total identified Windows installations: 0&lt;/strong&gt;. Тогда делаем так (предполагая, что буква &lt;strong&gt;C&lt;/strong&gt; у нас назначена загрузочному разделу): 
&lt;/div&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt;
 Делаем бекап 
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;  bcdedit /export c:\bcdbackup &lt;/pre&gt;

&lt;p&gt;

&lt;/div&gt;&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt;
 Меняем аттрибуты, чтобы можно было заменить загрузчик 
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;  attrib c:\boot\bcd -h -r -s
  ren c:\boot\bcd bcd.old &lt;/pre&gt;

&lt;p&gt;

&lt;/div&gt;&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt;
 И теперь мы можем сгенерировать новый загрузчик:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;bootrec /rebuildbcd

Scanning all disks for Windows installations.

Please wait, since this may take a while...

Successfully scanned Windows installations.
Total identified Windows installations: 1
[1]  D:\Windows
Add installation to boot list? Yes&amp;lt;Y&amp;gt;/No&amp;lt;N&amp;gt;/All&amp;lt;A&amp;gt;:Y

The operation completed successfully.&lt;/pre&gt;

&lt;/div&gt;&lt;/li&gt;
&lt;/ul&gt;


&lt;p&gt;
&lt;br/&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;\u0420\u0435\u0448\u0435\u043d\u0438\u0435&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0440\u0435\u0448\u0435\u043d\u0438\u0435&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:2,&amp;quot;range&amp;quot;:&amp;quot;328-&amp;quot;} --&gt;</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Mon, 11 Feb 2019 09:13:28 +0000</pubDate>
        </item>
        <item>
            <title>windows_server_2016_containers</title>
            <link>https://wiki.autosys.tk/ms_windows_ms_sql/windows_server_2016_containers</link>
            <description>
&lt;p&gt;
Ошибка:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;install-package -name docker -providername DockerMsftProvider -Force
WARNING: Cannot find path &amp;#039;C:\Users\TESUSR~1\AppData\Local\Temp\DockerMsftProvider\DockerDefault_DockerSearchIndex.json&amp;#039; because it does not exist.&lt;/pre&gt;

&lt;p&gt;
Она возникает при попытке установить Docker, запустив консоль &lt;strong&gt;PowerShell&lt;/strong&gt; непосредственно на сервере, на котором &lt;strong&gt;Docker&lt;/strong&gt; он будет работать.
Причина - в службе &lt;strong&gt;BITS&lt;/strong&gt; (&lt;a href=&quot;https://github.com/OneGet/MicrosoftDockerProvider/issues/11&quot; class=&quot;urlextern&quot; title=&quot;https://github.com/OneGet/MicrosoftDockerProvider/issues/11&quot; rel=&quot;ugc nofollow&quot;&gt;https://github.com/OneGet/MicrosoftDockerProvider/issues/11&lt;/a&gt;)
Как исправить - подключаться удаленно к этому серверу. Для этого на клиенте (компьютере с которого подключаетесь к серверу с контейнерами) нужно добавить хост в доверенные (или разрешить доверие к любым хостам):
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;Set-Item wsman:\localhost\client\trustedhosts *&lt;/pre&gt;

&lt;p&gt;
На сервере с контейнерами разрешить удаленное подключение PowerShell Remote:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;Enable-PSRemoting -Force
Restart-Service WinRM&lt;/pre&gt;

&lt;p&gt;
Затем подключиться к хосту и устанавливать &lt;strong&gt;Docker&lt;/strong&gt; так:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;Enter-PSSession -ComputerName COMPUTER -Credential USER
Install-Module -Name DockerMsftProvider -Repository PSGallery -Force
Install-Package -Name docker -ProviderName DockerMsftProvider
Restart-Computer -Force&lt;/pre&gt;

&lt;h1 class=&quot;sectionedit1&quot; id=&quot;вручную&quot;&gt;Вручную&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
Если возникает ошибка &lt;strong&gt;SHA256 not matching while installing docker&lt;/strong&gt;, то можно установить докер вручную:
&lt;a href=&quot;https://docs.microsoft.com/en-us/virtualization/windowscontainers/manage-docker/configure-docker-daemon&quot; class=&quot;urlextern&quot; title=&quot;https://docs.microsoft.com/en-us/virtualization/windowscontainers/manage-docker/configure-docker-daemon&quot; rel=&quot;ugc nofollow&quot;&gt;https://docs.microsoft.com/en-us/virtualization/windowscontainers/manage-docker/configure-docker-daemon&lt;/a&gt; &lt;br/&gt;

&lt;a href=&quot;https://docs.docker.com/engine/installation/windows/docker-ee/&quot; class=&quot;urlextern&quot; title=&quot;https://docs.docker.com/engine/installation/windows/docker-ee/&quot; rel=&quot;ugc nofollow&quot;&gt;https://docs.docker.com/engine/installation/windows/docker-ee/&lt;/a&gt; &lt;br/&gt;

&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;$version = (Invoke-WebRequest -UseBasicParsing https://raw.githubusercontent.com/docker/docker/master/VERSION).Content.Trim()
Invoke-WebRequest &amp;quot;https://master.dockerproject.org/windows/x86_64/docker-$($version).zip&amp;quot; -OutFile &amp;quot;$env:TEMP\docker.zip&amp;quot; -UseBasicParsing

Expand-Archive &amp;quot;$env:TEMP\docker.zip&amp;quot; -DestinationPath $Env:ProgramFiles
Remove-Item -Force &amp;quot;$env:TEMP\docker.zip&amp;quot;
$null = Install-WindowsFeature containers
$env:path += &amp;quot;$env:ProgramFiles\docker&amp;quot;

$newPath = &amp;quot;$env:ProgramFiles\docker;&amp;quot; +  [Environment]::GetEnvironmentVariable(&amp;quot;PATH&amp;quot;,  [EnvironmentVariableTarget]::Machine)
[Environment]::SetEnvironmentVariable(&amp;quot;PATH&amp;quot;, $newPath, [EnvironmentVariableTarget]::Machine)

&amp;quot;$env:ProgramFiles\docker\dockerd.exe --register-service&amp;quot;
 
Restart-Computer -Force&lt;/pre&gt;

&lt;p&gt;
Проверяем:  
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;docker run hello-world:nanoserver&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0412\u0440\u0443\u0447\u043d\u0443\u044e&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0432\u0440\u0443\u0447\u043d\u0443\u044e&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:1,&amp;quot;secid&amp;quot;:1,&amp;quot;range&amp;quot;:&amp;quot;1527-&amp;quot;} --&gt;</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Mon, 11 Feb 2019 09:13:27 +0000</pubDate>
        </item>
        <item>
            <title>windows_server_2016_exchange_2016_cant_generate_export-module</title>
            <link>https://wiki.autosys.tk/ms_windows_ms_sql/windows_server_2016_exchange_2016_cant_generate_export-module</link>
            <description>
&lt;p&gt;
После удаления &lt;strong&gt;Exchange Management Tools 2010&lt;/strong&gt; и установки &lt;strong&gt;Exchange Management Tools 2016&lt;/strong&gt; консоль &lt;strong&gt;Exchange Management Shell&lt;/strong&gt; запускается, но командлеты &lt;strong&gt;Exchange&lt;/strong&gt; недоступны. При подключении появляется &lt;strong&gt;warning&lt;/strong&gt;:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;VERBOSE: Connecting to exchange.server.local.
WARNING: Can&amp;#039;t generate Export-Module for the current session using Import-PSSession.
VERBOSE: Connected to exchange.server.local.&lt;/pre&gt;

&lt;h1 class=&quot;sectionedit1&quot; id=&quot;что_помогло&quot;&gt;Что помогло&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
Помогло выполнение в консоли &lt;strong&gt;Exchange Management Tools 2016&lt;/strong&gt;.
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;Connect-ExchangeServer -Auto -ClearCache&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0427\u0442\u043e \u043f\u043e\u043c\u043e\u0433\u043b\u043e&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0447\u0442\u043e_\u043f\u043e\u043c\u043e\u0433\u043b\u043e&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:1,&amp;quot;secid&amp;quot;:1,&amp;quot;range&amp;quot;:&amp;quot;507-678&amp;quot;} --&gt;
&lt;h1 class=&quot;sectionedit2&quot; id=&quot;дополнительные_рекомендации&quot;&gt;Дополнительные Рекомендации&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
На случай если не помогло. &lt;br/&gt;

&lt;a href=&quot;https://social.technet.microsoft.com/Forums/ie/en-US/025f9307-0bec-4248-933d-e7a01cd22785/how-do-i-get-rid-of-the-quotcant-generate-exportmodule-for-the-current-session-using?forum=exchange2010&quot; class=&quot;urlextern&quot; title=&quot;https://social.technet.microsoft.com/Forums/ie/en-US/025f9307-0bec-4248-933d-e7a01cd22785/how-do-i-get-rid-of-the-quotcant-generate-exportmodule-for-the-current-session-using?forum=exchange2010&quot; rel=&quot;ugc nofollow&quot;&gt;https://social.technet.microsoft.com/Forums/ie/en-US/025f9307-0bec-4248-933d-e7a01cd22785/how-do-i-get-rid-of-the-quotcant-generate-exportmodule-for-the-current-session-using?forum=exchange2010&lt;/a&gt;
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;Workaround solution

    Delete all under %userprofile%\AppData\Roaming\Microsoft\Exchange\RemotePowerShell\
    Log off/Log on
    in Elevated cmd: iisreset
    Wait 1 min.
    In Elevated CommandPromt type: 

C:\Windows\system32&amp;gt;powershell -version 2
Windows PowerShell
Copyright (C) 2009 Microsoft Corporation. All rights reserved.

PS C:\Windows\system32&amp;gt;

 

  6. After that in the same window run

. $env:ExchangeInstallPath\bin\RemoteExchange.ps1
Connect-ExchangeServer -Auto

 7. You will get a lot of errors and you&amp;#039;ll be asked once to type the server FQDN, Type it.
Easy find your server FQDN in PS:
$env:COMPUTERNAME+&amp;#039;.&amp;#039;+$env:USERDNSDOMAIN
or
(Get-WmiObject win32_computersystem).DNSHostName+&amp;quot;.&amp;quot;+(Get-WmiObject win32_computersystem).Domain

8. In Elevated Windows Powershell

. $env:ExchangeInstallPath\bin\RemoteExchange.ps1
Connect-ExchangeServer -Auto -ClearCache

And now you can start EMS, that should work.

I do not know why, but it helped me twice.&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0414\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u0420\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0430\u0446\u0438\u0438&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0435_\u0440\u0435\u043a\u043e\u043c\u0435\u043d\u0434\u0430\u0446\u0438\u0438&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:1,&amp;quot;secid&amp;quot;:2,&amp;quot;range&amp;quot;:&amp;quot;679-&amp;quot;} --&gt;</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Mon, 11 Feb 2019 09:13:27 +0000</pubDate>
        </item>
        <item>
            <title>windows_server_2016_windows_10_disk_space_cleanup</title>
            <link>https://wiki.autosys.tk/ms_windows_ms_sql/windows_server_2016_windows_10_disk_space_cleanup</link>
            <description>
&lt;p&gt;
Если &lt;strong&gt;Windows 10&lt;/strong&gt; или &lt;strong&gt;Windows Server 2016&lt;/strong&gt; занимают много места, то скорее всего, они накачались обновлений и не удаляют их. &lt;br/&gt;

Признаками этого могут являться - огромные размеры папок &lt;strong&gt;c:\Windows\WinSxS&lt;/strong&gt;, &lt;strong&gt;C:\Windows\SoftwareDistribution\Download&lt;/strong&gt; и других. &lt;br/&gt;

Помочь очистить эти папки и освободить место могут команды, выполненные с правами админа:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;dism /online /cleanup-image /restorehealth
dism /online /cleanup-image /spsuperseded
Dism.exe /online /Cleanup-Image /StartComponentCleanup
Dism.exe /online /Cleanup-Image /StartComponentCleanup /ResetBase&lt;/pre&gt;

&lt;h1 class=&quot;sectionedit1&quot; id=&quot;проблемы&quot;&gt;Проблемы&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;
&lt;pre class=&quot;code&quot;&gt;dism /online /cleanup-image /restorehealth

Deployment Image Servicing and Management tool
Version: 10.0.14393.0

Image Version: 10.0.14393.2457

[==========================100.0%==========================]
Error: 14

Not enough storage is available to complete this operation.

The DISM log file can be found at C:\Windows\Logs\DISM\dism.log&lt;/pre&gt;

&lt;p&gt;
При этом, проблема не в свободно месте на диске. На диске свободно 30Gb и даже использование отдельного диска с ключом &lt;strong&gt;/ScratchDir&lt;/strong&gt; результата не дало.&lt;br/&gt;

&lt;/p&gt;

&lt;p&gt;
В логах &lt;strong&gt;C:\Windows\Logs\DISM\dism.log&lt;/strong&gt; и &lt;strong&gt;%WINDIR%\logs\CBS\cbs.log&lt;/strong&gt; такое:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;2018-11-21 15:26:12, Info                  DISM   DISM Package Manager: PID=6984 TID=7012  Error in operation: (null) (CBS HRESULT=0x8007000e) - CCbsConUIHandler::Error
2018-11-21 15:26:12, Error                 DISM   DISM Package Manager: PID=6984 TID=7032 Failed finalizing changes. - CDISMPackageManager::Internal_Finalize(hr:0x8007000e)
2018-11-21 15:26:12, Error                 DISM   DISM Package Manager: PID=6984 TID=7032 Failed processing package changes with session option CbsSessionOptionRepairStoreCorruption - CDISMPackageManager::RestoreHealth(hr:0x8007000e)
2018-11-21 15:26:13, Error                 DISM   DISM Package Manager: PID=6984 TID=7032 Failed to restore the image health. - CPackageManagerCLIHandler::ProcessCmdLine_CleanupImage(hr:0x8007000e)
2018-11-21 15:26:13, Error                 DISM   DISM Package Manager: PID=6984 TID=7032 Failed while processing command cleanup-image. - CPackageManagerCLIHandler::ExecuteCmdLine(hr:0x8007000e)
2018-11-21 15:26:13, Info                  DISM   DISM Package Manager: PID=6984 TID=7032 Further logs for online package and feature related operations can be found at %WINDIR%\logs\CBS\cbs.log - CPackageManagerCLIHandler::ExecuteCmdLine
2018-11-21 15:26:13, Error                 DISM   DISM.EXE: DISM Package Manager processed the command line but failed. HRESULT=8007000E&lt;/pre&gt;
&lt;pre class=&quot;code&quot;&gt;2018-11-21 15:26:12, Info                  CBS    Exec: Processing complete, session(Corruption Repairing): 30704016_2607851930 [HRESULT = 0x8007000e - E_OUTOFMEMORY]
2018-11-21 15:26:12, Error                 CBS    Session: 30704016_2607851930 failed to perform store corruption detect and repair operation. [HRESULT = 0x8007000e - E_OUTOFMEMORY]
2018-11-21 15:26:12, Info                  CBS    Session: 30704016_2607851930 finalized. Download error: 0x8007000e [E_OUTOFMEMORY], Reboot required: no [HRESULT = 0x8007000e - E_OUTOFMEMORY]
2018-11-21 15:26:12, Info                  CBS    Failed to FinalizeEx using worker session [HRESULT = 0x8007000e]
2018-11-21 15:28:14, Info                  CBS    Trusted Installer is shutting down because: SHUTDOWN_REASON_AUTOSTOP&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u041f\u0440\u043e\u0431\u043b\u0435\u043c\u044b&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u043f\u0440\u043e\u0431\u043b\u0435\u043c\u044b&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:1,&amp;quot;range&amp;quot;:&amp;quot;779-&amp;quot;} --&gt;</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Mon, 11 Feb 2019 09:13:28 +0000</pubDate>
        </item>
        <item>
            <title>windows_server_2016_windows_10_start_button_not_working</title>
            <link>https://wiki.autosys.tk/ms_windows_ms_sql/windows_server_2016_windows_10_start_button_not_working</link>
            <description>
&lt;h1 class=&quot;sectionedit1&quot; id=&quot;проблема&quot;&gt;Проблема&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
На компьютерах с &lt;strong&gt;Windows 10&lt;/strong&gt; и &lt;strong&gt;Windows Server 2016&lt;/strong&gt;, введенных в домен &lt;strong&gt;ActiveDirectory&lt;/strong&gt;, не работает кнопка &lt;strong&gt;Пуск&lt;/strong&gt; (&lt;strong&gt;Start&lt;/strong&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;\u041f\u0440\u043e\u0431\u043b\u0435\u043c\u0430&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0430&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:1,&amp;quot;range&amp;quot;:&amp;quot;1-445&amp;quot;} --&gt;
&lt;h1 class=&quot;sectionedit2&quot; id=&quot;причина_и_решение&quot;&gt;Причина и решение&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
Причина кроется в групповых политиках &lt;strong&gt;AppLocker&lt;/strong&gt; и &lt;strong&gt;Software Restriction Policy&lt;/strong&gt;. &lt;br/&gt;

Как известно, &lt;strong&gt;Software Restriction Policy&lt;/strong&gt; предназначены для использования на компьютерах с &lt;strong&gt;Windows Vista&lt;/strong&gt; и более старыми ОС, а &lt;strong&gt;AppLocker&lt;/strong&gt; - для &lt;strong&gt;Windows 7&lt;/strong&gt; и более новых. &lt;br/&gt;

Их совместная работа невозможна. При наличии любых правил &lt;strong&gt;AppLocker&lt;/strong&gt; настройки &lt;strong&gt;Software Restriction Policy&lt;/strong&gt; игнорируются - &lt;a href=&quot;https://docs.microsoft.com/en-us/windows/security/threat-protection/windows-defender-application-control/applocker/use-applocker-and-software-restriction-policies-in-the-same-domain&quot; class=&quot;urlextern&quot; title=&quot;https://docs.microsoft.com/en-us/windows/security/threat-protection/windows-defender-application-control/applocker/use-applocker-and-software-restriction-policies-in-the-same-domain&quot; rel=&quot;ugc nofollow&quot;&gt;https://docs.microsoft.com/en-us/windows/security/threat-protection/windows-defender-application-control/applocker/use-applocker-and-software-restriction-policies-in-the-same-domain&lt;/a&gt;. Поэтому в организациях, где &lt;strong&gt;Software Restriction Policy&lt;/strong&gt; используется уже много лет, &lt;strong&gt;AppLocker&lt;/strong&gt; выключен.&lt;br/&gt;

Для того, чтобы меню &lt;strong&gt;Start&lt;/strong&gt; работало нужно создать дефолтную политику &lt;strong&gt;AppLocker&lt;/strong&gt; в ветке &lt;strong&gt;Packaged app Rules&lt;/strong&gt;. В редакторе политик находим &lt;strong&gt;AppLocker&lt;/strong&gt;, раскрываем его ветку, нажимаем правой кнопкой по ветке &lt;strong&gt;Packaged app Rules&lt;/strong&gt; и кликаем &lt;strong&gt;Create Default Rules&lt;/strong&gt;. &lt;br/&gt;

Дефолтная политика &lt;strong&gt;Packaged app Rules&lt;/strong&gt; позволяет всем пользователям запускать любые подписанные (signed) приложения.&lt;br/&gt;

По всей видимости, таким нехитрым образом &lt;strong&gt;Microsoft&lt;/strong&gt; стимулирует переход на &lt;strong&gt;AppLocker&lt;/strong&gt;. Если вы продолжаете использовать &lt;strong&gt;Software Restriction Policy&lt;/strong&gt;, то будете мучаться без кнопки &lt;strong&gt;Start&lt;/strong&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;\u041f\u0440\u0438\u0447\u0438\u043d\u0430 \u0438 \u0440\u0435\u0448\u0435\u043d\u0438\u0435&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u043f\u0440\u0438\u0447\u0438\u043d\u0430_\u0438_\u0440\u0435\u0448\u0435\u043d\u0438\u0435&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:2,&amp;quot;range&amp;quot;:&amp;quot;446-&amp;quot;} --&gt;</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Mon, 11 Feb 2019 09:13:27 +0000</pubDate>
        </item>
        <item>
            <title>windows_server_core_winrm_negotiate_authentication_error</title>
            <link>https://wiki.autosys.tk/ms_windows_ms_sql/windows_server_core_winrm_negotiate_authentication_error</link>
            <description>
&lt;p&gt;
При попытке проадминить работающий вне домена &lt;strong&gt;Windows Server Core 20H2&lt;/strong&gt; в &lt;strong&gt;Server Manager&lt;/strong&gt; вылезла ошибка:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;Winrm negotiate authentication error&lt;/pre&gt;

&lt;p&gt;
Это означает, что клиентский сервер (с которого выполняем управление) не смог согласовать параметры сессии &lt;strong&gt;WinRM&lt;/strong&gt; с управляемым сервером. Причин может быть несколько:
&lt;/p&gt;
&lt;ul&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt;
 На управляемом сервере отключена аутентификация &lt;strong&gt;Negotiate&lt;/strong&gt;
&lt;/div&gt;&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt;
 Клиент (сервер с которого админим) не доверяет администрируемому серверу.
&lt;/div&gt;&lt;/li&gt;
&lt;li class=&quot;level1&quot;&gt;&lt;div class=&quot;li&quot;&gt;
 Учетные данные, с которыми осуществляется подключение, не валидны.
&lt;/div&gt;&lt;/li&gt;
&lt;/ul&gt;


&lt;h1 class=&quot;sectionedit1&quot; id=&quot;диагностика_управляемого_сервера&quot;&gt;Диагностика управляемого сервера&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
Посмотрим параметры WinRM. По дефолту всё должно быть корректно и сервер не включенный в домен должен дать себя проадминить с учеткой локального админа:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;winrm get winrm/config/service
winrm enumerate winrm/config/listener&lt;/pre&gt;

&lt;p&gt;
В выводе этих двух команд должно быть:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;Service
  ...
  Auth
    ...
    Negotiate = true
 ...
 AllowRemoteAccess = true&lt;/pre&gt;

&lt;p&gt;
ну и &lt;strong&gt;Listener&lt;/strong&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;\u0414\u0438\u0430\u0433\u043d\u043e\u0441\u0442\u0438\u043a\u0430 \u0443\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u043c\u043e\u0433\u043e \u0441\u0435\u0440\u0432\u0435\u0440\u0430&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0434\u0438\u0430\u0433\u043d\u043e\u0441\u0442\u0438\u043a\u0430_\u0443\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u043c\u043e\u0433\u043e_\u0441\u0435\u0440\u0432\u0435\u0440\u0430&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:1,&amp;quot;range&amp;quot;:&amp;quot;886-1590&amp;quot;} --&gt;
&lt;h1 class=&quot;sectionedit2&quot; id=&quot;диагностика_управляющего_сервера&quot;&gt;Диагностика управляющего сервера&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
На управляющем сервере важно убедиться, что не введенный в домен сервер прописан в &lt;strong&gt;Trusted Hosts&lt;/strong&gt;:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;Get-Item WSMan:\localhost\Client\TrustedHosts | select name,value | format-list&lt;/pre&gt;

&lt;p&gt;
Очень важно, что в списке &lt;strong&gt;Trusted Hosts&lt;/strong&gt; сервер должен быть прописан с &lt;strong&gt;&lt;abbr title=&quot;Domain Name System&quot;&gt;DNS&lt;/abbr&gt;-суффиксом&lt;/strong&gt;. В моем случае &lt;strong&gt;DHCP&lt;/strong&gt; сервер выдавал управляемому серверу суффикс &lt;strong&gt;.lan&lt;/strong&gt; и до тех пор, пока я не прописал сервер в &lt;strong&gt;Trusted Hosts&lt;/strong&gt; с этим суффиксом подключиться не удавалось. &lt;br/&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;\u0414\u0438\u0430\u0433\u043d\u043e\u0441\u0442\u0438\u043a\u0430 \u0443\u043f\u0440\u0430\u0432\u043b\u044f\u044e\u0449\u0435\u0433\u043e \u0441\u0435\u0440\u0432\u0435\u0440\u0430&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0434\u0438\u0430\u0433\u043d\u043e\u0441\u0442\u0438\u043a\u0430_\u0443\u043f\u0440\u0430\u0432\u043b\u044f\u044e\u0449\u0435\u0433\u043e_\u0441\u0435\u0440\u0432\u0435\u0440\u0430&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:2,&amp;quot;range&amp;quot;:&amp;quot;1591-2369&amp;quot;} --&gt;
&lt;h1 class=&quot;sectionedit3&quot; id=&quot;добавление_управляемомго_сервера_в_trusted_hosts&quot;&gt;Добавление управляемомго сервера в Trusted Hosts&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
Это актуально, если серверы не входят в один домен. В пределах домена, как правило, серверы доверяют друг другу. &lt;br/&gt;

На управляющем сервере запускаем &lt;strong&gt;powershell&lt;/strong&gt; с правами администратора и добавляем хост в доверенные:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;Set-Item wsman:\localhost\Client\TrustedHosts &amp;quot;computer_name&amp;quot; -Concatenate -Force&lt;/pre&gt;

&lt;p&gt;
И теперь прописываем учетные данные для доступа к этому хосту:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;cmdkey /add:computer_name /user:Administrator /pass:SUPERPASSWORD&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0414\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0443\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u043c\u043e\u043c\u0433\u043e \u0441\u0435\u0440\u0432\u0435\u0440\u0430 \u0432 Trusted Hosts&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0438\u0435_\u0443\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u043c\u043e\u043c\u0433\u043e_\u0441\u0435\u0440\u0432\u0435\u0440\u0430_\u0432_trusted_hosts&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:3,&amp;quot;range&amp;quot;:&amp;quot;2370-3122&amp;quot;} --&gt;
&lt;h1 class=&quot;sectionedit4&quot; id=&quot;не_работает_computer_management&quot;&gt;не работает Computer Management&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
Если в консоли &lt;strong&gt;Server Manager&lt;/strong&gt; хост Online, но &lt;strong&gt;Computer Management&lt;/strong&gt;  не работает, то скорее всего виноват &lt;strong&gt;Firewall&lt;/strong&gt;. &lt;br/&gt;

Из консоли &lt;strong&gt;Server Manager&lt;/strong&gt; запускаем на удаленном хосте сессию &lt;strong&gt;powershell&lt;/strong&gt; и отключаем &lt;strong&gt;Firewall&lt;/strong&gt;:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;Set-NetFirewallProfile -Profile Domain,Public,Private -Enabled False&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u043d\u0435 \u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442 Computer Management&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u043d\u0435_\u0440\u0430\u0431\u043e\u0442\u0430\u0435\u0442_computer_management&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:4,&amp;quot;range&amp;quot;:&amp;quot;3123-3584&amp;quot;} --&gt;
&lt;h1 class=&quot;sectionedit5&quot; id=&quot;удаленный_доступ&quot;&gt;Удаленный доступ&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
Разрешим подключение по RDP (хотя там будет доступен только cmd и powershell):
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;Set-ItemProperty -Path &amp;#039;HKLM:System\CurrentControlSet\Control\Terminal Server&amp;#039; -name &amp;quot;fDenyTSConnections&amp;quot; -value 0&lt;/pre&gt;

&lt;p&gt;
Ну и дадим разрешение на firewall (если он еще не отклбчен):
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;Enable-NetFirewallRule -DisplayGroup &amp;quot;Remote Desktop&amp;quot;&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0423\u0434\u0430\u043b\u0435\u043d\u043d\u044b\u0439 \u0434\u043e\u0441\u0442\u0443\u043f&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0443\u0434\u0430\u043b\u0435\u043d\u043d\u044b\u0439_\u0434\u043e\u0441\u0442\u0443\u043f&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:5,&amp;quot;range&amp;quot;:&amp;quot;3585-&amp;quot;} --&gt;</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Tue, 18 May 2021 10:41:02 +0000</pubDate>
        </item>
        <item>
            <title>windows_services_pids_running_under_svchost</title>
            <link>https://wiki.autosys.tk/ms_windows_ms_sql/windows_services_pids_running_under_svchost</link>
            <description>
&lt;p&gt;
Смотрим какой &lt;strong&gt;svchost&lt;/strong&gt; запустил нужный сервис:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;tasklist /svc /fi &amp;quot;imagename eq svchost.exe&amp;quot;&lt;/pre&gt;

&lt;p&gt;
Убиваем процесс:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;taskkill /pid PID_NUMBER /F /T&lt;/pre&gt;

&lt;p&gt;
Запускаем сервис снова:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;sc start ServiceName&lt;/pre&gt;
</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Mon, 11 Feb 2019 09:13:27 +0000</pubDate>
        </item>
        <item>
            <title>windows_time_service_w32time_set_new_ntp_server</title>
            <link>https://wiki.autosys.tk/ms_windows_ms_sql/windows_time_service_w32time_set_new_ntp_server</link>
            <description>
&lt;h1 class=&quot;sectionedit1&quot; id=&quot;принудительная_синхронизация_времени_на_windows&quot;&gt;Принудительная синхронизация времени на Windows&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;
&lt;pre class=&quot;code&quot;&gt;w32tm /resync&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u041f\u0440\u0438\u043d\u0443\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u0430\u044f \u0441\u0438\u043d\u0445\u0440\u043e\u043d\u0438\u0437\u0430\u0446\u0438\u044f \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u043d\u0430 Windows&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u043f\u0440\u0438\u043d\u0443\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u0430\u044f_\u0441\u0438\u043d\u0445\u0440\u043e\u043d\u0438\u0437\u0430\u0446\u0438\u044f_\u0432\u0440\u0435\u043c\u0435\u043d\u0438_\u043d\u0430_windows&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:1,&amp;quot;range&amp;quot;:&amp;quot;1-113&amp;quot;} --&gt;
&lt;h1 class=&quot;sectionedit2&quot; id=&quot;настройка_ntp-клиента&quot;&gt;Настройка NTP-клиента&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;
&lt;pre class=&quot;code&quot;&gt;w32tm /config /manualpeerlist:&amp;quot;pool.ntp.org&amp;quot; /syncfromflags:manual /reliable:yes /update
net stop w32time
net start w32time
w32tm /resync
w32tm /query /status&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 NTP-\u043a\u043b\u0438\u0435\u043d\u0442\u0430&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430_ntp-\u043a\u043b\u0438\u0435\u043d\u0442\u0430&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:2,&amp;quot;range&amp;quot;:&amp;quot;114-&amp;quot;} --&gt;</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Mon, 11 Feb 2019 09:13:27 +0000</pubDate>
        </item>
        <item>
            <title>wmi_repository_repair</title>
            <link>https://wiki.autosys.tk/ms_windows_ms_sql/wmi_repository_repair</link>
            <description>
&lt;p&gt;
Довольно часто на терминальных серверах &lt;strong&gt;Citrix&lt;/strong&gt; повреждается репозиторий &lt;strong&gt;WMI&lt;/strong&gt;. Это приводит к тормозам и глюкам, а также нарушает работу некоторых важных функций и программ. Например. перестает корректно работать &lt;strong&gt;ThinPrint Terminal Extension&lt;/strong&gt; - софтина нужная для прописывания принтеров с принтсервера &lt;strong&gt;ThinPrint&lt;/strong&gt;. 
&lt;/p&gt;

&lt;p&gt;
Вот в этой статье: &lt;a href=&quot;https://blogs.technet.microsoft.com/askperf/2014/08/08/wmi-repository-corruption-or-not/&quot; class=&quot;urlextern&quot; title=&quot;https://blogs.technet.microsoft.com/askperf/2014/08/08/wmi-repository-corruption-or-not/&quot; rel=&quot;ugc nofollow&quot;&gt;https://blogs.technet.microsoft.com/askperf/2014/08/08/wmi-repository-corruption-or-not/&lt;/a&gt; приведены ркомендации по восстановлению работоспособности &lt;strong&gt;WMI&lt;/strong&gt;.
&lt;/p&gt;

&lt;p&gt;
В двух словах - сначала следует попробывать вылечить его штатными средствами, а если это не поможет - пересоздать.
&lt;/p&gt;

&lt;h1 class=&quot;sectionedit1&quot; id=&quot;лечение_wmi_штатными_средствами&quot;&gt;Лечение WMI штатными средствами&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
Лечение штатными средствами включает в себя две процедуры - проверка и исправление ошибок:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;winmgmt /verifyrepository
winmgmt /salvagerepository
winmgmt /verifyrepository&lt;/pre&gt;

&lt;p&gt;
При этом, в случае с &lt;strong&gt;ThinPrint&lt;/strong&gt;, если &lt;strong&gt;WMI&lt;/strong&gt; сообщает что он &lt;strong&gt;consistent&lt;/strong&gt;, то нужно переустановить &lt;strong&gt;ThinPrint&lt;/strong&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;\u041b\u0435\u0447\u0435\u043d\u0438\u0435 WMI \u0448\u0442\u0430\u0442\u043d\u044b\u043c\u0438 \u0441\u0440\u0435\u0434\u0441\u0442\u0432\u0430\u043c\u0438&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u043b\u0435\u0447\u0435\u043d\u0438\u0435_wmi_\u0448\u0442\u0430\u0442\u043d\u044b\u043c\u0438_\u0441\u0440\u0435\u0434\u0441\u0442\u0432\u0430\u043c\u0438&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:1,&amp;quot;range&amp;quot;:&amp;quot;1001-1497&amp;quot;} --&gt;
&lt;h1 class=&quot;sectionedit2&quot; id=&quot;пересоздание_репозитория_wmi&quot;&gt;Пересоздание репозитория WMI&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
Ниже приведен скрипт, которым я пользуюсь для починки репозитория и тихой переустановки программ, которые зависят от &lt;strong&gt;WMI&lt;/strong&gt;. Скрипт останавливает антивирус, останавливает службы, зависящие от &lt;strong&gt;WMI&lt;/strong&gt;, затем чистит репозиторий и заполняет его заново, а потом переустанавливает &lt;strong&gt;ThinPrint&lt;/strong&gt;.
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;@echo off
sc config winmgmt start= disabled

echo &amp;quot;Please Unload Trendmicro Antivirus&amp;quot;
net stop &amp;quot;SMS Agent Host&amp;quot; /y
net stop &amp;quot;OfficeScan NT Listener&amp;quot; /y
net stop &amp;quot;IP Helper&amp;quot; /y
net stop &amp;quot;OfficeScan NT Listener&amp;quot; /y
net stop &amp;quot;HP ProLiant Agentless Management Service&amp;quot; /y

echo &amp;quot;Ready to stop WMI service&amp;quot;
pause
net stop winmgmt /y

%systemdrive%
cd %windir%\system32\wbem
for /f %%s in (&amp;#039;dir /b *.dll&amp;#039;) do regsvr32 /s %%s
wmiprvse /regserver
winmgmt /resetrepository
sc config winmgmt start= auto
net start winmgmt
for /f %%s in (&amp;#039;dir /s /b *.mof *.mfl&amp;#039;) do mofcomp %%s
net start &amp;quot;SMS Agent Host&amp;quot; /y
net start &amp;quot;OfficeScan NT Listener&amp;quot; /y
net start &amp;quot;IP Helper&amp;quot; /y

echo &amp;quot;Ready to reinstall ThinPrint&amp;quot;
pause

start /wait  msiexec.exe /qn /x &amp;quot;\\stor01\Software\terminal\ThinPrint\ThinPrint Engine 9.0.msi&amp;quot; /norestart
start /wait  msiexec.exe /qn /i &amp;quot;\\stor01\Software\terminal\ThinPrint\ThinPrint Engine 9.0.msi&amp;quot; SERVERROLE=TSE /norestart

echo &amp;quot;Done! Ready to apply ThinPrint Rules&amp;quot;
pause&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u041f\u0435\u0440\u0435\u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0435 \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u044f WMI&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u043f\u0435\u0440\u0435\u0441\u043e\u0437\u0434\u0430\u043d\u0438\u0435_\u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u044f_wmi&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:2,&amp;quot;range&amp;quot;:&amp;quot;1498-&amp;quot;} --&gt;</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Mon, 11 Feb 2019 09:13:27 +0000</pubDate>
        </item>
        <item>
            <title>working_with_sql_database_from_powershell</title>
            <link>https://wiki.autosys.tk/ms_windows_ms_sql/working_with_sql_database_from_powershell</link>
            <description>
&lt;h1 class=&quot;sectionedit1&quot; id=&quot;чтение_и_запись_данных_в_базу_ms_sql_с_помощью_powershell&quot;&gt;Чтение и запись данных в базу MS SQL с помощью powershell&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
Мне понадобилось собирать данные из AD и писать их в базу данных SQL. Проще всего собирать данные с помощью &lt;strong&gt;powershell&lt;/strong&gt;. Оказалось, что и писать(читать) их в(из) базу(ы) тоже не сложно. Данный кусочек кода подключается к базе и читает из нее, а команды для записи закомментированы.
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;$server = &amp;#039;RUMOS08XDS02&amp;#039;
$database = &amp;#039;Billing&amp;#039;

#$Status = &amp;#039;Test&amp;#039;
#$Name = &amp;#039;Foo Bar&amp;#039;
$conn = New-Object System.Data.SqlClient.SqlConnection
$conn.ConnectionString = &amp;quot;Server=$server;Integrated Security=SSPI;Database=$database;MultipleActiveResultSets=true;&amp;quot;
$conn.open()
$cmd = New-Object System.Data.SqlClient.SqlCommand
$cmd.connection = $conn
#$cmd.commandtext = &amp;quot;INSERT INTO Customers (Status, Name) VALUES(&amp;#039;{0}&amp;#039;)&amp;quot; -f $Status,$Name
$cmd.commandtext = &amp;quot;SELECT * FROM Customers&amp;quot;
#$cmd.executenonquery()
$reader = $cmd.ExecuteReader();

while ($reader.read())
{
        $reader[0]
}
$conn.close()&lt;/pre&gt;

&lt;/div&gt;
</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Mon, 11 Feb 2019 09:13:27 +0000</pubDate>
        </item>
        <item>
            <title>автоматическии-вход-в-домен-при-загрузке-компьютера</title>
            <link>https://wiki.autosys.tk/ms_windows_ms_sql/%D0%B0%D0%B2%D1%82%D0%BE%D0%BC%D0%B0%D1%82%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%B8%D0%B8-%D0%B2%D1%85%D0%BE%D0%B4-%D0%B2-%D0%B4%D0%BE%D0%BC%D0%B5%D0%BD-%D0%BF%D1%80%D0%B8-%D0%B7%D0%B0%D0%B3%D1%80%D1%83%D0%B7%D0%BA%D0%B5-%D0%BA%D0%BE%D0%BC%D0%BF%D1%8C%D1%8E%D1%82%D0%B5%D1%80%D0%B0</link>
            <description>
&lt;p&gt;
В реестре в ветке &lt;br/&gt;

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon&lt;br/&gt;

Нужно настроить параметры:&lt;br/&gt;

&lt;strong&gt;DefaultDomainName&lt;/strong&gt; - имя домена&lt;br/&gt;

&lt;strong&gt;DefaultUserName&lt;/strong&gt; - имя пользователя&lt;br/&gt;

&lt;strong&gt;DefaultPassword&lt;/strong&gt; - пароль&lt;br/&gt;

&lt;strong&gt;AutoAdminLogon&lt;/strong&gt; - 1&lt;br/&gt;

&lt;/p&gt;
</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Mon, 11 Feb 2019 09:13:27 +0000</pubDate>
        </item>
        <item>
            <title>активация-windows7-windows-2008-r2</title>
            <link>https://wiki.autosys.tk/ms_windows_ms_sql/%D0%B0%D0%BA%D1%82%D0%B8%D0%B2%D0%B0%D1%86%D0%B8%D1%8F-windows7-windows-2008-r2</link>
            <description>
&lt;p&gt;
Активация нужна всем версиям Windows.&lt;br/&gt;

Активатор &lt;strong&gt;kms&lt;/strong&gt; с форума &lt;strong&gt;ru-board&lt;/strong&gt; - тут: &lt;a href=&quot;https://wiki.autosys.tk/_media/kms.zip&quot; class=&quot;media mediafile mf_zip&quot; title=&quot;kms.zip (247.1 KB)&quot;&gt;активатор&lt;/a&gt;, пароль - &lt;strong&gt;autosys&lt;/strong&gt;&lt;br/&gt;

&lt;/p&gt;

&lt;p&gt;
Пароль - стандартный для форума &lt;a href=&quot;http://forum.ru-board.com&quot; class=&quot;urlextern&quot; title=&quot;http://forum.ru-board.com&quot; rel=&quot;ugc nofollow&quot;&gt;http://forum.ru-board.com&lt;/a&gt;&lt;br/&gt;

&lt;/p&gt;

&lt;p&gt;
Активатор устанавливается как служба. При установке надо сменить серийный номер (инструкция прямо в установщике).&lt;br/&gt;

После установки и перезагрузки от имени администратора нужно выполнить:&lt;br/&gt;

&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;slmgr.vbs /skms 127.0.0.1
slmgr.vbs /ato&lt;/pre&gt;

&lt;p&gt;
Если активация не проходит - повторяем &lt;strong&gt;slmgr.vbs /ato&lt;/strong&gt;.&lt;br/&gt;

&lt;/p&gt;

&lt;p&gt;
Если повторение несколько раз (хватит и 10) не приводит к желаемому резальтату, то может помочь команда:&lt;br/&gt;

&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;slmgr.vbs /rearm&lt;/pre&gt;

&lt;p&gt;
 и последующая перезагрузка, а потом снова &lt;strong&gt;slmgr.vbs /ato&lt;/strong&gt;.&lt;br/&gt;

&lt;/p&gt;
</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Wed, 19 Feb 2020 10:51:20 +0000</pubDate>
        </item>
        <item>
            <title>аутентификатор-rsa-под-платформу-javame-jme</title>
            <link>https://wiki.autosys.tk/ms_windows_ms_sql/%D0%B0%D1%83%D1%82%D0%B5%D0%BD%D1%82%D0%B8%D1%84%D0%B8%D0%BA%D0%B0%D1%82%D0%BE%D1%80-rsa-%D0%BF%D0%BE%D0%B4-%D0%BF%D0%BB%D0%B0%D1%82%D1%84%D0%BE%D1%80%D0%BC%D1%83-javame-jme</link>
            <description>
&lt;p&gt;
С недавнего времени аутентификатор RSA SecureID перестал поддерживать JavaME и соотвествующий агент пропал с сайта. &lt;br/&gt;

Однако старых телефонов еще предостаточно и нужно как-то выходить из ситуации. &lt;br/&gt;

К счастью JME агент RSA SecureID остался на ftp: &lt;a href=&quot;ftp://ftp.rsa.com/pub/agents/j2me/JME23.zip&quot; class=&quot;urlextern&quot; title=&quot;ftp://ftp.rsa.com/pub/agents/j2me/JME23.zip&quot; rel=&quot;ugc nofollow&quot;&gt;ftp://ftp.rsa.com/pub/agents/j2me/JME23.zip&lt;/a&gt;&lt;br/&gt;

На всякий случай стянул к себе: &lt;a href=&quot;https://wiki.autosys.tk/_media/rsa_secureid_jme23.zip&quot; class=&quot;media mediafile mf_zip&quot; title=&quot;rsa_secureid_jme23.zip (2 MB)&quot;&gt;rsa_secureid_jme23.zip&lt;/a&gt;
&lt;/p&gt;
</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Mon, 11 Feb 2019 09:13:27 +0000</pubDate>
        </item>
        <item>
            <title>включаем-автодополнение-путеи-в-команднои-строке-windows</title>
            <link>https://wiki.autosys.tk/ms_windows_ms_sql/%D0%B2%D0%BA%D0%BB%D1%8E%D1%87%D0%B0%D0%B5%D0%BC-%D0%B0%D0%B2%D1%82%D0%BE%D0%B4%D0%BE%D0%BF%D0%BE%D0%BB%D0%BD%D0%B5%D0%BD%D0%B8%D0%B5-%D0%BF%D1%83%D1%82%D0%B5%D0%B8-%D0%B2-%D0%BA%D0%BE%D0%BC%D0%B0%D0%BD%D0%B4%D0%BD%D0%BE%D0%B8-%D1%81%D1%82%D1%80%D0%BE%D0%BA%D0%B5-windows</link>
            <description>
&lt;p&gt;
Удобная функция командной строки - автодополнение путей, когда вы начинаете писать путь, и при нажатии TAB он дополняется до конца. &lt;br/&gt;

В Windows эта функция как правило отключена. Чтобы ее включить нужно внести некоторые изменения в реестр. Для этого можно создать текстовый файл с расширением &lt;strong&gt;.reg&lt;/strong&gt;  и поместить туда вот что:&lt;br/&gt;

&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;Windows Registry Editor Version 5.00

[HKEY_CURRENT_USER\Software\Microsoft\Command Processor]
&amp;quot;CompletionChar&amp;quot;=dword:9
&lt;/pre&gt;

&lt;p&gt;
Сохранить его и кликнуть по нему дважды. &lt;br/&gt;

&lt;/p&gt;

&lt;p&gt;
Либо просто руками добавить в реестр в ветку &lt;strong&gt;HKEY_CURRENT_USER\Software\Microsoft\Command Processor&lt;/strong&gt; параметр &lt;strong&gt;CompletionChar&lt;/strong&gt; типа &lt;strong&gt;dword&lt;/strong&gt; со значением &lt;strong&gt;9&lt;/strong&gt;.
&lt;/p&gt;
</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Mon, 11 Feb 2019 09:13:27 +0000</pubDate>
        </item>
        <item>
            <title>включаем-удаленныи-рабочии-стол-на-удаленном-сервере</title>
            <link>https://wiki.autosys.tk/ms_windows_ms_sql/%D0%B2%D0%BA%D0%BB%D1%8E%D1%87%D0%B0%D0%B5%D0%BC-%D1%83%D0%B4%D0%B0%D0%BB%D0%B5%D0%BD%D0%BD%D1%8B%D0%B8-%D1%80%D0%B0%D0%B1%D0%BE%D1%87%D0%B8%D0%B8-%D1%81%D1%82%D0%BE%D0%BB-%D0%BD%D0%B0-%D1%83%D0%B4%D0%B0%D0%BB%D0%B5%D0%BD%D0%BD%D0%BE%D0%BC-%D1%81%D0%B5%D1%80%D0%B2%D0%B5%D1%80%D0%B5</link>
            <description>
&lt;h1 class=&quot;sectionedit1&quot; id=&quot;ситуация&quot;&gt;Ситуация&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
У нас есть в сети сервер (Windows 2003). На нем отключен удаленный доступ к рабочесму столу (RDP). У нас есть учетные данные администратора сервера (имя и пароль). &lt;br/&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\u0438\u0442\u0443\u0430\u0446\u0438\u044f&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0441\u0438\u0442\u0443\u0430\u0446\u0438\u044f&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:1,&amp;quot;range&amp;quot;:&amp;quot;1-311&amp;quot;} --&gt;
&lt;h1 class=&quot;sectionedit2&quot; id=&quot;задача&quot;&gt;Задача&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
Включить удаленный доступ к рабочему столу (terminal services). &lt;br/&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;\u0417\u0430\u0434\u0430\u0447\u0430&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0437\u0430\u0434\u0430\u0447\u0430&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:2,&amp;quot;range&amp;quot;:&amp;quot;312-442&amp;quot;} --&gt;
&lt;h1 class=&quot;sectionedit3&quot; id=&quot;решение&quot;&gt;Решение&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
Скачиваем &lt;strong&gt;pstools&lt;/strong&gt; - &lt;a href=&quot;http://technet.microsoft.com/en-US/sysinternals/bb897553&quot; class=&quot;urlextern&quot; title=&quot;http://technet.microsoft.com/en-US/sysinternals/bb897553&quot; rel=&quot;ugc nofollow&quot;&gt;http://technet.microsoft.com/en-US/sysinternals/bb897553&lt;/a&gt; или тут - &lt;a href=&quot;https://wiki.autosys.tk/up/windows/pstools.zip&quot; class=&quot;wikilink2&quot; title=&quot;up:windows:pstools.zip&quot; rel=&quot;nofollow&quot; data-wiki-id=&quot;up:windows:pstools.zip&quot;&gt; PSTools.zip - 1.6Mb&lt;/a&gt;&lt;br/&gt;

&lt;/p&gt;

&lt;p&gt;
Применяем &lt;strong&gt;psexec&lt;/strong&gt;:&lt;br/&gt;

&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;PsExec.exe \\server -u Administrator -p password -h cmd&lt;/pre&gt;

&lt;p&gt;
В результате получаем командную строку сервера. &lt;br/&gt;

&lt;/p&gt;

&lt;p&gt;
Включаем службу и редактируем правила файервола. Для этого в командной строке выполняем команды:&lt;br/&gt;

&lt;/p&gt;

&lt;p&gt;
Включаем службу:&lt;br/&gt;

&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;REG ADD &amp;quot;HKLM\System\CurrentControlSet\Control\Terminal Server&amp;quot; /v fDenyTSConnections /t REG_DWORD /d 0 /f
REG ADD &amp;quot;HKLM\SOFTWARE\Policies\Microsoft\Windows NT\Terminal Services&amp;quot; /v fDenyTSConnections /t REG_DWORD /d 0 /f&lt;/pre&gt;

&lt;p&gt;
Разрешаем доступ конкретному пользователю:&lt;br/&gt;

&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;NET LOCALGROUP &amp;quot;Пользователи удаленного рабочего стола&amp;quot; Domain\User /ADD&lt;/pre&gt;

&lt;p&gt;
Добавляем разрешения в файервол:&lt;br/&gt;

&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;REG ADD HKLM\SOFTWARE\Policies\Microsoft\WindowsFirewall\DomainProfile\Services\RemoteDesktop /v Enabled /t REG_DWORD /d 1 /f
REG ADD HKLM\SOFTWARE\Policies\Microsoft\WindowsFirewall\DomainProfile\Services\RemoteDesktop /v Re&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0420\u0435\u0448\u0435\u043d\u0438\u0435&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0440\u0435\u0448\u0435\u043d\u0438\u0435&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:3,&amp;quot;range&amp;quot;:&amp;quot;443-&amp;quot;} --&gt;</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Mon, 11 Feb 2019 09:13:27 +0000</pubDate>
        </item>
        <item>
            <title>включение_и_выключение_сетевого_адаптера_из_командн ...</title>
            <link>https://wiki.autosys.tk/ms_windows_ms_sql/%D0%B2%D0%BA%D0%BB%D1%8E%D1%87%D0%B5%D0%BD%D0%B8%D0%B5_%D0%B8_%D0%B2%D1%8B%D0%BA%D0%BB%D1%8E%D1%87%D0%B5%D0%BD%D0%B8%D0%B5_%D1%81%D0%B5%D1%82%D0%B5%D0%B2%D0%BE%D0%B3%D0%BE_%D0%B0%D0%B4%D0%B0%D0%BF%D1%82%D0%B5%D1%80%D0%B0_%D0%B8%D0%B7_%D0%BA%D0%BE%D0%BC%D0%B0%D0%BD%D0%B4%D0%BD%D0%BE%D0%B9_%D1%81%D1%82%D1%80%D0%BE%D0%BA%D0%B8_windows</link>
            <description>
&lt;h1 class=&quot;sectionedit1&quot; id=&quot;включение_и_выключение_сетевого_адаптера_из_командной_строки_windows_с_помощью_wmi&quot;&gt;Включение и выключение сетевого адаптера из командной строки windows с помощью WMI&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
В командной строчке с админскими правами выполняем:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;wmic nic get name, index&lt;/pre&gt;

&lt;p&gt;
В результате получим список адаптеров.
Для включения адаптера с индексом 7 выполняем:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;wmic path win32_networkadapter where index=7 call enable&lt;/pre&gt;

&lt;p&gt;
Для выключения адаптера с индексом 7 выполняем:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;wmic path win32_networkadapter where index=7 call disable&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0412\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 \u0438 \u0432\u044b\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435 \u0441\u0435\u0442\u0435\u0432\u043e\u0433\u043e \u0430\u0434\u0430\u043f\u0442\u0435\u0440\u0430 \u0438\u0437 \u043a\u043e\u043c\u0430\u043d\u0434\u043d\u043e\u0439 \u0441\u0442\u0440\u043e\u043a\u0438 windows \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e WMI&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0432\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435_\u0438_\u0432\u044b\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u0435_\u0441\u0435\u0442\u0435\u0432\u043e\u0433\u043e_\u0430\u0434\u0430\u043f\u0442\u0435\u0440\u0430_\u0438\u0437_\u043a\u043e\u043c\u0430\u043d\u0434\u043d\u043e\u0439_\u0441\u0442\u0440\u043e\u043a\u0438_windows_\u0441_\u043f\u043e\u043c\u043e\u0449\u044c\u044e_wmi&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:1,&amp;quot;range&amp;quot;:&amp;quot;1-646&amp;quot;} --&gt;
&lt;h1 class=&quot;sectionedit2&quot; id=&quot;еще_один_способ_с_помощью_netsh&quot;&gt;Еще один способ с помощью netsh&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
Выводим список интерфейсов:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;netsh interface show interface&lt;/pre&gt;

&lt;p&gt;
В самой правой колонке указывается имя адаптера.
Для включения адаптера с именем &lt;strong&gt;“network adapter name”&lt;/strong&gt; выполняем:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;netsh interface set interface &amp;quot;network adapter name&amp;quot; admin=enable&lt;/pre&gt;

&lt;p&gt;
Для выключения адаптера с именем &lt;strong&gt;“network adapter name”&lt;/strong&gt; выполняем:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;netsh interface set interface &amp;quot;network adapter name&amp;quot; admin=disable&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0415\u0449\u0435 \u043e\u0434\u0438\u043d \u0441\u043f\u043e\u0441\u043e\u0431 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e netsh&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0435\u0449\u0435_\u043e\u0434\u0438\u043d_\u0441\u043f\u043e\u0441\u043e\u0431_\u0441_\u043f\u043e\u043c\u043e\u0449\u044c\u044e_netsh&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:2,&amp;quot;range&amp;quot;:&amp;quot;647-&amp;quot;} --&gt;</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Mon, 11 Feb 2019 09:13:27 +0000</pubDate>
        </item>
        <item>
            <title>восстановление-доступа-к-ms-sql-2008-если-учетная-запись- ...</title>
            <link>https://wiki.autosys.tk/ms_windows_ms_sql/%D0%B2%D0%BE%D1%81%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5-%D0%B4%D0%BE%D1%81%D1%82%D1%83%D0%BF%D0%B0-%D0%BA-ms-sql-2008-%D0%B5%D1%81%D0%BB%D0%B8-%D1%83%D1%87%D0%B5%D1%82%D0%BD%D0%B0%D1%8F-%D0%B7%D0%B0%D0%BF%D0%B8%D1%81%D1%8C-%D1%82%D0%B5%D0%BA%D1%83%D1%89%D0%B5%D0%B3%D0%BE-%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D0%BE%D0%B2%D0%B0%D1%82%D0%B5%D0%BB%D1%8F-%D0%BD%D0%B5-%D0%BF%D1%80%D0%BE%D0%BF%D0%B8%D1%81%D0%B0%D0%BD%D0%B0-%D0%B2-sql</link>
            <description>
&lt;h1 class=&quot;sectionedit1&quot; id=&quot;ситуация&quot;&gt;Ситуация&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
Сервер с &lt;strong&gt;MS SQL 2008&lt;/strong&gt; был перемещен из одного домена в другой. При этом, в конфигурации сервера не прописаны пользователи нового домена в роли администраторов &lt;strong&gt;SQL&lt;/strong&gt;. В результате - доступ к &lt;strong&gt;SQL&lt;/strong&gt; серверу отсутствует, хотя сам сервер работает нормально.&lt;br/&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\u0438\u0442\u0443\u0430\u0446\u0438\u044f&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0441\u0438\u0442\u0443\u0430\u0446\u0438\u044f&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:1,&amp;quot;range&amp;quot;:&amp;quot;1-480&amp;quot;} --&gt;
&lt;h1 class=&quot;sectionedit2&quot; id=&quot;решение&quot;&gt;Решение&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
Есть два пути - первый запустить сервер в режиме &lt;strong&gt;single user mode&lt;/strong&gt;. Однако это решение подразумевает остановку сервера, что не всегда приемлемо. &lt;br/&gt;

&lt;/p&gt;

&lt;p&gt;
Второй способ - красивый и изящный. Нужно запустить &lt;strong&gt;SQL Server Management Studio&lt;/strong&gt; с правами локальной системы (&lt;strong&gt;AUTHORITY\SYSTEM&lt;/strong&gt;), которая обычно имеет права администратора &lt;strong&gt;SQL&lt;/strong&gt; сервера. Выполняем эту задачу с помощью &lt;strong&gt;pstools&lt;/strong&gt;. Скачиваем &lt;a href=&quot;https://wiki.autosys.tk/_media/pstools.zip&quot; class=&quot;media mediafile mf_zip&quot; title=&quot;pstools.zip (1.6 MB)&quot;&gt;pstools.zip&lt;/a&gt; распаковываем и выполняем:&lt;br/&gt;

&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;PsExec.exe -s -i &amp;quot;C:\Program Files (x86)\Microsoft SQL Server\100\Tools\Binn\VSShell\Common7\IDE\Ssms.exe&amp;quot;&lt;/pre&gt;

&lt;p&gt;
Для SSMS 18.2:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;c:\pstools\PsExec.exe -s -i &amp;quot;C:\Program Files (x86)\Microsoft SQL Server Management Studio 18\Common7\IDE\Ssms.exe&amp;quot;&lt;/pre&gt;

&lt;p&gt;
Подключаемся к серверу и прописываем новые &lt;strong&gt;Logons&lt;/strong&gt;.&lt;br/&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;\u0420\u0435\u0448\u0435\u043d\u0438\u0435&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0440\u0435\u0448\u0435\u043d\u0438\u0435&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:2,&amp;quot;range&amp;quot;:&amp;quot;481-&amp;quot;} --&gt;</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Fri, 09 Aug 2019 07:42:03 +0000</pubDate>
        </item>
        <item>
            <title>гостевои-доступ-на-сетевые-ресурсы-windows-2008</title>
            <link>https://wiki.autosys.tk/ms_windows_ms_sql/%D0%B3%D0%BE%D1%81%D1%82%D0%B5%D0%B2%D0%BE%D0%B8-%D0%B4%D0%BE%D1%81%D1%82%D1%83%D0%BF-%D0%BD%D0%B0-%D1%81%D0%B5%D1%82%D0%B5%D0%B2%D1%8B%D0%B5-%D1%80%D0%B5%D1%81%D1%83%D1%80%D1%81%D1%8B-windows-2008</link>
            <description>
&lt;h1 class=&quot;sectionedit1&quot; id=&quot;гостевой_доступ_на_сетевые_ресурсы_windows_2008&quot;&gt;Гостевой доступ на сетевые ресурсы Windows 2008&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
Разрешить гостевой доступ к папкам можно изменив параметры групповой политики.&lt;br/&gt;

На локальном компьютере (не входящем в домен) можно изменить так:&lt;br/&gt;

Зайти в &lt;strong&gt;Пуск→Администрирование→Локальная политика безопасности → Локальные политики → Параметры безопасности →&lt;/strong&gt;&lt;br/&gt;

Или если есть домен, то редактируем объект групповой политики домена - &lt;strong&gt;Конфигурация компьютера → Политики → Конфигурация Windows → Параметры безопасности → Локальные политики → Параметры безопасности&lt;/strong&gt;. &lt;br/&gt;

&lt;/p&gt;

&lt;p&gt;
И изменить значения следующих параметров:&lt;br/&gt;

&lt;/p&gt;

&lt;p&gt;
&lt;strong&gt;Сетевой доступ: запретить анонимный доступ к именованным каналам и общим ресурсам&lt;/strong&gt;&lt;br/&gt;

на &lt;strong&gt;Отключить&lt;/strong&gt;&lt;br/&gt;

&lt;/p&gt;

&lt;p&gt;
Учетные записи: &lt;strong&gt;Состояние учетной записи “Гость”&lt;/strong&gt;&lt;br/&gt;

на &lt;strong&gt;Включить&lt;/strong&gt;
&lt;/p&gt;

&lt;/div&gt;
</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Mon, 11 Feb 2019 09:13:27 +0000</pubDate>
        </item>
        <item>
            <title>если-mozilla-blocked-self-signed-application-from-running</title>
            <link>https://wiki.autosys.tk/ms_windows_ms_sql/%D0%B5%D1%81%D0%BB%D0%B8-mozilla-blocked-self-signed-application-from-running</link>
            <description>
&lt;p&gt;
Проделайте данные шаги, после чего все должно заработать.&lt;br/&gt;

&lt;/p&gt;

&lt;p&gt;
1. Зайти в меню “Пуск”, во всех программах найти папку “Java” и выбрать “Configure Java”.&lt;br/&gt;

2. В появившемся окне “Java Control Panel” выбираем вкладку “Security” (Безопасность).&lt;br/&gt;

3. Бегунок ставим на Medium и нажимаем кнопку “Apply” - OK.
&lt;/p&gt;
</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Mon, 11 Feb 2019 09:13:27 +0000</pubDate>
        </item>
        <item>
            <title>изменение-режима-авторизации-ms-sql</title>
            <link>https://wiki.autosys.tk/ms_windows_ms_sql/%D0%B8%D0%B7%D0%BC%D0%B5%D0%BD%D0%B5%D0%BD%D0%B8%D0%B5-%D1%80%D0%B5%D0%B6%D0%B8%D0%BC%D0%B0-%D0%B0%D0%B2%D1%82%D0%BE%D1%80%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D0%B8-ms-sql</link>
            <description>
&lt;p&gt;
Как известно MS SQL имеет два режима авторизации - Windows и собственный (смешанный).&lt;br/&gt;

Чтобы переключить сервер в режим смешанной авторизации пользователей достаточно:&lt;br/&gt;

&lt;/p&gt;

&lt;p&gt;
Останавливаем все инстансы SQL сервера и приложения которые с ним работают (и могут залогиниться на него раньше вас)&lt;br/&gt;

Устанавливаем смешанный режим аутентификации SQL сервера.&lt;br/&gt;

Для этого изменить в реестре параметр &lt;br/&gt;

&lt;strong&gt;HKEY_Local_Machine\Software\Microsoft\Microsoft SQL Server\MSSQL10.MSSQLSERVER\MSSQL Server\Login mode&lt;/strong&gt; на 2.&lt;br/&gt;

Это нужно делать именно для нужного инстанса.
&lt;/p&gt;
</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Mon, 11 Feb 2019 09:13:27 +0000</pubDate>
        </item>
        <item>
            <title>как-обрезать-размер-фаилов-базы-sql-mdf</title>
            <link>https://wiki.autosys.tk/ms_windows_ms_sql/%D0%BA%D0%B0%D0%BA-%D0%BE%D0%B1%D1%80%D0%B5%D0%B7%D0%B0%D1%82%D1%8C-%D1%80%D0%B0%D0%B7%D0%BC%D0%B5%D1%80-%D1%84%D0%B0%D0%B8%D0%BB%D0%BE%D0%B2-%D0%B1%D0%B0%D0%B7%D1%8B-sql-mdf</link>
            <description>
&lt;p&gt;
Иногда так бывает, что в процессе работы файлы базы данных MS SQL раздуваются, но данных там немного. &lt;br/&gt;

&lt;/p&gt;

&lt;p&gt;
Оценить состояние файлов и количества занятого места можно посмотрев свойства базы (строчка &lt;strong&gt;Available free space&lt;/strong&gt;). &lt;br/&gt;

А выполнить сжатие файлов базы, высвободив зарезервированное, но не занятое данными место таким вот запросом:&lt;br/&gt;

&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;USE Your_DB_Name;
GO
DBCC SHRINKFILE (DB_File_Name, 10000);
GO&lt;/pre&gt;

&lt;p&gt;
Тут Your_DB_Name - это имя базы данных,  DB_File_Name - имя файла базы, который будет уменьшен, а 10000 - это размер в мегабайтах.&lt;br/&gt;

&lt;/p&gt;

&lt;p&gt;
Подробнее (с примерами) тут: &lt;a href=&quot;http://msdn.microsoft.com/ru-ru/library/ms189493.aspx&quot; class=&quot;urlextern&quot; title=&quot;http://msdn.microsoft.com/ru-ru/library/ms189493.aspx&quot; rel=&quot;ugc nofollow&quot;&gt;http://msdn.microsoft.com/ru-ru/library/ms189493.aspx&lt;/a&gt;&lt;br/&gt;

&lt;/p&gt;
</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Mon, 11 Feb 2019 09:13:27 +0000</pubDate>
        </item>
        <item>
            <title>команды_linux_в_windows</title>
            <link>https://wiki.autosys.tk/ms_windows_ms_sql/%D0%BA%D0%BE%D0%BC%D0%B0%D0%BD%D0%B4%D1%8B_linux_%D0%B2_windows</link>
            <description>
&lt;p&gt;
Для добавления привычных команд linux в командную строку windows Создаются файлики-обертки.
Создаются нижеприведенными командами.
&lt;/p&gt;

&lt;h1 class=&quot;sectionedit1&quot; id=&quot;grep&quot;&gt;grep&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;
&lt;pre class=&quot;code&quot;&gt;echo findstr %1 %2 %3 %4 %5 &amp;gt; %systemroot%\grep.cmd&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;grep&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;grep&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:1,&amp;quot;range&amp;quot;:&amp;quot;232-315&amp;quot;} --&gt;
&lt;h1 class=&quot;sectionedit2&quot; id=&quot;ifconfig&quot;&gt;ifconfig&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;
&lt;pre class=&quot;code&quot;&gt;echo IF &amp;quot;%1&amp;quot;==&amp;quot;-a&amp;quot; (ipconfig /all) ELSE (ipconfig %1) &amp;gt; %systemroot%\ifconfig.cmd&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;ifconfig&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;ifconfig&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:1,&amp;quot;secid&amp;quot;:2,&amp;quot;range&amp;quot;:&amp;quot;316-434&amp;quot;} --&gt;
&lt;h1 class=&quot;sectionedit3&quot; id=&quot;man&quot;&gt;man&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;
&lt;pre class=&quot;code&quot;&gt;echo %1 /?&amp;gt; %systemroot%\man.cmd&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;man&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;man&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:2,&amp;quot;secid&amp;quot;:3,&amp;quot;range&amp;quot;:&amp;quot;435-499&amp;quot;} --&gt;
&lt;h1 class=&quot;sectionedit4&quot; id=&quot;ls&quot;&gt;ls&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;
&lt;pre class=&quot;code&quot;&gt;echo IF &amp;quot;%1&amp;quot;==&amp;quot;-a&amp;quot; (dir) ELSE (IF &amp;quot;%1&amp;quot;==&amp;quot;-al&amp;quot; (dir) ELSE (dir %1 %2 %3 %4 %5)) &amp;gt; %systemroot%\ls.cmd&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;ls&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;ls&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:3,&amp;quot;secid&amp;quot;:4,&amp;quot;range&amp;quot;:&amp;quot;500-&amp;quot;} --&gt;</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Mon, 11 Feb 2019 09:13:27 +0000</pubDate>
        </item>
        <item>
            <title>контроллер-ad-не-загружается-ошибка-0xc0002e1-при-выполне ...</title>
            <link>https://wiki.autosys.tk/ms_windows_ms_sql/%D0%BA%D0%BE%D0%BD%D1%82%D1%80%D0%BE%D0%BB%D0%BB%D0%B5%D1%80-ad-%D0%BD%D0%B5-%D0%B7%D0%B0%D0%B3%D1%80%D1%83%D0%B6%D0%B0%D0%B5%D1%82%D1%81%D1%8F-%D0%BE%D1%88%D0%B8%D0%B1%D0%BA%D0%B0-0xc0002e1-%D0%BF%D1%80%D0%B8-%D0%B2%D1%8B%D0%BF%D0%BE%D0%BB%D0%BD%D0%B5%D0%BD%D0%B8%D0%B8-ntdsutil-sem-d-a-go-%D0%BE%D1%88%D0%B8%D0%B1%D0%BA%D0%B0-jet-501</link>
            <description>
&lt;p&gt;
Проблема:&lt;br/&gt;

&lt;/p&gt;
&lt;div class=&quot;table sectionedit1&quot;&gt;&lt;table class=&quot;inline&quot;&gt;
	&lt;tr class=&quot;row0&quot;&gt;
		&lt;th class=&quot;col0&quot;&gt;Контроллер AD не загружается. Ошибка 0xc0002e1. При выполнении &lt;strong&gt;ntdsutil “sem d a” go&lt;/strong&gt; - ошибка Jet -501 &lt;/th&gt;
	&lt;/tr&gt;
&lt;/table&gt;&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;table&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;table&amp;quot;,&amp;quot;secid&amp;quot;:1,&amp;quot;range&amp;quot;:&amp;quot;21-180&amp;quot;} --&gt;
&lt;p&gt;
В моем случае нужно было просто в режиме восстановления AD удалить файлы логов. В Windows 2003 предельный размер логов был 10Мб (10240 Кб). По-умолчанию они лежат в папке &lt;strong&gt;c:\windows\NTDS\&lt;/strong&gt; . Файлы *.log.&lt;br/&gt;

Если их там нет, то узнать где хранится NTDS можно в режиме восстановления AD (перед загрузкой F8 и выбираем режим восстановления AD) с помощью команды &lt;strong&gt;ntdsutil files info&lt;/strong&gt;.&lt;br/&gt;

&lt;/p&gt;

&lt;p&gt;
Также причиной может быть изменение прав доступа к папке NTDS. &lt;br/&gt;

&lt;/p&gt;

&lt;p&gt;
Подробно все описано тут: &lt;a href=&quot;http://support.microsoft.com/kb/258062/ru&quot; class=&quot;urlextern&quot; title=&quot;http://support.microsoft.com/kb/258062/ru&quot; rel=&quot;ugc nofollow&quot;&gt;http://support.microsoft.com/kb/258062/ru&lt;/a&gt;
&lt;/p&gt;
</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Mon, 11 Feb 2019 09:13:27 +0000</pubDate>
        </item>
        <item>
            <title>лицензирование-сервера-терминалов-windows-2008</title>
            <link>https://wiki.autosys.tk/ms_windows_ms_sql/%D0%BB%D0%B8%D1%86%D0%B5%D0%BD%D0%B7%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5-%D1%81%D0%B5%D1%80%D0%B2%D0%B5%D1%80%D0%B0-%D1%82%D0%B5%D1%80%D0%BC%D0%B8%D0%BD%D0%B0%D0%BB%D0%BE%D0%B2-windows-2008</link>
            <description>
&lt;p&gt;
Все ниже написанное дается в ознакомительных целях. Нелегальное использование ПО неправомерно и может закончиться плачевно.&lt;br/&gt;

Статья актуальна до всех версий &lt;strong&gt;Windows Server&lt;/strong&gt;, в том числе и для &lt;strong&gt;Windows Server 2016&lt;/strong&gt;
&lt;/p&gt;

&lt;p&gt;
1.    Добавляем роль &lt;strong&gt;Службы удаленных рабочих столов&lt;/strong&gt; (&lt;strong&gt;RemoteDesktopServices&lt;/strong&gt;)&lt;br/&gt;

2.    Выбираем в диспетчере сервера роль &lt;strong&gt;Служба лицензирования удаленных рабочих столов&lt;/strong&gt; (&lt;strong&gt;Remote Desktop Licensing&lt;/strong&gt;)&lt;br/&gt;

3.    После установки роли запускаем оснастку управления лицензированием - кнопка &lt;strong&gt;“Пуск” → “Все программы” → “Администрирование” → “Службы удаленных рабочих столов” → “Диспетчер лицензирования служб терминалов”&lt;/strong&gt; или &lt;strong&gt;Windows Administrative Tools&lt;/strong&gt; → &lt;strong&gt;Remote Desktop Licensing Manager&lt;/strong&gt; &lt;br/&gt;

4.    Щелкаем правой кнопкой на нашем сервере, выбираем пункт “&lt;strong&gt;Активировать сервер&lt;/strong&gt;“&lt;br/&gt;

5.    Выбираем тип подключения Автоподключение (быстрее и проще) или Web ( в браузере). Не забываем открыть доступ к интернету.&lt;br/&gt;

6.    Вводим свои личные данные (имя, фамилию,организацию, страну). Следующую страничку (E-Mail, адрес) - оставляем пустой.&lt;br/&gt;

7.    Hажимаем «Далее», происходит активация. &lt;br/&gt;

&lt;/p&gt;

&lt;p&gt;
После успешной активации вам будет предложено добавить лицензии.&lt;br/&gt;

&lt;/p&gt;

&lt;p&gt;
Запустится &lt;strong&gt;Client Access License (CAL) Activation Wizard&lt;/strong&gt;, который первым делом снова полезет в Microsoft. После чего спросит тип лицензии, которую желаете установить. Выбираем &lt;strong&gt;Enterprise Agreement&lt;/strong&gt;, и следующим этапом вводим &lt;strong&gt;Enterprise Agreement Number&lt;/strong&gt;.&lt;br/&gt;

&lt;/p&gt;

&lt;p&gt;
Как оказалось, это число прекрасно ищется в любом поисковике по запросу &lt;strong&gt;Enrollment Number&lt;/strong&gt;. Варианты &lt;strong&gt;Enrollment Number&lt;/strong&gt;: 4965437 (3325596;6565792;4526017;5296992). &lt;br/&gt;

&lt;/p&gt;

&lt;p&gt;
Теперь нужно указать продукт - Windows Server 2008 (или R2). Тип лицензии - &lt;strong&gt;per Device&lt;/strong&gt; (&lt;strong&gt;на устройство&lt;/strong&gt;). Количество требуемых лицензий - n. На этом всё. Закрываем окно Terminal Server Licensing.&lt;br/&gt;

&lt;/p&gt;

&lt;p&gt;
Область применения и количество можно менять и переустанавливать. &lt;br/&gt;

&lt;/p&gt;

&lt;h1 class=&quot;sectionedit1&quot; id=&quot;лицензирование_vdi&quot;&gt;Лицензирование VDI&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
Вышеприведенные номера &lt;strong&gt;Enterprise Agreement&lt;/strong&gt; подходят только для лицензий терминального сервера. Но как же быть с &lt;strong&gt;VDI&lt;/strong&gt;, который понадобится при работе с &lt;strong&gt;XenDesktop&lt;/strong&gt;. Тут нам на помощь приходит Google. В нем удалось найти &lt;strong&gt;Enterprise Agreement&lt;/strong&gt; университета штата Флориды, которому доступны &lt;strong&gt;VDI&lt;/strong&gt;: 7133077.&lt;br/&gt;

&lt;/p&gt;

&lt;p&gt;
&lt;a href=&quot;http://www.purchasing.ufl.edu/contracts/microsoft.asp&quot; class=&quot;urlextern&quot; title=&quot;http://www.purchasing.ufl.edu/contracts/microsoft.asp&quot; rel=&quot;ugc nofollow&quot;&gt;http://www.purchasing.ufl.edu/contracts/microsoft.asp&lt;/a&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;\u041b\u0438\u0446\u0435\u043d\u0437\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 VDI&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u043b\u0438\u0446\u0435\u043d\u0437\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435_vdi&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:1,&amp;quot;range&amp;quot;:&amp;quot;3025-&amp;quot;} --&gt;</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Mon, 11 Feb 2019 09:13:27 +0000</pubDate>
        </item>
        <item>
            <title>не_удаляются_временные_файлы_z_.tmp</title>
            <link>https://wiki.autosys.tk/ms_windows_ms_sql/%D0%BD%D0%B5_%D1%83%D0%B4%D0%B0%D0%BB%D1%8F%D1%8E%D1%82%D1%81%D1%8F_%D0%B2%D1%80%D0%B5%D0%BC%D0%B5%D0%BD%D0%BD%D1%8B%D0%B5_%D1%84%D0%B0%D0%B9%D0%BB%D1%8B_z_.tmp</link>
            <description>
&lt;h1 class=&quot;sectionedit1&quot; id=&quot;проблема&quot;&gt;Проблема&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
Во временной папке пользователя появляются неудаляемые файлы &lt;strong&gt;Z@*.tmp&lt;/strong&gt;, которые держит процесс &lt;strong&gt;SYSTEM&lt;/strong&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;\u041f\u0440\u043e\u0431\u043b\u0435\u043c\u0430&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0430&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:1,&amp;quot;range&amp;quot;:&amp;quot;1-215&amp;quot;} --&gt;
&lt;h1 class=&quot;sectionedit2&quot; id=&quot;решение&quot;&gt;Решение&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
Причины описаны тут: &lt;a href=&quot;http://blog.notmyfault.ch/?p=378&quot; class=&quot;urlextern&quot; title=&quot;http://blog.notmyfault.ch/?p=378&quot; rel=&quot;ugc nofollow&quot;&gt;http://blog.notmyfault.ch/?p=378&lt;/a&gt; &lt;br/&gt;

В двух словах - &lt;strong&gt;Adobe Reader&lt;/strong&gt; использует &lt;strong&gt;&lt;abbr title=&quot;Application Programming Interface&quot;&gt;API&lt;/abbr&gt;&lt;/strong&gt;, который не актуален со времен &lt;strong&gt;Windows XP&lt;/strong&gt;. &lt;br/&gt;

Для того, чтобы отпечатанный документ выглядел также как на экране, &lt;strong&gt;Acrobat Reader&lt;/strong&gt; рендерит нужные шрифты и сохраняет их во временых файлах. Однако, это небезопасно, поскольку специально сгенерированный шрифт может способствовать повышению привилегий в системе, хотя для этого у атакующего должны быть валидные учетные данные пользователя. Таким образом проблема проявляется только если на систему установлено соответствующее обновление и пользователь производит печать PDF при помощи &lt;strong&gt;Acrobat Reader&lt;/strong&gt;&lt;br/&gt;

Патч от Microsoft &lt;strong&gt;KB2993651&lt;/strong&gt; блокирует возможность изменения временных файлов шрифтов. &lt;br/&gt;

&lt;br/&gt;

Поэтому - если есть неудаляемые файлы &lt;strong&gt;Z@*.tmp&lt;/strong&gt;, то удаляем апдейт &lt;a href=&quot;https://support.microsoft.com/en-us/kb/2993651&quot; class=&quot;urlextern&quot; title=&quot;https://support.microsoft.com/en-us/kb/2993651&quot; rel=&quot;ugc nofollow&quot;&gt;KB2993651&lt;/a&gt;.
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;wusa /uninstall /kb:2993651&lt;/pre&gt;

&lt;p&gt;
Однако, в моем случае это не решило всех проблем и &lt;strong&gt;Acrobat Reader 11&lt;/strong&gt; был заменен на &lt;strong&gt;FoxIt PDF Reader&lt;/strong&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;\u0420\u0435\u0448\u0435\u043d\u0438\u0435&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0440\u0435\u0448\u0435\u043d\u0438\u0435&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:2,&amp;quot;range&amp;quot;:&amp;quot;216-&amp;quot;} --&gt;</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Mon, 11 Feb 2019 09:13:27 +0000</pubDate>
        </item>
        <item>
            <title>отключение-анимации-при-загрузке-windows-7-8</title>
            <link>https://wiki.autosys.tk/ms_windows_ms_sql/%D0%BE%D1%82%D0%BA%D0%BB%D1%8E%D1%87%D0%B5%D0%BD%D0%B8%D0%B5-%D0%B0%D0%BD%D0%B8%D0%BC%D0%B0%D1%86%D0%B8%D0%B8-%D0%BF%D1%80%D0%B8-%D0%B7%D0%B0%D0%B3%D1%80%D1%83%D0%B7%D0%BA%D0%B5-windows-7-8</link>
            <description>
&lt;p&gt;
Немного Ускорить загрузку системы Windows 7/8 можно, отключив анимацию. Для этого в командной строке с правами администартора нужно выполнить:&lt;br/&gt;

&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;bcdedit /set bootux disabled&lt;/pre&gt;
</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Mon, 11 Feb 2019 09:13:27 +0000</pubDate>
        </item>
        <item>
            <title>отключился_rdp</title>
            <link>https://wiki.autosys.tk/ms_windows_ms_sql/%D0%BE%D1%82%D0%BA%D0%BB%D1%8E%D1%87%D0%B8%D0%BB%D1%81%D1%8F_rdp</link>
            <description>
&lt;p&gt;
2008R2
Отключился RDP
Что попробывал:
&lt;/p&gt;
&lt;hr /&gt;

&lt;p&gt;
1. if the patches show installed
Windows Server 2008 R2 for x64-based Systems and Windows Server 2008 R2 for x64-based Systems Service Pack 1*
OR
Windows 7 for x86 or x64 based Systems Service Pack 1*
(KB2621440)
Windows Server 2008 R2 for x64-based Systems and Windows Server 2008 R2 for x64-based Systems Service Pack 1*
OR
Windows 7 for x86 or x64 based Systems Service Pack 1*
(KB2667402)
please uninstall these patches and reboot your box.
run sfc /scannow to confirm that theres no file level corruption
ensure that rdpcorekmts.dll file exists and is SP1 version that is it 6.1.7601.xxxx
2. Export following registry entry from working RDP machine and  Import to machine having RDP issue.
HKEY_CLASSES_ROOT\CLSID\{18b726bb-6fe6-4fb9-9276-ed57ce7c7cb2}
reboot the box. Post reboot ensure that 3389 is listening using  command netstat -a
3. Import the following registry entries and try to RDP
HKLM\SYSTEM\CurrentControlSet\Control\Video\{DEB039CC-B704-4F53-B43E-9DD4432FA2E9}
HKLM\SYSTEM\CurrentControlSet\services\RDPDD
Able to RDP fine.
4. reinstall Windows Server 2008 R2 for x64-based Systems and Windows Server 2008 R2 for x64-based Systems Service Pack 1*
OR
Windows 7 for x86 or x64 based Systems Service Pack 1*
(KB2621440)
Windows Server 2008 R2 for x64-based Systems and Windows Server 2008 R2 for x64-based Systems Service Pack 1*
OR
Windows 7 for x86 or x64 based Systems Service Pack 1*
(KB2667402)   -  
reboot and verify that RDP is still working
I hope this will help many people with same RDP problem. If this works for you as well then put comment to help others.
&lt;/p&gt;
&lt;hr /&gt;

&lt;p&gt;
1) Go to a working system, run Regedit and “Export”
&lt;/p&gt;

&lt;p&gt;
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp]
&lt;/p&gt;

&lt;p&gt;
to a .REG file;
&lt;/p&gt;

&lt;p&gt;
2) Go to the NOT working system, stops the services “Remote Desktop Services”, “Remote Desktop Configuration” and “Remote Desktop Services UserMode Port Redirector”;
&lt;/p&gt;

&lt;p&gt;
3) Import de .REG file created in the step 1 and Reboot the system;
&lt;/p&gt;
&lt;hr /&gt;

&lt;p&gt;
Uninstall 
&lt;/p&gt;

&lt;p&gt;
KB2830477 
KB2592687
&lt;/p&gt;

&lt;p&gt;
Не помогло
&lt;/p&gt;
&lt;hr /&gt;

&lt;p&gt;
А помогло удаление ветки реестра [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp] и импорт с начисто установленной системы.
&lt;/p&gt;
</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Mon, 11 Feb 2019 09:13:27 +0000</pubDate>
        </item>
        <item>
            <title>падает_splwow64.exe_crash</title>
            <link>https://wiki.autosys.tk/ms_windows_ms_sql/%D0%BF%D0%B0%D0%B4%D0%B0%D0%B5%D1%82_splwow64.exe_crash</link>
            <description>
&lt;h1 class=&quot;sectionedit1&quot; id=&quot;проблема&quot;&gt;Проблема&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
У пользователей терминального сервера &lt;strong&gt;Windows 2008R2&lt;/strong&gt; пропадают принтеры, а в логах ошибка &lt;strong&gt;ID 1000&lt;/strong&gt;:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;Faulting application name: splwow64.exe, version: 6.1.7601.17514, time stamp: 0x4ce7b4c8
Faulting module name: GDI32.dll, version: 6.1.7601.18778, time stamp: 0x54f7e29c&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u041f\u0440\u043e\u0431\u043b\u0435\u043c\u0430&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0430&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:1,&amp;quot;range&amp;quot;:&amp;quot;1-386&amp;quot;} --&gt;
&lt;h1 class=&quot;sectionedit2&quot; id=&quot;причина&quot;&gt;Причина&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
Процесс &lt;strong&gt;splwow64.exe&lt;/strong&gt; это костыль для 32-бит приложений, нужный для того, чтобы они могли печатать через 64-бит спулер.
Если он падает, значит проблема со старыми драйверами принтеров. 
&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;\u041f\u0440\u0438\u0447\u0438\u043d\u0430&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u043f\u0440\u0438\u0447\u0438\u043d\u0430&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:1,&amp;quot;secid&amp;quot;:2,&amp;quot;range&amp;quot;:&amp;quot;387-740&amp;quot;} --&gt;
&lt;h1 class=&quot;sectionedit3&quot; id=&quot;решение&quot;&gt;Решение&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
Выхода два - обновить драйверы, либо установить патч от Microsoft. Либо все вместе.
&lt;/p&gt;

&lt;p&gt;
Патч: &lt;a href=&quot;https://support.microsoft.com/en-us/kb/2647753&quot; class=&quot;urlextern&quot; title=&quot;https://support.microsoft.com/en-us/kb/2647753&quot; rel=&quot;ugc nofollow&quot;&gt;https://support.microsoft.com/en-us/kb/2647753&lt;/a&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;\u0420\u0435\u0448\u0435\u043d\u0438\u0435&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0440\u0435\u0448\u0435\u043d\u0438\u0435&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:1,&amp;quot;secid&amp;quot;:3,&amp;quot;range&amp;quot;:&amp;quot;741-&amp;quot;} --&gt;</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Mon, 11 Feb 2019 09:13:27 +0000</pubDate>
        </item>
        <item>
            <title>подключение_к_именованному_экземпляру_sql_сервер_на_н ...</title>
            <link>https://wiki.autosys.tk/ms_windows_ms_sql/%D0%BF%D0%BE%D0%B4%D0%BA%D0%BB%D1%8E%D1%87%D0%B5%D0%BD%D0%B8%D0%B5_%D0%BA_%D0%B8%D0%BC%D0%B5%D0%BD%D0%BE%D0%B2%D0%B0%D0%BD%D0%BD%D0%BE%D0%BC%D1%83_%D1%8D%D0%BA%D0%B7%D0%B5%D0%BC%D0%BF%D0%BB%D1%8F%D1%80%D1%83_sql_%D1%81%D0%B5%D1%80%D0%B2%D0%B5%D1%80_%D0%BD%D0%B0_%D0%BD%D0%B5%D1%81%D1%82%D0%B0%D0%BD%D0%B4%D0%B0%D1%80%D1%82%D0%BD%D0%BE%D0%BC_%D0%BF%D0%BE%D1%80%D1%82%D1%83</link>
            <description>
&lt;h1 class=&quot;sectionedit1&quot; id=&quot;как_подключиться_из_sql_server_management_studio_к_именованному_экземпляру_работающему_на_нестандартном_порту&quot;&gt;Как подключиться из SQL Server Management Studio к именованному экземпляру, работающему на нестандартном порту&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
Для того, чтобы подключиться по сети к именованному экземпляру &lt;strong&gt;Microsoft SQL Server&lt;/strong&gt;, работающему на нестандартном порту, из &lt;strong&gt;SQL Management Studio&lt;/strong&gt; нужно в строке подключения указывать порт через запятую:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;SERVER\sql_instance,1440&lt;/pre&gt;

&lt;p&gt;
То есть примерно так: &lt;br/&gt;

&lt;a href=&quot;https://wiki.autosys.tk/_media/ms_windows_ms_sql/sql-server-sroka-podklyucheniya-k-staticheskomu-tcp-po.png&quot; class=&quot;media&quot; title=&quot;ms_windows_ms_sql:sql-server-sroka-podklyucheniya-k-staticheskomu-tcp-po.png&quot;&gt;&lt;img src=&quot;https://wiki.autosys.tk/_media/ms_windows_ms_sql/sql-server-sroka-podklyucheniya-k-staticheskomu-tcp-po.png&quot; class=&quot;media&quot; loading=&quot;lazy&quot; alt=&quot;&quot; /&gt;&lt;/a&gt;
&lt;/p&gt;

&lt;/div&gt;
</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Fri, 25 Dec 2020 13:14:16 +0000</pubDate>
        </item>
        <item>
            <title>подсчитать_количество_принтеров_на_терминальном_се ...</title>
            <link>https://wiki.autosys.tk/ms_windows_ms_sql/%D0%BF%D0%BE%D0%B4%D1%81%D1%87%D0%B8%D1%82%D0%B0%D1%82%D1%8C_%D0%BA%D0%BE%D0%BB%D0%B8%D1%87%D0%B5%D1%81%D1%82%D0%B2%D0%BE_%D0%BF%D1%80%D0%B8%D0%BD%D1%82%D0%B5%D1%80%D0%BE%D0%B2_%D0%BD%D0%B0_%D1%82%D0%B5%D1%80%D0%BC%D0%B8%D0%BD%D0%B0%D0%BB%D1%8C%D0%BD%D0%BE%D0%BC_%D1%81%D0%B5%D1%80%D0%B2%D0%B5%D1%80%D0%B5_windows_2008</link>
            <description>
&lt;p&gt;
На терминальном сервере &lt;strong&gt;Windows 2003&lt;/strong&gt; администратору били видны все подключенные принтеры пользователей, но на &lt;strong&gt;Windows 2008&lt;/strong&gt; эта фича исчезла.
Нажеприведенный &lt;strong&gt;Powershell&lt;/strong&gt; скриптик позволяет вывести список подключенных принтеров пользователей и подсчитать их количество:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;$servers = get-content c:\compnames.txt

Function CloseAllRegs {
    if($regHKU -ne $null) {
        $regHKU.Close()
    }
    
    if($regUser -ne $null) {
        $regUser.Close()
    }
    if($regHKLM -ne $null) {
        $regHKLM.Close()
    }
    if($regProfileList -ne $null) {
        $regProfileList.Close()
    }
}

foreach ($server in $servers) {
  $numprinters = 0
    # Trim white space after the computer name
    $server = $server.Trim()

    $regHKLM = [Microsoft.Win32.RegistryKey]::OpenRemoteBaseKey(&amp;quot;LocalMachine&amp;quot;, $server)
    $regProfileList = $regHKLM.OpenSubKey(&amp;quot;SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList&amp;quot;)

    foreach ($sid in $regProfileList.GetSubKeyNames()) {
        $profileImagePath = $regProfileList.OpenSubKey($sid).GetValue(&amp;quot;ProfileImagePath&amp;quot;)
        $regHKU = [Microsoft.Win32.RegistryKey]::OpenRemoteBaseKey(&amp;quot;Users&amp;quot;, $server)
        $regUser = $regHKU.OpenSubKey(&amp;quot;$sid\Printers\Connections&amp;quot;)
            if ($regUser -eq $null) {
                $regHKU.Close()
                continue
            }
            
            foreach ($printer in $regUser.GetSubKeyNames()) {
                write-host -NoNewline $server&amp;#039;,&amp;#039;
                $printer.Replace(&amp;quot;,&amp;quot;, &amp;quot;\&amp;quot;)  # backslashes are replaced with commas, revert that
                $numprinters = $numprinters + 1
            }
   
    }
   
    CloseAllRegs
    write-host &amp;#039;Total number of printers on &amp;#039;$server &amp;#039; - &amp;#039; $numprinters

 }
 &lt;/pre&gt;
</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Mon, 11 Feb 2019 09:13:27 +0000</pubDate>
        </item>
        <item>
            <title>при-печати-size-in-bytes-0-pages-printed-1</title>
            <link>https://wiki.autosys.tk/ms_windows_ms_sql/%D0%BF%D1%80%D0%B8-%D0%BF%D0%B5%D1%87%D0%B0%D1%82%D0%B8-size-in-bytes-0-pages-printed-1</link>
            <description>
&lt;h1 class=&quot;sectionedit1&quot; id=&quot;проблема&quot;&gt;Проблема&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
Проблема эта довольно старая и встречается со времен Windows 2000 и вплоть до Windows 2008 R2 (а может и 2012). &lt;br/&gt;

Когда пользователь пытается распечатать что-либо (хотя бы тестовую страницу) через сетевой принтер, опубликованный в AD и прокинутый в терминальную сессию, документ попадает в очередь, но не печатается.
В логах появляются такие сообщения:&lt;br/&gt;

&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;Document 18, Test Page owned by cttest3 was printed on 4200_SLAG01#10.90.144.1:3 through port AG01:.  Size in bytes: 0. Pages printed: 1. No user action is required.
To stop logging information events for the print spooler, in Control Panel, open Printers, right-click a blank area of the window, click Run as Administrator, click Server Properties, click the Advanced tab, and then clear the Log spooler information events check box.&lt;/pre&gt;

&lt;p&gt;
В тоже время, на этот же принтер другие пользователи нормально печатают.&lt;br/&gt;

Перезапуск сервиса  spooler не помогает.&lt;br/&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;\u041f\u0440\u043e\u0431\u043b\u0435\u043c\u0430&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0430&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:1,&amp;quot;range&amp;quot;:&amp;quot;1-1299&amp;quot;} --&gt;
&lt;h1 class=&quot;sectionedit2&quot; id=&quot;причина&quot;&gt;Причина&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&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;\u041f\u0440\u0438\u0447\u0438\u043d\u0430&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u043f\u0440\u0438\u0447\u0438\u043d\u0430&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:1,&amp;quot;secid&amp;quot;:2,&amp;quot;range&amp;quot;:&amp;quot;1300-1566&amp;quot;} --&gt;
&lt;h1 class=&quot;sectionedit3&quot; id=&quot;решение&quot;&gt;Решение&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
Первое что нужно попробывать сделат - перезагрузить принтсервер.&lt;br/&gt;

Если не поможет - проапдейтить систему. Есть пара патчей для Windows 2008, которые исправляют эту ситуацию.&lt;br/&gt;

Вот они: KB2555392 и KB2616332. &lt;br/&gt;

&lt;a href=&quot;http://support.microsoft.com/en-us/kb/2555392&quot; class=&quot;urlextern&quot; title=&quot;http://support.microsoft.com/en-us/kb/2555392&quot; rel=&quot;ugc nofollow&quot;&gt;http://support.microsoft.com/en-us/kb/2555392&lt;/a&gt; &lt;br/&gt;

&lt;a href=&quot;http://support.microsoft.com/en-us/kb/2616332&quot; class=&quot;urlextern&quot; title=&quot;http://support.microsoft.com/en-us/kb/2616332&quot; rel=&quot;ugc nofollow&quot;&gt;http://support.microsoft.com/en-us/kb/2616332&lt;/a&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;\u0420\u0435\u0448\u0435\u043d\u0438\u0435&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0440\u0435\u0448\u0435\u043d\u0438\u0435&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:1,&amp;quot;secid&amp;quot;:3,&amp;quot;range&amp;quot;:&amp;quot;1567-&amp;quot;} --&gt;</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Mon, 11 Feb 2019 09:13:27 +0000</pubDate>
        </item>
        <item>
            <title>продление-работы-windows-7-без-активации</title>
            <link>https://wiki.autosys.tk/ms_windows_ms_sql/%D0%BF%D1%80%D0%BE%D0%B4%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5-%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D1%8B-windows-7-%D0%B1%D0%B5%D0%B7-%D0%B0%D0%BA%D1%82%D0%B8%D0%B2%D0%B0%D1%86%D0%B8%D0%B8</link>
            <description>
&lt;p&gt;
Настройки механизма активации&lt;br/&gt;

Настройки механизма активации Windows 7 хранятся в REG_DWORD-параметрах разделов Реестра:&lt;br/&gt;

&lt;strong&gt;&lt;a href=&quot;https://wiki.autosys.tk/ms_windows_ms_sql/hkey_local_machine_software_microsoft_windows_nt_currentversion_softwareprotectionplatform&quot; class=&quot;wikilink2&quot; title=&quot;ms_windows_ms_sql:hkey_local_machine_software_microsoft_windows_nt_currentversion_softwareprotectionplatform&quot; rel=&quot;nofollow&quot; data-wiki-id=&quot;ms_windows_ms_sql:hkey_local_machine_software_microsoft_windows_nt_currentversion_softwareprotectionplatform&quot;&gt;HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\SoftwareProtectionPlatform&lt;/a&gt;&lt;/strong&gt;:&lt;br/&gt;

– &lt;strong&gt;VLActivationInterval&lt;/strong&gt; – определяет общий срок работы без активации (значение по умолчанию – &lt;strong&gt;dword:00000078&lt;/strong&gt;, то есть &lt;strong&gt;120&lt;/strong&gt; суток);&lt;br/&gt;

– &lt;strong&gt;SkipRearm&lt;/strong&gt; – определяет, будет ли разрешено сбрасывать счетчик активации при помощи команды
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;slmgr.vbs /rearm &lt;/pre&gt;

&lt;p&gt;
после 4-х сбросов (значение по умолчанию – &lt;strong&gt;dword:00000000&lt;/strong&gt;);&lt;br/&gt;

 &lt;br/&gt;

&lt;strong&gt;&lt;a href=&quot;https://wiki.autosys.tk/ms_windows_ms_sql/hkey_local_machine_software_microsoft_windows_nt_currentversion_softwareprotectionplatform_activation&quot; class=&quot;wikilink2&quot; title=&quot;ms_windows_ms_sql:hkey_local_machine_software_microsoft_windows_nt_currentversion_softwareprotectionplatform_activation&quot; rel=&quot;nofollow&quot; data-wiki-id=&quot;ms_windows_ms_sql:hkey_local_machine_software_microsoft_windows_nt_currentversion_softwareprotectionplatform_activation&quot;&gt;HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\SoftwareProtectionPlatform\Activation&lt;/a&gt;&lt;/strong&gt;:&lt;br/&gt;

– &lt;strong&gt;ActivationInterval&lt;/strong&gt; – определяет интервал отображения уведомления об активации операционной системы (значение по умолчанию – &lt;strong&gt;dword:000dbba0&lt;/strong&gt;);&lt;br/&gt;

– &lt;strong&gt;NotificationDisabled&lt;/strong&gt; – отображение уведомления о необходимости активации операционной системы в области уведомлений Панели задач (значение по умолчанию – &lt;strong&gt;dword:00000000&lt;/strong&gt;. Если установить значение 1, то уведомления отображаться не будут).&lt;br/&gt;

 &lt;br/&gt;

&lt;/p&gt;
</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Wed, 13 Mar 2019 08:00:22 +0000</pubDate>
        </item>
        <item>
            <title>распаковка-фаилов-msi</title>
            <link>https://wiki.autosys.tk/ms_windows_ms_sql/%D1%80%D0%B0%D1%81%D0%BF%D0%B0%D0%BA%D0%BE%D0%B2%D0%BA%D0%B0-%D1%84%D0%B0%D0%B8%D0%BB%D0%BE%D0%B2-msi</link>
            <description>
&lt;p&gt;
Извлечь содержимое из файлов *.msi довольно просто.&lt;br/&gt;

&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;msiexec /a путь_к_файлу_c_расширением_msi /qb TARGETDIR=путь_к_директории_для_извлечения_данных&lt;/pre&gt;

&lt;p&gt;
Например, команда вида 
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;msiexec /a c:\testfile.msi /qb TARGETDIR=c:\temp\test&lt;/pre&gt;

&lt;p&gt;
 извлечет из установочного пакета &lt;strong&gt;testfile.msi&lt;/strong&gt; все вложенные файлы в директорию &lt;strong&gt;C:\Temp\Test&lt;/strong&gt;.&lt;br/&gt;

&lt;/p&gt;

&lt;p&gt;
Если вдруг понадобится более подробная справочная информация по работе со средством Msiexec, её всегда можно получить, введя в консоли команду msiexec /?.&lt;br/&gt;

&lt;/p&gt;
</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Mon, 11 Feb 2019 09:13:27 +0000</pubDate>
        </item>
        <item>
            <title>сброс-пароля-windows-server-2008-и-других-nt-6-1</title>
            <link>https://wiki.autosys.tk/ms_windows_ms_sql/%D1%81%D0%B1%D1%80%D0%BE%D1%81-%D0%BF%D0%B0%D1%80%D0%BE%D0%BB%D1%8F-windows-server-2008-%D0%B8-%D0%B4%D1%80%D1%83%D0%B3%D0%B8%D1%85-nt-6-1</link>
            <description>
&lt;p&gt;
Подсмотрел тут: &lt;a href=&quot;http://i-notes.org/windows-server-2008-sbros-parolya-administratora/&quot; class=&quot;urlextern&quot; title=&quot;http://i-notes.org/windows-server-2008-sbros-parolya-administratora/&quot; rel=&quot;ugc nofollow&quot;&gt;http://i-notes.org/windows-server-2008-sbros-parolya-administratora/&lt;/a&gt;&lt;br/&gt;

В двух словах - загружаемся с любого загрузочного носителя, который даст доступ к файлам в каталоге Windows. Я использовал &lt;strong&gt;Linux Rescue CD&lt;/strong&gt; (потому что система была на fakeraid LSI Megaraid)&lt;br/&gt;

Затем в папке &lt;strong&gt;Windows\System32&lt;/strong&gt; переименовываем файл &lt;strong&gt;Utilman.exe&lt;/strong&gt; в &lt;strong&gt;Utilman.exe.bak&lt;/strong&gt; и копируем &lt;strong&gt;cmd.exe&lt;/strong&gt; с именем &lt;strong&gt;Utilman.exe&lt;/strong&gt;. Таким образом при запуске &lt;strong&gt;Utilman&lt;/strong&gt; будет запускаться &lt;strong&gt;cmd&lt;/strong&gt;. &lt;br/&gt;

Все. Хак состоялся. Теперь грузим систему, на которой надо сбросить пароль, жмем &lt;strong&gt;Ctrl+Alt+Del&lt;/strong&gt;, а затем жмем &lt;strong&gt;Win+U&lt;/strong&gt;. И видим окошко &lt;strong&gt;cmd&lt;/strong&gt; с правами системы. &lt;br/&gt;

&lt;/p&gt;

&lt;p&gt;
Затем элегантно с помощью команды  &lt;br/&gt;

&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;net user administrator Ololo123&lt;/pre&gt;

&lt;p&gt;
Выставляем администратору пароль &lt;strong&gt;Ololo123&lt;/strong&gt;&lt;br/&gt;

&lt;/p&gt;

&lt;p&gt;
Или добавляем нового пользователя и добавляем его в группу &lt;strong&gt;Administrators&lt;/strong&gt;:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;net user New_User_Name New_User_Password /add
net localgroup Administrators New_User_Name /add&lt;/pre&gt;

&lt;p&gt;
А затем после того как сделаем все что нужно удаляем:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;net localgroup Administrators New_User_Name /delete
net user New_User_Name /delete&lt;/pre&gt;

&lt;p&gt;
Не забудьте вернуть &lt;strong&gt;Utilman32.exe&lt;/strong&gt; из &lt;strong&gt;Utilman32.exe.bak&lt;/strong&gt;&lt;br/&gt;

&lt;br/&gt;

Специально для тех, у кого русская винда и пользователь &lt;strong&gt;Администратор&lt;/strong&gt; (кирилица)&lt;br/&gt;

Запускаем консоль, щелкаем на заголовке окна и выбираем свойства. В свойствах на закладке &lt;strong&gt;Шрифт&lt;/strong&gt; ставим шрифт &lt;strong&gt;Lucida Console&lt;/strong&gt; и жмем &lt;strong&gt;ОК&lt;/strong&gt;. Далее набираем в консоли &lt;strong&gt;ChCp 1251&lt;/strong&gt;, в ответ получаем 
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;Текущая кодовая страница: 1251.&lt;/pre&gt;

&lt;p&gt;
Ну и дальше:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;net user Администратор Ololo123&lt;/pre&gt;

&lt;p&gt;
&lt;br/&gt;

&lt;br/&gt;

Сброс пароля, путем редактирования SAM-файла
&lt;a href=&quot;http://stuffjasondoes.com/2018/07/23/adding-a-domain-user-to-local-administrators-group-without-administrator-password/&quot; class=&quot;urlextern&quot; title=&quot;http://stuffjasondoes.com/2018/07/23/adding-a-domain-user-to-local-administrators-group-without-administrator-password/&quot; rel=&quot;ugc nofollow&quot;&gt;http://stuffjasondoes.com/2018/07/23/adding-a-domain-user-to-local-administrators-group-without-administrator-password/&lt;/a&gt;
&lt;/p&gt;
</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Fri, 08 Nov 2019 12:20:02 +0000</pubDate>
        </item>
        <item>
            <title>создаем-архивы-zip-средствами-windows-из-команднои-строки</title>
            <link>https://wiki.autosys.tk/ms_windows_ms_sql/%D1%81%D0%BE%D0%B7%D0%B4%D0%B0%D0%B5%D0%BC-%D0%B0%D1%80%D1%85%D0%B8%D0%B2%D1%8B-zip-%D1%81%D1%80%D0%B5%D0%B4%D1%81%D1%82%D0%B2%D0%B0%D0%BC%D0%B8-windows-%D0%B8%D0%B7-%D0%BA%D0%BE%D0%BC%D0%B0%D0%BD%D0%B4%D0%BD%D0%BE%D0%B8-%D1%81%D1%82%D1%80%D0%BE%D0%BA%D0%B8</link>
            <description>
&lt;p&gt;
Для архивирования данных из команднйо строки встроенным в Windows архиватором zip нам понадобится такой вот скрипт:&lt;br/&gt;

&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;Set oFSO = CreateObject(&amp;quot;Scripting.FileSystemObject&amp;quot;)
ToZip    = oFSO.GetAbsolutePathName(WScript.Arguments.Item(0))
ZipName  = oFSO.GetAbsolutePathName(WScript.Arguments.Item(1))

d=WindowsZip(ToZip, ZipName)

Function WindowsZip(sFile, sZipFile)
  Set oZipShell = CreateObject(&amp;quot;WScript.Shell&amp;quot;)
  Set oZipFSO   = CreateObject(&amp;quot;Scripting.FileSystemObject&amp;quot;)
  If Not oZipFSO.FileExists(sZipFile) Then
    NewZip(sZipFile)
  End If
  Set oZipApp = CreateObject(&amp;quot;Shell.Application&amp;quot;)
  sZipFileCount = oZipApp.NameSpace(sZipFile).items.Count
      aFileName = Split(sFile, &amp;quot;\&amp;quot;)
      sFileName = (aFileName(Ubound(aFileName)))
          sDupe = False
  For Each sFileNameInZip In oZipApp.NameSpace(sZipFile).items
    If LCase(sFileName) = LCase(sFileNameInZip) Then
        sDupe = True
        Exit For
    End If
  Next
  If Not sDupe Then
        wscript.echo &amp;quot;Adding &amp;quot; &amp;amp; sfile
        oZipApp.NameSpace(sZipFile).Copyhere sFile
        On Error Resume Next
        Do Until sZipFileCount &amp;lt; oZipApp.NameSpace(sZipFile).Items.Count
            Wscript.Sleep(100)
        Loop
        On Error GoTo 0
  End If
End Function

Sub NewZip(sNewZip)
  Set oNewZipFSO  = CreateObject(&amp;quot;Scripting.FileSystemObject&amp;quot;)
  Set oNewZipFile = oNewZipFSO.CreateTextFile(sNewZip)
  oNewZipFile.Write Chr(80) &amp;amp; Chr(75) &amp;amp; Chr(5) &amp;amp; Chr(6) &amp;amp; String(18, 0)
  oNewZipFile.Close
  Set oNewZipFSO = Nothing
  Wscript.Sleep(500)
End Sub0&lt;/pre&gt;

&lt;p&gt;
Сохраняем его в файл например &lt;strong&gt;zipit.vbs&lt;/strong&gt;  и потом запускаем как-то так:  &lt;br/&gt;

&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;CScript  zipit.vbs  %COMPRESSING_DIR%  C:\someArchive.zip&lt;/pre&gt;
</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Mon, 11 Feb 2019 09:13:27 +0000</pubDate>
        </item>
        <item>
            <title>создание-программнои-точки-доступа-в-windows-7</title>
            <link>https://wiki.autosys.tk/ms_windows_ms_sql/%D1%81%D0%BE%D0%B7%D0%B4%D0%B0%D0%BD%D0%B8%D0%B5-%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%BD%D0%BE%D0%B8-%D1%82%D0%BE%D1%87%D0%BA%D0%B8-%D0%B4%D0%BE%D1%81%D1%82%D1%83%D0%BF%D0%B0-%D0%B2-windows-7</link>
            <description>
&lt;p&gt;
В командной строке с правами администратора надо выполнить:&lt;br/&gt;

&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;netsh wlan set hostednetwork mode=allow ssid=&amp;quot;SoftAP Tst&amp;quot; key=&amp;quot;Yourpassword&amp;quot; keyUsage=persistent

netsh wlan start hostednetwork&lt;/pre&gt;

&lt;p&gt;
Для прекращения работы логичным образом меняем в команде параметр &lt;strong&gt;start&lt;/strong&gt; на &lt;strong&gt;stop&lt;/strong&gt;.
&lt;/p&gt;
</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Mon, 11 Feb 2019 09:13:27 +0000</pubDate>
        </item>
        <item>
            <title>удаление_программ_которые_не_удаляются_через_appwiz_add_r ...</title>
            <link>https://wiki.autosys.tk/ms_windows_ms_sql/%D1%83%D0%B4%D0%B0%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5_%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC_%D0%BA%D0%BE%D1%82%D0%BE%D1%80%D1%8B%D0%B5_%D0%BD%D0%B5_%D1%83%D0%B4%D0%B0%D0%BB%D1%8F%D1%8E%D1%82%D1%81%D1%8F_%D1%87%D0%B5%D1%80%D0%B5%D0%B7_appwiz_add_remove_programs</link>
            <description>
&lt;h1 class=&quot;sectionedit1&quot; id=&quot;проблема&quot;&gt;Проблема&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&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;\u041f\u0440\u043e\u0431\u043b\u0435\u043c\u0430&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0430&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:1,&amp;quot;range&amp;quot;:&amp;quot;1-136&amp;quot;} --&gt;
&lt;h1 class=&quot;sectionedit2&quot; id=&quot;решение&quot;&gt;Решение&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
Если по какой-то причине программа отказывается удаляться с помощью штатных средств, у microsoft есть пара утилит, которые помогают в этой ситуации.
одна из них - &lt;strong&gt;msizap.exe&lt;/strong&gt;. Утянул к себе: &lt;a href=&quot;https://wiki.autosys.tk/_media/ms_windows_ms_sql/msizap.zip&quot; class=&quot;media mediafile mf_zip&quot; title=&quot;ms_windows_ms_sql:msizap.zip (54.8 KB)&quot;&gt;msizap.zip&lt;/a&gt;. Вторая - &lt;strong&gt;Windows Install Clean Up&lt;/strong&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;\u0420\u0435\u0448\u0435\u043d\u0438\u0435&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0440\u0435\u0448\u0435\u043d\u0438\u0435&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:2,&amp;quot;range&amp;quot;:&amp;quot;137-576&amp;quot;} --&gt;
&lt;h1 class=&quot;sectionedit3&quot; id=&quot;иcпользование_msizap&quot;&gt;Иcпользование msizap&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
Для того, чтобы удалить софтину с помощью msizap нужно знать &lt;strong&gt;Product UID&lt;/strong&gt;. &lt;br/&gt;

Получить его можно из &lt;strong&gt;PowerShell&lt;/strong&gt;:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;Get-WmiObject -Class Win32_Product&lt;/pre&gt;

&lt;p&gt;
Или даже отфильтровать по названию:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;Get-WmiObject -Class Win32_Product | Where-Object { $_.Name -like &amp;quot;XXXX*&amp;quot;}&lt;/pre&gt;

&lt;p&gt;
&lt;strong&gt;XXX&lt;/strong&gt; - это название софтины. Можно использовать &lt;strong&gt;wildcard&lt;/strong&gt; для поиска по маске. &lt;br/&gt;

После того как удалсь обнаружить UID можно применить &lt;strong&gt;msizap&lt;/strong&gt;:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;msizap TP! {Product_UID}&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0418c\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 msizap&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0438c\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435_msizap&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:3,&amp;quot;range&amp;quot;:&amp;quot;577-&amp;quot;} --&gt;</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Mon, 11 Feb 2019 09:13:28 +0000</pubDate>
        </item>
        <item>
            <title>удаление_программы_из_командной_строки</title>
            <link>https://wiki.autosys.tk/ms_windows_ms_sql/%D1%83%D0%B4%D0%B0%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5_%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D1%8B_%D0%B8%D0%B7_%D0%BA%D0%BE%D0%BC%D0%B0%D0%BD%D0%B4%D0%BD%D0%BE%D0%B9_%D1%81%D1%82%D1%80%D0%BE%D0%BA%D0%B8</link>
            <description>
&lt;h1 class=&quot;sectionedit1&quot; id=&quot;удаление_программы_из_командной_строки&quot;&gt;Удаление программы из командной строки&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
Получаем список установленных программ:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;wmic product get name&lt;/pre&gt;

&lt;p&gt;
Удаление с подтверждением:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;wmic product where name=&amp;quot;name of program&amp;quot; call uninstall&lt;/pre&gt;

&lt;p&gt;
Тихое удаление без подтверждения:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;wmic product where name=&amp;quot;name of program&amp;quot; call uninstall /nointeractive&lt;/pre&gt;

&lt;p&gt;
Однако, этот способ следует использовать остожно. Если софт требует перезагрузки, то она пройдет бе предупреждения.  
Чтобы избежать перезагрузи, в скрипт можно добавить &lt;strong&gt;shutdown /a&lt;/strong&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;\u0423\u0434\u0430\u043b\u0435\u043d\u0438\u0435 \u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b \u0438\u0437 \u043a\u043e\u043c\u0430\u043d\u0434\u043d\u043e\u0439 \u0441\u0442\u0440\u043e\u043a\u0438&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0443\u0434\u0430\u043b\u0435\u043d\u0438\u0435_\u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u044b_\u0438\u0437_\u043a\u043e\u043c\u0430\u043d\u0434\u043d\u043e\u0439_\u0441\u0442\u0440\u043e\u043a\u0438&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:1,&amp;quot;range&amp;quot;:&amp;quot;1-766&amp;quot;} --&gt;
&lt;h1 class=&quot;sectionedit2&quot; id=&quot;удаление_из_powershell_с_помощью_штатного_msi&quot;&gt;Удаление из PowerShell с помощью штатного .msi&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
Вместо &lt;strong&gt;XXXX&lt;/strong&gt; подставляем название программы
Этот способ полезен, если после установки нужно избежать перезагрузки. Тут для &lt;strong&gt;msiexec.exe&lt;/strong&gt; можно указать &lt;strong&gt;/norestart&lt;/strong&gt;.
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;$product = Get-WmiObject -Class Win32_Product | Where-Object { $_.Name -like &amp;quot;XXXX&amp;quot;}
$AppGUID = $product.properties[&amp;quot;IdentifyingNumber&amp;quot;].value.toString()
MsiExec.exe /norestart /q/x $AppGUID REMOVE=ALL&lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0423\u0434\u0430\u043b\u0435\u043d\u0438\u0435 \u0438\u0437 PowerShell \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0448\u0442\u0430\u0442\u043d\u043e\u0433\u043e .msi&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0443\u0434\u0430\u043b\u0435\u043d\u0438\u0435_\u0438\u0437_powershell_\u0441_\u043f\u043e\u043c\u043e\u0449\u044c\u044e_\u0448\u0442\u0430\u0442\u043d\u043e\u0433\u043e_msi&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:2,&amp;quot;range&amp;quot;:&amp;quot;767-1348&amp;quot;} --&gt;
&lt;h1 class=&quot;sectionedit3&quot; id=&quot;удаление_с_помощью_штатных_инсталляционных_пакетов&quot;&gt;Удаление с помощью штатных инсталляционных пакетов&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
К сожалению, удаление с помощью wmic работает медленно.
Быстрее можно удалить с помощью штатных инсталляционных пакетов.
Для начала - получаем список софта из реестра:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;reg query &amp;quot;HKLM\Software\Microsoft\Windows\Currentversion\Uninstall&amp;quot; /s /v DisplayName&lt;/pre&gt;

&lt;p&gt;
Фильтруем по названию:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;reg query &amp;quot;HKLM\Software\Microsoft\Windows\Currentversion\Uninstall&amp;quot; /s /v DisplayName | find &amp;quot;Citrix&amp;quot;&lt;/pre&gt;

&lt;p&gt;
Запрашиваем команду для удаления:
&lt;/p&gt;
&lt;pre class=&quot;code&quot;&gt;reg query &amp;quot;HKLM\Software\Microsoft\Windows\Currentversion\Uninstall&amp;quot; /s /v UninstallString &lt;/pre&gt;

&lt;/div&gt;
&lt;!-- EDIT{&amp;quot;target&amp;quot;:&amp;quot;section&amp;quot;,&amp;quot;name&amp;quot;:&amp;quot;\u0423\u0434\u0430\u043b\u0435\u043d\u0438\u0435 \u0441 \u043f\u043e\u043c\u043e\u0449\u044c\u044e \u0448\u0442\u0430\u0442\u043d\u044b\u0445 \u0438\u043d\u0441\u0442\u0430\u043b\u043b\u044f\u0446\u0438\u043e\u043d\u043d\u044b\u0445 \u043f\u0430\u043a\u0435\u0442\u043e\u0432&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u0443\u0434\u0430\u043b\u0435\u043d\u0438\u0435_\u0441_\u043f\u043e\u043c\u043e\u0449\u044c\u044e_\u0448\u0442\u0430\u0442\u043d\u044b\u0445_\u0438\u043d\u0441\u0442\u0430\u043b\u043b\u044f\u0446\u0438\u043e\u043d\u043d\u044b\u0445_\u043f\u0430\u043a\u0435\u0442\u043e\u0432&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:3,&amp;quot;range&amp;quot;:&amp;quot;1349-&amp;quot;} --&gt;</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Mon, 11 Feb 2019 09:13:28 +0000</pubDate>
        </item>
        <item>
            <title>указанная_служба_не_может_быть_запущена_поскольку_о ...</title>
            <link>https://wiki.autosys.tk/ms_windows_ms_sql/%D1%83%D0%BA%D0%B0%D0%B7%D0%B0%D0%BD%D0%BD%D0%B0%D1%8F_%D1%81%D0%BB%D1%83%D0%B6%D0%B1%D0%B0_%D0%BD%D0%B5_%D0%BC%D0%BE%D0%B6%D0%B5%D1%82_%D0%B1%D1%8B%D1%82%D1%8C_%D0%B7%D0%B0%D0%BF%D1%83%D1%89%D0%B5%D0%BD%D0%B0_%D0%BF%D0%BE%D1%81%D0%BA%D0%BE%D0%BB%D1%8C%D0%BA%D1%83_%D0%BE%D0%BD%D0%B0_%D0%BE%D1%82%D0%BA%D0%BB%D1%8E%D1%87%D0%B5%D0%BD%D0%B0</link>
            <description>
&lt;h1 class=&quot;sectionedit1&quot; id=&quot;проблема&quot;&gt;Проблема&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
После отключения служб в Windows 7 при попытке запустить приложение, требующее повышения привилегий (например - &lt;strong&gt;Управление компьютером&lt;/strong&gt;, просто &lt;strong&gt;mmc.exe&lt;/strong&gt; или &lt;strong&gt;cmd&lt;/strong&gt; от имени администратора) появляется сообщение:
&lt;strong&gt;Указанная служба не может быть запущена, поскольку она отключена или все связанные с ней устройства отключены&lt;/strong&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;\u041f\u0440\u043e\u0431\u043b\u0435\u043c\u0430&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u043f\u0440\u043e\u0431\u043b\u0435\u043c\u0430&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:1,&amp;quot;range&amp;quot;:&amp;quot;1-613&amp;quot;} --&gt;
&lt;h1 class=&quot;sectionedit2&quot; id=&quot;причина_и_решение&quot;&gt;Причина и решение&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
Причина в том, что отключена служба &lt;strong&gt;Сведения о приложении&lt;/strong&gt; (&lt;strong&gt;AppInfo&lt;/strong&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;\u041f\u0440\u0438\u0447\u0438\u043d\u0430 \u0438 \u0440\u0435\u0448\u0435\u043d\u0438\u0435&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u043f\u0440\u0438\u0447\u0438\u043d\u0430_\u0438_\u0440\u0435\u0448\u0435\u043d\u0438\u0435&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:2,&amp;quot;range&amp;quot;:&amp;quot;614-&amp;quot;} --&gt;</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Mon, 11 Feb 2019 09:13:28 +0000</pubDate>
        </item>
        <item>
            <title>установка-windows-7-2008-с-флешки</title>
            <link>https://wiki.autosys.tk/ms_windows_ms_sql/%D1%83%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B0-windows-7-2008-%D1%81-%D1%84%D0%BB%D0%B5%D1%88%D0%BA%D0%B8</link>
            <description>
&lt;p&gt;
Установить Windows с флешки очень просто. &lt;br/&gt;

1. Берем iso-образ винды.&lt;br/&gt;

2. Берем UltraISO. Можно отсюда - &lt;a href=&quot;https://wiki.autosys.tk/_media/ultraiso.rar&quot; class=&quot;media mediafile mf_rar&quot; title=&quot;ultraiso.rar (2.5 MB)&quot;&gt;UltraISO&lt;/a&gt;&lt;br/&gt;

3. Открываем образ в UltraISO.&lt;br/&gt;

4. В Меню - &lt;strong&gt;Bootable (Самозагрузка)&lt;/strong&gt; → &lt;strong&gt;Write Disk Image… (Записать образ Жесткого диска)&lt;/strong&gt;. &lt;br/&gt;

5. Форматируем флешку в &lt;strong&gt;NTFS&lt;/strong&gt;.&lt;br/&gt;

6. Записываем в режиме &lt;strong&gt;USB-HDD+&lt;/strong&gt;. 
&lt;/p&gt;
</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Mon, 11 Feb 2019 09:13:28 +0000</pubDate>
        </item>
        <item>
            <title>что-такое-порт-wds-и-чем-он-отличается-от-обычного-tcp-ip- ...</title>
            <link>https://wiki.autosys.tk/ms_windows_ms_sql/%D1%87%D1%82%D0%BE-%D1%82%D0%B0%D0%BA%D0%BE%D0%B5-%D0%BF%D0%BE%D1%80%D1%82-wds-%D0%B8-%D1%87%D0%B5%D0%BC-%D0%BE%D0%BD-%D0%BE%D1%82%D0%BB%D0%B8%D1%87%D0%B0%D0%B5%D1%82%D1%81%D1%8F-%D0%BE%D1%82-%D0%BE%D0%B1%D1%8B%D1%87%D0%BD%D0%BE%D0%B3%D0%BE-tcp-ip-%D0%BF%D0%BE%D1%80%D1%82%D0%B0-%D0%BF%D1%80%D0%B8%D0%BD%D1%82%D0%B5%D1%80%D0%B0</link>
            <description>
&lt;h1 class=&quot;sectionedit1&quot; id=&quot;wds_aka_web_services_for_devices&quot;&gt;WDS aka Web Services For Devices&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
Новые версии &lt;strong&gt;Microsoft Windows&lt;/strong&gt; (Vista и старше) имеют в своем составе новые средства для работы с сетевыми устройствами, в частности с принтерами и сканерами.&lt;br/&gt;

Теперь для взаимодействия с сетевыми устройствами на замену протоколу TCP (Transmission Control Protocol) пришел протокол &lt;strong&gt;WSD (Web Services For Devices)&lt;/strong&gt;, который также использует IP в качестве транспорта. Фактически &lt;strong&gt;WSD&lt;/strong&gt; не является портом, а способом управления портами.&lt;br/&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;WDS aka Web Services For Devices&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;wds_aka_web_services_for_devices&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:1,&amp;quot;range&amp;quot;:&amp;quot;1-770&amp;quot;} --&gt;
&lt;h1 class=&quot;sectionedit2&quot; id=&quot;отличия_монитора_wsdip_от_монитора_tcpip&quot;&gt;Отличия монитора WSD/IP от монитора TCP/IP&lt;/h1&gt;
&lt;div class=&quot;level1&quot;&gt;

&lt;p&gt;
Важно выяснить - какой тип мониторинга предпочтителен в корпоративных сетях? Если коротко - то TCP. &lt;strong&gt;WSD&lt;/strong&gt; разработан для автоматического обнаружения, настройки и управления. &lt;strong&gt;WSD&lt;/strong&gt; реализует функции &lt;strong&gt;Plug and Play&lt;/strong&gt; для сетевых устройств, аналогичные для USB-устройств. В корпоративных сетях обычно требуется установка только нужных принтеров, а не всех принтеров в сети. К счастью WDS прекращает установку принтеров, если уже установлено 30 устройств. &lt;br/&gt;

&lt;/p&gt;

&lt;p&gt;
&lt;strong&gt;WSD&lt;/strong&gt; отличается от &lt;strong&gt;TCP&lt;/strong&gt; следующими особенностями:&lt;br/&gt;

&lt;/p&gt;

&lt;p&gt;
 - Обнаружение и установка. В случае TCP принтер устанавливается вручную пользователем, который знает IP-адрес устройства. При изменении этого адреса связь с принтером теряется. При использовании WSD-принтер может установиться автоматически при подключении его к сети, благодаря механизму объявлений о новом устройстве с помощью &lt;strong&gt;WS-Discovery&lt;/strong&gt;. Также, при отправке каждого задания IP-адрес принтера проверяется и он всегда остается на связи.&lt;br/&gt;

 - Информация о состоянии. В случае TCP порта механизм &lt;strong&gt;TCPMon&lt;/strong&gt; опрашивает принтер каждые 10 минут с помощью SNMP. &lt;strong&gt;WSDMon&lt;/strong&gt; подписывается на события принтера и таким образом получает информацию о состоянии принтера (закончилась бумага, тонер и т.д.) сразу при наступлении событий.&lt;br/&gt;

 - Задания печати. &lt;strong&gt;TCPMon&lt;/strong&gt; просто посылает данные в порт 9100 и получает минимальный отклик от принтера (если вообще получает). То есть бывает непонятно, в каком состоянии находится принтер, от кого поступило задание, готов ли принтер к печати и т.д. &lt;strong&gt;WSDMon&lt;/strong&gt; сначала посылает запрос на размещение задания, а обратно получает идентификатор, который используется для мониторинга задания и упраления им. &lt;strong&gt;WSD&lt;/strong&gt; посылает задание только если принтер готов.&lt;br/&gt;

&lt;/p&gt;

&lt;p&gt;
В Windows 8 сервис &lt;strong&gt;WSDMon&lt;/strong&gt; влючается автоматически. Таким образом, новый принтер появится в системе как только будет подключен к сети, без необходимости дополнительной настройки. Это может быть не очень хорошо на крупном предприятии, где в сети могут быть сотни принтеров. К счастьтю, после установки 30 принтеров (по-умолчанию, также это число настраивается) процесс &lt;strong&gt;WSDMon&lt;/strong&gt; останавливает себя сам. &lt;br/&gt;

&lt;/p&gt;

&lt;p&gt;
&lt;strong&gt;WSDMon&lt;/strong&gt; работает только с принтерми, поддерживающими WSD - то есть практически любой принтер выпущенный с 2009 года. &lt;br/&gt;

Сервис WSD поддерживает не только принтеры. WSD это сервис мониторинга портов - он следит за информацие поступающей в порты TCP/IP и производит изменения в конфигурации в соотвествии с поступающей информацией. Теоретически сервис WSD поддерживает не только принтеры. &lt;strong&gt;Microsoft&lt;/strong&gt; предполагает распространить применение &lt;strong&gt;WSD&lt;/strong&gt; на:&lt;br/&gt;

 - Принтеры и другие сетевые устройства. автоматически распознаваемые и устанавливаемые при подключении к сети.&lt;br/&gt;

 - Беспроводные устройства, в том числе сотовые телефоны, проекторы, домашные развлекательные центры. &lt;br/&gt;

 - Камеры, передающие изображения через интернет на домашиний компьютер пользователя, в облачное хранилище или на другие устройства.&lt;br/&gt;

 - Контроллеры “умных домов”, автоматически распознающие и конфигурирующие системы освещения, климатическое оборудование и другие системы, управляемые с домашнего компьютера иил через интернет.&lt;br/&gt;

&lt;/p&gt;

&lt;p&gt;
Дополнительную информацию о &lt;strong&gt;WSD&lt;/strong&gt; можно найти в соответствующем блоге &lt;strong&gt;Microsoft&lt;/strong&gt;: &lt;a href=&quot;https://techcommunity.microsoft.com/t5/Ask-The-Performance-Team/WS2008-The-WSD-Port-Monitor/ba-p/372760&quot; class=&quot;urlextern&quot; title=&quot;https://techcommunity.microsoft.com/t5/Ask-The-Performance-Team/WS2008-The-WSD-Port-Monitor/ba-p/372760&quot; rel=&quot;ugc nofollow&quot;&gt;https://techcommunity.microsoft.com/t5/Ask-The-Performance-Team/WS2008-The-WSD-Port-Monitor/ba-p/372760&lt;/a&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\u0442\u043b\u0438\u0447\u0438\u044f \u043c\u043e\u043d\u0438\u0442\u043e\u0440\u0430 WSD\/IP \u043e\u0442 \u043c\u043e\u043d\u0438\u0442\u043e\u0440\u0430 TCP\/IP&amp;quot;,&amp;quot;hid&amp;quot;:&amp;quot;\u043e\u0442\u043b\u0438\u0447\u0438\u044f_\u043c\u043e\u043d\u0438\u0442\u043e\u0440\u0430_wsdip_\u043e\u0442_\u043c\u043e\u043d\u0438\u0442\u043e\u0440\u0430_tcpip&amp;quot;,&amp;quot;codeblockOffset&amp;quot;:0,&amp;quot;secid&amp;quot;:2,&amp;quot;range&amp;quot;:&amp;quot;771-&amp;quot;} --&gt;</description>
            <author>anonymous@undisclosed.example.com (Anonymous)</author>
            <pubDate>Wed, 31 Jul 2019 14:34:26 +0000</pubDate>
        </item>
    </channel>
</rss>
