<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Powershell on diamon@truediamon.ru:~$</title><link>https://truediamon.ru/tags/powershell/</link><description>Recent content in Powershell on diamon@truediamon.ru:~$</description><generator>Hugo</generator><language>ru-ru</language><copyright>Содержимое доступно по лицензии [Attribution-NonCommercial-NoDerivatives 4.0 Creative Commons](https://creativecommons.org/licenses/by-nc-nd/4.0/deed.ru)</copyright><lastBuildDate>Thu, 22 Apr 2021 12:19:47 +0300</lastBuildDate><atom:link href="https://truediamon.ru/tags/powershell/index.xml" rel="self" type="application/rss+xml"/><item><title>Как запретить компьютеру засыпать</title><link>https://truediamon.ru/content/dont-sleep/</link><pubDate>Thu, 22 Apr 2021 12:19:47 +0300</pubDate><guid>https://truediamon.ru/content/dont-sleep/</guid><description>&lt;p&gt;Иногда нужно, что бы компьютер не выключался, а настройки энергосбережения и блокировки менять не дают. Можно купить аппаратное устройство, можно самому сделать на основе ардуино.&#10;А можно накатать скриптик из 10 строчек.&lt;/p&gt;&#10;&lt;p&gt;Вот так можно подёргать мышку:&lt;/p&gt;&#10;&lt;div class="highlight-wrapper"&gt;&#10; &lt;div class="highlight-toolbar"&gt;&#10; &#10; &lt;span class="highlight-lang"&gt;PowerShell&lt;/span&gt;&#10; &#10; &lt;button type="button" class="highlight-copy" data-copied="Скопировано"&gt;Копировать&lt;/button&gt;&#10; &lt;/div&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-PowerShell" data-lang="PowerShell"&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 1&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="nb"&gt;Add-Type&lt;/span&gt; &lt;span class="n"&gt;-AssemblyName&lt;/span&gt; &lt;span class="n"&gt;System&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="py"&gt;Windows&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="py"&gt;Forms&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 2&lt;/span&gt;&lt;span class="cl"&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 3&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="k"&gt;while&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="vm"&gt;$true&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 4&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;{&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 5&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="nv"&gt;$Pos&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="no"&gt;System.Windows.Forms.Cursor&lt;/span&gt;&lt;span class="p"&gt;]::&lt;/span&gt;&lt;span class="na"&gt;Position&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 6&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="nv"&gt;$x&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;$pos&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="py"&gt;X&lt;/span&gt; &lt;span class="p"&gt;%&lt;/span&gt; &lt;span class="mf"&gt;500&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;+&lt;/span&gt; &lt;span class="mf"&gt;1&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 7&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="nv"&gt;$y&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;$pos&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="py"&gt;Y&lt;/span&gt; &lt;span class="p"&gt;%&lt;/span&gt; &lt;span class="mf"&gt;500&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;+&lt;/span&gt; &lt;span class="mf"&gt;1&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 8&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="no"&gt;System.Windows.Forms.Cursor&lt;/span&gt;&lt;span class="p"&gt;]::&lt;/span&gt;&lt;span class="na"&gt;Position&lt;/span&gt; &lt;span class="p"&gt;=&lt;/span&gt; &lt;span class="nb"&gt;New-Object&lt;/span&gt; &lt;span class="n"&gt;System&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="py"&gt;Drawing&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="py"&gt;Point&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;$x&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nv"&gt;$y&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt; 9&lt;/span&gt;&lt;span class="cl"&gt; &lt;span class="nb"&gt;Start-Sleep&lt;/span&gt; &lt;span class="n"&gt;-Seconds&lt;/span&gt; &lt;span class="mf"&gt;240&lt;/span&gt;&#10;&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="ln"&gt;10&lt;/span&gt;&lt;span class="cl"&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&#10;&lt;/div&gt;&#10;&lt;p&gt;А так можно понажимать ScrollLock:&lt;/p&gt;</description></item><item><title>Адресная книга в html из AD</title><link>https://truediamon.ru/content/adresnaya-kniga-v-html-iz-ad/</link><pubDate>Wed, 10 Aug 2016 16:44:14 +0000</pubDate><guid>https://truediamon.ru/content/adresnaya-kniga-v-html-iz-ad/</guid><description>&lt;p&gt;Как-то исторически сложилось, что адресная книга в организации велась в экселевском файлике, лежащем на шаре. Гемор её поддерживать, гемор ей пользоваться и всё такое. Но ведь есть замечательная Active Directory, в которой все данные есть!&#10;Избавил сотрудника от тяжкой ноши вносить всех в файлик и сваял за пару минут наколеночный скрипт. Ну и темплейт, ещё за пару десятков минут сварганил.&#10;Просто запускаем скрипт и у нас есть html, который можно положить куда угодно и политиками добавить его в букмарки всех сотрудников.&lt;/p&gt;</description></item><item><title>Пакетное обновление агентов Zabbix</title><link>https://truediamon.ru/content/paketnoe-obnovlenie-agentov-zabbix/</link><pubDate>Fri, 19 Feb 2016 16:00:24 +0000</pubDate><guid>https://truediamon.ru/content/paketnoe-obnovlenie-agentov-zabbix/</guid><description>&lt;p&gt;На днях релизнулся Zabbix 3.0, да к тому же LTS. Обновление серверной части не заняло много времени (да здравствуют репозитории!), а вот ползать по куче серверов (а их собственно за сотню) для обновления агентов было впадлу. Можно было конечно и забить, но некрасиво как-то. Поэтому на коленке был сварганен следующий скрипт.&lt;/p&gt;</description></item><item><title>Записываем в описание компьютера в active directory имя залогиненого на нем пользователя</title><link>https://truediamon.ru/content/zapisyvaem-v-opisanie-kompyutera-v-active-directory-imya-zaloginenogo-na-nem-polzovatelya/</link><pubDate>Wed, 27 Mar 2013 14:52:48 +0000</pubDate><guid>https://truediamon.ru/content/zapisyvaem-v-opisanie-kompyutera-v-active-directory-imya-zaloginenogo-na-nem-polzovatelya/</guid><description>&lt;p&gt;Скриптов, реализующих подобный функционал куча, но ни один меня не устроил. Пришлось написать свой, путём домысливания и надёргивания кусков отовсюду. (Сорри авторам у которых надёргал, всех не упомнишь)&lt;/p&gt;&#10;&lt;p&gt;В принципе в коде всё понятно, можно обойтись и без комментариев. Единственное неочевидное место:&#10;&lt;code&gt;$DisplayName=(Get-ADUser ($LoggedonUserName.Split('\\')\[1\])).name&lt;/code&gt;&#10;Дело в том, что класс &lt;strong&gt;Win32_ComputerSystem&lt;/strong&gt; отдаёт имя в формате &lt;strong&gt;domain\username&lt;/strong&gt;, с помощью метода &lt;strong&gt;.Split&lt;/strong&gt; я разбиваю строку на массив из двух элементов и беру из него второе значение.&#10;Скрипт требует модуля ActiveDirectory, входящего в стандартную поставку.&lt;/p&gt;</description></item></channel></rss>