Как стать автором
Обновить
10

PowerShell *

Расширяемое средство автоматизации от Microsoft

Сначала показывать
Порог рейтинга
Уровень сложности

Автоматизируем учёт электронных подписей

Время на прочтение7 мин
Количество просмотров7.5K

Я думаю, каждый системный администратор задавался вопросом автоматизации учёта электронных подписей в своей организации. Потому что вопросы «Какие у нас есть электронные подписи?»«На каких компьютерах они установлены?»«Когда они заканчиваются?» и т.д. возникают регулярно. Иногда на них отвечает юридический отдел, иногда их адресуют нам, системным администраторам.

Читать далее
Всего голосов 4: ↑3 и ↓1+3
Комментарии6

Git for Windows: вклад в проект с помощью патча

Время на прочтение15 мин
Количество просмотров7.6K

Существуют разные способы совместной работы над исходным кодом проекта. Так получилось, что сначала я познакомился с тем, как работать с командой «git push», посылая свои изменения в удаленный репозиторий, и как создать на сайте «GitHub» форк для отправки из него запроса на принятие изменений («pull request», сокращенно «PR»). И только после этого я узнал о том, что существует способ обмена изменениями в код с помощью файлов-патчей.

В этой статье я экспериментирую с командой «git diff», создаю тестовый проект и файл-патч из него в программах-оболочках «PowerShell» версии 7 и «Git Bash». Клонирую проект и применяю полученный файл-патч с помощью команды «git apply».

В последней части статьи я показываю, как можно применить программу «Git» для создания файла-патча с изменением в исходный код известного веб-приложения «WordPress». В конце этого примера я создаю сообщение об ошибке (ticket) в системе управления проектом «WordPress» и прикладываю к нему свой файл-патч.

Читать далее
Всего голосов 5: ↑1 и ↓4-3
Комментарии5

Git for Windows: работа с параметром core.autocrlf

Время на прочтение9 мин
Количество просмотров24K

Одна из настроек программы (системы управления версиями) «Git» называется «core.autocrlf». В этой статье я на практическом примере описываю, что происходит при каждом из трех возможных значений этой настройки. После этого я делаю выводы о том, для чего эта настройка нужна и в каких ситуациях какие ее значения можно использовать.

Всё описанное происходит в операционной системе «Windows 10». Работу с «Git» я показываю на примере работы из командной строки в программе «PowerShell» версии 7. Используемый дистрибутив «Git» называется «Git for Windows».

Читать далее
Всего голосов 12: ↑10 и ↓2+10
Комментарии10

Port Knocking для Windows

Время на прочтение9 мин
Количество просмотров9.6K

Мне довольно часто приходится настраивать "одинокие" терминальные сервера(и не только терминальные) в "Облаках", с "легким, быстрым" доступом к нему по RDP.

Все объяснения для пользователей\заказчиков, что такие сервера должны быть доступны только с доверенных IP или через VPN воспринимаются "в штыки" и тогда приходится рисковать...

Конечно сервер защищается от Bruteforce(а), используются парольная политика, нестандартный порт, но все равно сервер постоянно под угрозой, в среднем в месяц можно увидеть по 15000 попыток подобрать пароль.

Такое обстоятельство дел заставило меня подумать о простом и действенном способе защиты сервера и в то же время этот способ не должен усложнить пользователям подключение к серверу.

Первое что пришло в голову - Port Knocking, использую его на RouterOS, но беглое гугление показало что для Windows не существует подобного штатного функционала, поиск сторонних средств которые могли бы помочь организовать задуманное не дал результата,  больше покопавшись нашел только странные и страшные поделки на Java не внушавшие доверия.

Тогда решил написать PortKnocking для Windows. Написать его решил на PowerShell, чтоб не пришлось устанавливать на сервер дополнительно Java или Python.

Т.к. есть опыт c телеграм ботами(@SuperMon_Bot), решил добавить и информирование о работе PortKnocking через телеграм.

Определился, что вся задумка должна состоять из нескольких скриптов.

Читать далее
Всего голосов 10: ↑7 и ↓3+4
Комментарии35

Управление Windows приложениями с помощью PowerShell через Telegram бота на Python

Время на прочтение3 мин
Количество просмотров9K

Работаю инженером в компании, у которой есть несколько удаленных филиалов и в каждом из них работают сервера видеонаблюдения. Охрана круглосуточно ведет мониторинг происходящего, а приложение видеонаблюдения на этих серверах имеет привычку зависать. Звонки от охраны могут поступать в любое время суток, что очень неудобно, когда ты спишь или нет доступа к ПК, чтобы подключиться удаленно и перезапустить программу

Я начал задумываться о решении данной проблемы путем создания Telegram бота на Python, с помощью которого можно комфортно перезапускать ПО или делегировать это функцию не компетентным людям, например охране

При всем многообразии решений с помощью Telegram ботов, информации на эту тему в интернете мало, поэтому решил поделиться ей здесь, возможно кому то пригодиться

Так же по этому примеру, через запуск скриптов, возможно управлять инфраструктурой серверов предприятия и пр.., все зависит от вашей фантазии

Читать далее
Всего голосов 2: ↑2 и ↓0+2
Комментарии1

Windows 10, PowerShell: файл сертификата открытого ключа (X.509) изнутри

Время на прочтение12 мин
Количество просмотров8K

Немного о том, как устроено в «Windows 10» хранение сертификатов открытого ключа, а также о том, как можно просматривать хранилища сертификатов и свойства отдельных сертификатов.

В двух словах рассказано о том, какие инструменты можно использовать для работы с сертификатами открытого ключа, в частности — про сохраненные консоли certlm.msc, certmgr.msc и работу с сертификатами из программы-оболочки PowerShell.

На практическом примере показано, как из командной строки PowerShell можно просмотреть свойства определенного сертификата и как расшифровывать свойства, в которых хранятся «сырые» данные в виде байтовых массивов. Коротко рассказано про язык описания данных ASN.1, способ сериализации DER и стандартизированное дерево идентификаторов объектов OID. Всё это показано на практическом примере.

Читать далее
Всего голосов 2: ↑2 и ↓0+2
Комментарии6

Загрузочный образ Acronis + VNC + VPN

Время на прочтение5 мин
Количество просмотров9.7K

Мы в компании давно используем готовые образы систем для быстрого разворачивания рабочего места, но появилась проблема как это сделать удаленно. Попытки объяснить человеку на другом конце страны в каком порядке и что делать - утомили. Проще научить загружаться с флешки, а дальше уже самому поставить разворачиваться образ или наоборот сделать его. Для этого пришлось немного дополнить образ стандартного загрузочного диска Acronis Bootable PE добавив VNC и подключение по VPN до нашего шлюза.

Читать далее
Всего голосов 7: ↑7 и ↓0+7
Комментарии1

Разбираем по полочкам «философию Unix»

Время на прочтение9 мин
Количество просмотров17K
image

Как-то раз я написал пост о том, как проектируются компиляторы. Основная идея этого поста заключалась в очень простом композиционном примитиве – а именно, выстроить конвейер из функций. Традиционно проектирование компиляторов выстраивается как нисходящий процесс. Компилятор – большая штука, слишком большая, чтобы сразу уложить его в голове. Поэтому задачи дробятся до тех пор, пока не удастся остановиться на какой-нибудь удобоваримой подзадаче, например: написать парсер. Эта проблема уже достаточно компактная, чтобы справиться с ней в одиночку.
Читать дальше →
Всего голосов 26: ↑21 и ↓5+24
Комментарии26

PowerShell: проверка совмещения имен БЭМ-сущностей на одном HTML-узле

Время на прочтение15 мин
Количество просмотров1.1K

При написании HTML-страницы по методологии БЭМ («Блок, Элемент, Модификатор») БЭМ-сущности привязываются к узлам HTML-дерева. В предыдущих статьях я рассматривал, как можно выполнить в скрипте на языке PowerShell проверку правильности написания названий БЭМ-сущностей по отдельности с помощью регулярных выражений.

В этой статье рассмотрено, какие есть правила для совмещения нескольких имен БЭМ-сущностей на одном узле HTML-дерева и как соблюдение этих правил можно проверить в скрипте на языке PowerShell. Приведены иллюстрации фрагментов результатов работы скрипта в разных случаях, при обнаружении разных ошибок.

Читать далее
Всего голосов 3: ↑3 и ↓0+3
Комментарии0

PowerShell: распознавание БЭМ-сущностей на HTML-странице

Время на прочтение5 мин
Количество просмотров2.3K

Распознавание типов БЭМ-сущностей (блок, элемент, разные виды модификаторов) в скрипте на языке PowerShell с помощью простых регулярных выражений.

Предполагается, что скрипт получает файл с кодом на языке HTML, разбирает его (парсит) и определяет типы БЭМ-сущностей, привязанных к узлам HTML-дерева, после чего выводит информацию об этом в окно терминала (консоли). Приведена иллюстрация того, как может работать подобный скрипт. Такой инструмент можно использовать для изучения методологии БЭМ самому или обучения этой методологии других.

Читать далее
Всего голосов 4: ↑2 и ↓2+2
Комментарии0

PowerShell, HTML Agility Pack: получение значения атрибута HTML-элемента

Время на прочтение8 мин
Количество просмотров1.4K

Рассмотрено два способа получения значения атрибута HTML-элемента на HTML-странице в скрипте на языке PowerShell с помощью методов объектов из библиотеки HTML Agility Pack.

Показан прямой доступ к значениям атрибутов с помощью выражения вида $node.Attributes. Далее большая часть статьи посвящена методам GetAttributeValue из библиотеки HTML Agility Pack. Освежаю в памяти, что такое «полиморфизм» и как он реализован в библиотеке для данного метода. Также будет немного затронуто понятие «обобщенного метода» («generic method») в языке C#.

Читать далее
Всего голосов 1: ↑1 и ↓0+1
Комментарии0

PowerShell: классическая схема именования в БЭМ и регулярные выражения

Время на прочтение10 мин
Количество просмотров3K

В методологии БЭМ, которую используют для создания сайтов, существует соглашение (схема) по именованию классов CSS (БЭМ-сущностей), которые привязывают к HTML-элементам HTML-дерева. Я рассматриваю классическую схему именования классов CSS по методологии БЭМ, а также — как создать функцию на языке PowerShell для проверки (валидации) имен БЭМ-сущностей на ошибки.

Проверка выполняется с помощью ряда простых регулярных выражений, по которым одно за другим в определенном порядке проверяются правила именования. Каждое из применяемых регулярных выражений я рассматриваю в подробностях.

Приведена иллюстрация, как может работать (какой результат может выдавать в консоль) такой скрипт-валидатор.

Читать далее
Всего голосов 4: ↑4 и ↓0+4
Комментарии2

PowerShell, HTML Agility Pack: разбор классов CSS на узле HTML-дерева

Время на прочтение7 мин
Количество просмотров1.6K

Я развиваю скрипт на языке PowerShell для обхода и визуализации HTML-дерева из файла на языке HTML для анализа кода HTML на ошибки. В частности, для поиска ошибок при именовании классов CSS. Для этого сначала нужно получить набор классов из атрибута class HTML-элементов, а затем перебрать эти названия классов в цикле. Для разбора HTML я использую библиотеку «HTML Agility Pack». Также я разбираю, как можно обработать ссылки на символы (их еще называют по-английски «HTML-entities») средствами указанной библиотеки.

Читать далее
Рейтинг0
Комментарии0

Ближайшие события

24 – 25 октября
One Day Offer для AQA Engineer и Developers
Онлайн
25 октября
Конференция по росту продуктов EGC’24
МоскваОнлайн
26 октября
ProIT Network Fest
Санкт-Петербург
7 – 8 ноября
Конференция byteoilgas_conf 2024
МоскваОнлайн
7 – 8 ноября
Конференция «Матемаркетинг»
МоскваОнлайн
15 – 16 ноября
IT-конференция Merge Skolkovo
Москва
25 – 26 апреля
IT-конференция Merge Tatarstan 2025
Казань

PowerShell, HTML Agility Pack: связь с исходным HTML-файлом при его анализе

Время на прочтение4 мин
Количество просмотров972

В скрипте для программы-оболочки «Windows PowerShell» версии 5.1 (или «PowerShell» версии 7) в операционной системе «Windows 10» я получаю текст из файла с кодом на языке HTML для дальнейшего анализа. С помощью библиотеки «HTML Agility Pack» превращаю этот текст в объект $dom, содержащий HTML-дерево, представляющее исходный файл.

Как при анализе объекта с HTML-деревом получить сведения о местонахождении определенного узла HTML-дерева в исходном файле (номер строки, номер позиции в строке), чтобы вывести сообщение об ошибке? Оказывается, библиотека «HTML Agility Pack» обеспечивает такую возможность.

Читать далее
Всего голосов 6: ↑6 и ↓0+6
Комментарии2

PowerShell: обход и визуализация HTML-дерева из файла

Время на прочтение8 мин
Количество просмотров4.5K

Вывод HTML-дерева из локального файла в окно программы-оболочки «Windows PowerShell» версии 5.1 (или в окно программы-оболочки «PowerShell» версии 7) с помощью скрипта на языке PowerShell в операционной системе «Windows 10». Используется библиотека «HTML Agility Pack».

В качестве упражнения в алгоритмах и структурах данных рассмотрено несколько способов обхода и вывода HTML-дерева: NLR (прямой с приоритетом обхода потомков слева направо), NRL (прямой с приоритетом обхода потомков справа налево), LRN (обратный). Примеры практической реализации.

Читать далее
Всего голосов 2: ↑2 и ↓0+2
Комментарии14

PowerShell: HTML Agility Pack и AngleSharp

Время на прочтение6 мин
Количество просмотров3.3K

Как получить и использовать библиотеки «HTML Agility Pack» и «AngleSharp» для создания простого парсера HTML в скрипте для программ-оболочек «Windows PowerShell» версии 5.1 и «PowerShell» версии 7 в операционной системе «Windows 10». Приведен простой пример кода для обеих библиотек.

Читать далее
Всего голосов 4: ↑2 и ↓20
Комментарии6

Использование цвета в терминале

Время на прочтение7 мин
Количество просмотров8.1K

Я пишу небольшие скрипты для работы в программах-оболочках «Windows PowerShell» версии 5.1 и «PowerShell» версии 7 в операционной системе «Windows 10». Иногда тянет подсветить текстовый вывод в консоль разными цветами. В этой статье я хочу рассказать о паре грабель, на которые можно при этом наступить.

Читать далее
Всего голосов 12: ↑12 и ↓0+12
Комментарии5

SQL Server & Powershell: быстро, просто, параллельно. И больше не нужно выбирать 2 из 3-х

Время на прочтение11 мин
Количество просмотров8.4K

В настоящей статье описывается процесс параллельного выполнения операций над объектами базы данных Microsoft SQL Server (таблицы, индексы и т.д.) с использованием инструментария Powershell. Наиболее часто используемый сценарий - обслуживание таблиц в базе, но возможно исполнение любых ваших запросов в параллельном режиме. Если для вас это интересно, то...

...добро пожаловать
Всего голосов 4: ↑4 и ↓0+4
Комментарии2

PowerShell: парсер HTML, устаревшие методы

Время на прочтение5 мин
Количество просмотров6.4K

Обзор двух устаревших методов преобразования кода на языке HTML в объект (HTML-парсер) на скриптовом языке PowerShell в операционной системе Windows 10.

Читать далее
Всего голосов 2: ↑2 и ↓0+2
Комментарии5

Out-GridView with Custom Columns

Время на прочтение3 мин
Количество просмотров1.5K

Командлет Out-GridView можно использовать как универсальный диалоговый интерфейс, для этого предназначены параметры -OutputMode и -PassThru. С ними окно табличного представления (грид) отображает справа внизу дополнительные кнопки, и вы можете передать следующим командлетам выбранные строки.

Читать далее
Всего голосов 3: ↑3 и ↓0+3
Комментарии0