Как стать автором
Поиск
Написать публикацию
Обновить
1.38

PowerShell *

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

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

Auto Provisioning клиента «MicroSip» скриптом на Power Shell

Уровень сложностиПростой
Время на прочтение4 мин
Количество просмотров2.8K

Вдохновившись постом @StuxForce решил написать упрощенный вариант автоматической установки и конфигурирования клиента MicroSIp на компьютеры доменной сети. Получился вполне рабочий вариант, который легко можно настроить под свою компанию.

Читать далее

Скрипт для настройки VPN на Power Shell

Уровень сложностиПростой
Время на прочтение3 мин
Количество просмотров18K

Дистанционная работа в компаниях все больше становится распространённой в последнее время. Системным администраторам нужно организовывать на домашних компьютерах пользователей подключение по VPN к сети компании. Время настройки занимает от 10 минут и это если все пойдет гладко, пользователь сообразит как скачать Any Desk или какой другой клиент для удаленного подключения, потом факт стабильного интернета играет роль, ну и конечно же настройка самого VPN подключения — вбиваем адрес, метод шифрования, логин, пароль, ключ.

А если пользователей 10 и более? Это уже нужно потратить больше времени, а если им всем нужно утром срочно все настроить? Тут немного подумав, я решил написать достаточно простой, но в то же время полезный скрипт на Power Shell а потом упаковал его в файлик .exe.

Читать далее

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

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

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

Читать далее

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

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

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

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

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

Читать далее

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

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

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

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

Читать далее

Port Knocking для Windows

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

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

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

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

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

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

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

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

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

Читать далее

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

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

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

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

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

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

Читать далее

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

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

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

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

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

Читать далее

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

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

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

Читать далее

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

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

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

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

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

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

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

Читать далее

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

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

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

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

Читать далее

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

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

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

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

Читать далее

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

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

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

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

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

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

Читать далее

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

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

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

Читать далее

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

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

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

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

Читать далее

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

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

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

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

Читать далее

PowerShell: HTML Agility Pack и AngleSharp

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

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

Читать далее

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

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

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

Читать далее

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

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

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

...добро пожаловать