Хотите опубликовать свой сайт на GitHub Pages из приватного репозитория, но не хотите покупать Pro подписку на GitHub? Можно сделать так, что бы сайт жил в публичном репозитории и деплоился автоматически при каждом пуше, а исходники при этом оставались в приватном. Расскажу, как настроил у себя — заодно и шпаргалка получится.
Гибернация (англ. hibernation — «зимняя спячка») — энергосберегающий режим операционной системы компьютера, при котором содержимое оперативной памяти сохраняется на энергонезависимое устройство хранения данных (жёсткий диск) перед выключением питания. В отличие от ждущего режима, в режиме гибернации после сохранения данных оперативной памяти подача электроэнергии полностью прекращается. После включения питания компьютера содержимое памяти восстанавливается (загружается с диска в память), и пользователь сможет продолжить работу с того же места, на котором он остановился, так как все запущенные ранее программы продолжат выполняться.
Иногда нужно, что бы компьютер не выключался, а настройки энергосбережения и блокировки менять не дают. Можно купить аппаратное устройство, можно самому сделать на основе ардуино.
А можно накатать скриптик из 10 строчек.
Netlify очень удобный инструмент для хостинга статических сайтов. Когда сайт очень большого размера, он довольно долго генерируется и не очень удобно смотреть за состоянием деплоя. Так же когда над сайтом работает несколько человек, полезно знать когда запустили деплой. Для этого можно настроить отправку уведомлений в телеграм. Сделать это довольно просто используя телеграм бота и вебхуки.
Как-то исторически сложилось, что адресная книга в организации велась в экселевском файлике, лежащем на шаре. Гемор её поддерживать, гемор ей пользоваться и всё такое. Но ведь есть замечательная Active Directory, в которой все данные есть!
Избавил сотрудника от тяжкой ноши вносить всех в файлик и сваял за пару минут наколеночный скрипт. Ну и темплейт, ещё за пару десятков минут сварганил.
Просто запускаем скрипт и у нас есть html, который можно положить куда угодно и политиками добавить его в букмарки всех сотрудников.
На днях релизнулся Zabbix 3.0, да к тому же LTS. Обновление серверной части не заняло много времени (да здравствуют репозитории!), а вот ползать по куче серверов (а их собственно за сотню) для обновления агентов было впадлу. Можно было конечно и забить, но некрасиво как-то. Поэтому на коленке был сварганен следующий скрипт.
Скриптов, реализующих подобный функционал куча, но ни один меня не устроил. Пришлось написать свой, путём домысливания и надёргивания кусков отовсюду. (Сорри авторам у которых надёргал, всех не упомнишь)
В принципе в коде всё понятно, можно обойтись и без комментариев. Единственное неочевидное место:
$DisplayName=(Get-ADUser ($LoggedonUserName.Split('\\')\[1\])).name
Дело в том, что класс Win32_ComputerSystem отдаёт имя в формате domain\username, с помощью метода .Split я разбиваю строку на массив из двух элементов и беру из него второе значение.
Скрипт требует модуля ActiveDirectory, входящего в стандартную поставку.
Понадобилось тут включить RDP на десятке компьютеров в офисе. Можно, конечно, включить через реестр, но тогда требуется перезагрузка компьютера. Нашёл способ, лишённый этого недостатка:
wmic /node:ИМЯ_КОМПЬЮТЕРА path win32_terminalservicesetting where (__Class!="") call setallowtsconnections 1
Для удобства написал батничек. В качестве параметра ему передавать или имена компьютеров через пробел, или файл в котором имена компьютеров по одному в каждой строке.