Главная


Showing posts with label script. Show all posts
Showing posts with label script. Show all posts

Sunday, 5 April 2026

Проблема з наголосами в TTS

Всім привіт.

Відома проблема з наголосами в українській мові - це «класика» для нейромереж, особливо тих, що базуються на ElevenLabs або закордонних моделях. Вони часто плутають українські наголоси з російськими або просто ставлять їх випадково.

Наприклад щоб моя віртуальна Мавка заговорила правильно, нам потрібно застосувати метод «фонетичного підказування».

Ось три секретних способи, як змусити ШІ ставити наголоси вірно:

1. Метод Великої Літери (найкращий для ElevenLabs/Flow)

ШІ сприймає велику літеру всередині слова як сигнал до наголосу.

Замість: Львові — пиши: ЛьвОві

Замість: справжні — пиши: спрАвжні

2. Метод подвійних голосних

Якщо велика літера не допомагає, можна подвоїти наголошену голосну.

Наприклад: спрААвжні, ЛьвООві.

3. Фонетичне написання

Іноді слова треба писати так, як вони чуються, а не як пишуться.

Наприклад: «15 століття» краще написати словами: «п'ятнАдцятого столІття».

🎤 Підсумковий голосовий скрипт (Full Script) для Мавки з розставленими наголосами:

"ДрУзі, я реАльно у ЛьвОві... Але зАраз тИсяча чотириста двадцятий рік! Ви тІльки глЯньте на ці стіни, вони спрАвжні! Тут пАхне багАттям, свІжим хлІбом і кОнями. Все тАке шУмне й живЕ, я нІби всередИні фІльму! ДивІться! ЗАраз почнЕться лИцарський турнІр. Я стоЮ прЯмо бІля огорОжі, це прОсто неймовІрно! Ой! Спис прОсто вибУхнув на шматОчки! Це булО занАдто блИзько, мені лЕдь по головІ не прилетІло! Львів п'ятнАдцятого столІття... це булО шАлено. ПорА повертАтися домОю, покИ мене не прийнялІ за вІдьму."


Додаткові поради для Flow:

Розділові знаки: Став більше ком (,) та крапок (...) там, де Мавка має зробити вдих. Це дає моделі час «подумати» над наступним словом.

Спробуй Dash (-): Якщо слово «Львові» все одно не виходить, напиши: ЛьвО-ві. Дефіс змушує ШІ розділити слово на склади і краще акцентувати наголос.

Stability (Стабільність): Якщо наголоси «пливуть», підніми Stability до 75-80%. Це зробить голос менш емоційним, але набагато точнішим у вимові.

Спробуй цей варіант з ВЕЛИКИМИ літерами - зазвичай це вирішує проблему на 90%! 🚀🇺🇦🌆

Thursday, 25 December 2025

Ставимо драйвера пакетом #2.

Привіт привіт.

Вчора мав нагоду ще раз скористатися пакетним інсталером драйверів. Але мені, чесно, не вистачило комфорту, а саме таймера виконання. Тому сьогодні буде друга розширена версія.

І зробимо це акуратно, перепишемо скрипт повністю але вже з урахуванням стандартного повзунка (Write-Progress).

Перед самим кодом коротке пояснення логіки - ми спочатку збираємо всі INF, щоб знати загальну кількість, далі йдемо по них циклом і після кожного кроку перемальовуємо прогрес. Інакше відсоток порахувати неможливо - це фундаментальне обмеження pnputil.

І щоб було зрозуміло, що саме ми вважаємо “інстальовано”, pnputil у нормальному режимі повертає текстовий результат, з якого можна визначити:

  • драйвер додано та встановлено;
  • драйвер вже був у Driver Store;
  • або сталася помилка.

Ми не будемо парсити все до символа (це ненадійно між версіями Windows), а використаємо практичний і стабільний підхід:

  • якщо pnputil повернув ExitCode = 0 → вважаємо драйвер успішно обробленим;
  • зберігаємо шлях до INF у список;
  • наприкінці показуємо зведення.

Маємо інженерно прийнятний компроміс між точністю і стабільністю.

Monday, 1 December 2025

Pixel AI Photomaker для всіх.

Всім  Привіт!

Знаєш це відчуття, коли хочеш просто зробити прикольну аватарку або жартівливе фото, а тобі пропонують:

  • Подивитися 5 рекламних роликів.
  • Зареєструватися через пошту прабабусі.
  • Розібратися в налаштуваннях, які виглядають як панель керування шатлом.

Мене це, чесно кажучи, дістало. Я подумав: «Чому не можна просто натиснути кнопку і отримати результат?». І оскільки я програміст, хоча і в минулому, я вирішив не скаржитися в коментарях, а зробити власний веб-застосунок. Для себе. І, звісно ж, для тебе.

І ну його, щоб чекати до Нового року.)

Pixel AI Photomaker - що це таке і чому тобі варто спробувати?

Це максимально простий інструмент для заміни обличчя та зміни стилю фото. Я прибрав усе зайве. Тут немає складних меню чи платних підписок, захованих дрібним шрифтом.

Моя філософія проста: технології мають бути доступними абсолютно для всіх. Неважливо, чи ти школяр, SMM-ник, чи просто хочеш надіслати веселу листівку в родинний чат - ти розберешся за 5 секунд.

🔥 ВЕЛИКЕ ОНОВЛЕННЯ: Стилі, які ти полюбиш

Останніми вечорами я працював над тим, щоб додати у додаток "характеру". Я не хотів, щоб це була просто чергова "мінялка облич". Я хотів, щоб ти міг передати настрій.

Friday, 24 October 2025

Промпт-інжиніринг з Pixel AI Studio.

Привіт привіт.

Існує одна з ключових технік у просунутому промпт-інжинірингу щодо Google Gemini.

Однак, спосіб, у який це робиться, сильно залежить від конкретної моделі ШІ. У деяких системах, як-от Stable Diffusion (через GUI типу Automatic1111), існують спеціальні синтаксиси, наприклад, дужки () для збільшення ваги та квадратні дужки [] для її зменшення, або навіть числові коефіцієнти (token:1.5).

У Pixel AI Studio, яке працює на моделях Google Gemini, немає такого жорсткого синтаксису з дужками та цифрами. Gemini краще реагує на природну мову та структуру речення. Проте, ви можете дуже ефективно керувати "вагою" або "увагою" моделі до певних токенів, використовуючи наступні методи:

Найефективніші способи "підняти вагу" токена в Gemini:

1. Позиціонування та Повторення (Найпотужніший метод)

Слова на початку промпту мають значно більший вплив на кінцевий результат, ніж слова в кінці. Якщо ви хочете, щоб модель зосередилася на чомусь, поставте це на перше місце. Повторення ключового слова або фрази також сильно підсилює її значення.

Приклад:

Ви хочете отримати зображення велетенського червоного дракона, що летить над замком, але модель постійно малює замок більшим за дракона.

Слабкий промпт: A castle on a mountain with a red dragon flying around it.

(Тут "замок" стоїть першим, тому модель може надати йому пріоритет).

Сильний промпт: A giant, majestic red dragon. The massive red dragon is the main subject. It is flying high above a tiny castle in the background. Photorealistic, cinematic lighting.

(Тут ми тричі наголосили на "червоному драконі", поставили його на перше місце і навіть прямо вказали, що він є "головним об'єктом", а замок — "крихітний" і "на задньому плані").

Tuesday, 30 September 2025

WMI Code Creator manuals

Hi all,

WMI Code Creator has an excellent manual covering four cases. I offer them to you below.

Browsing the Namespaces on the Local Computer

Each class in WMI is in a namespace, with each namespace holding similar classes.  For example, the root\CIMV2 namespace contains classes that hold information about the Windows platform and your computer components. Each WMI class can have properties, methods, and qualifiers. A qualifier is a modifier that contains information that describes a class, instance, property, method, or parameter. Qualifiers are defined by the Common Information Model (CIM), by the CIM Object Manager, and by developers who create new classes.

The following steps describe how to use the WMI Code Creator to browse the namespaces on a local computer:

1. Select a namespace.  Each namespace holds classes that expose different data. The most commonly used namespace is root\CIMV2.

2. Select a class from the namespace.  The class list is populated with all the classes from the selected namespace. If the selected class has a Description qualifier, then the value of that qualifier is displayed in the Class Description text box.

3. Click the List all the properties in the class button to populate the property list with all the properties from the selected class.  When you select a property in the property list, the property description is displayed. The property description comes from the value of the Description qualifier for the selected property.

4. Click the List all the methods in the class button to populate the method list with all the methods from the selected class. When you select a method in the method list, the method description is displayed.  The method description comes from the value of the Description qualifier for the selected method.

5. Click the List all the qualifiers for the class button to populate the qualifier list will all the qualifiers from the selected class.

Wednesday, 24 September 2025

About WMI Code Creator.

Hi all.

WMI Code Creator is a magic wand for system administrators. But what's interesting is that the name is 100% accurate. It's also true that half of system administrators have never heard of this wonderful tool, and the other half who have heard of it don't use it yet.

WMI Code Creator is a tiny (300KB) Microsoft tool available here. To demonstrate its features, the code snippet below is for querying a machine’s model and gives us enough info to start using the tool.

strComputer = "."

Set WshShell = WScript.CreateObject("WScript.Shell")

strQuery="SELECT * from Win32_ComputerSystem"

Set col=GetObject("WinMgmts://" & strComputer & "/root/cimv2").ExecQuery(strQuery)

For Each WMIProperty in col

PCModel = WMIProperty.Model

First, I need to select the CIMV2 namespace and then find the win32_computersystem class in the class drop-down box. Without reference to a huge book or the internet, you would struggle to discover the properties in the class without perhaps writing a script. Code creator makes this trivial, with the click of a single button which lists all properties. The model is just one property of many, as you can see in figure below:


Friday, 2 May 2025

Реактивація Windows без KMS Auto.

Привіт привіт.

Вчора виявилося що з минулої роботи один з моїх домашніх ПК Windows 10 має версію Enterprise. На щастя, з отриманої інформації з мережі було зроблено висновок що перехід (downgrade) на ліцензію  Pro можливий БЕЗ переінсталяції самої Windows (хто ж так не хоче). Але є нюанси.

Для попереднього аудиту технічної можливості такого переходу був написаний скрипт Powershell який і виконує всі необхідні перевірки:

# 1. Яка поточна редакція Windows

Write-Host "=== Поточна редакція Windows ===" -ForegroundColor Cyan

$edition = (Get-ItemProperty "HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion").EditionID

Write-Host "EditionID: $edition"


# 2. Активаційна інформація через WMI

Write-Host "`n=== Інформація про активацію (WMI) ===" -ForegroundColor Cyan

$products = Get-CimInstance -Query "SELECT * FROM SoftwareLicensingProduct WHERE PartialProductKey IS NOT NULL"

$activeProduct = $products | Where-Object { $_.LicenseStatus -eq 1 }

if ($activeProduct) {

    Write-Host "✅ Активація успішна для продукту:" -ForegroundColor Green

    Write-Host "Name: $($activeProduct.Name)"

    Write-Host "Description: $($activeProduct.Description)"

    Write-Host "Partial Product Key: $($activeProduct.PartialProductKey)"


    if ($activeProduct.Description -match "KMS") {

        Write-Host "‼️ Ключ KMS активовано — перехід на Pro може вимагати видалення KMS-ключа." -ForegroundColor Yellow

    } elseif ($activeProduct.Description -match "Retail") {

        Write-Host "🔹 Ліцензія Retail — проблем бути не повинно." -ForegroundColor Green

    } elseif ($activeProduct.Description -match "OEM") {

        Write-Host "🔹 OEM-ліцензія — проблем бути не повинно." -ForegroundColor Green

    } else {

        Write-Host "ℹ️ Увага - Тип ліцензії не визначено точно. Опис: $($activeProduct.Description)"

    }

} else {

    Write-Host "❌ Активація не знайдена або система не активована." -ForegroundColor Red

}

Friday, 1 November 2024

Управляем принтерами из командной строки.

Всем привет.

Мы уже знаем что с помощью PowerShell можно автоматизировать типовые задачи управления принтерами и драйверами печати в Windows. Также одним из широко известных способов управления принтерами в системах Windows различных версий является хост-процесс rundll32.exe, которому передается имя библиотеки printui.dll и точка входа в нее (PrintUIEntry). А чуть ниже будет дан еще один штатный, уже третий, способ управления принтерами - с помощью  vbs-скриптов.

Итак использование rundll32 printui.dll,PrintUIEntry (чтобы получить все эти параметры, нужно вызвать с ключом   /? окно в котором отобразится полный список с примерами): 

rundll32 printui.dll,PrintUIEntry [параметры] [@командный файл]

/a[имя_файл] имя двоичного файла

/b[имя] основное имя принтера

/c [имя] UNC-имя компьютера, где выполняется команда

/dl удаление локального принтера

/dn удаление подключения к сетевому принтеру

/dd удаление драйвера принтера

/e вывод параметров настройки печати

/f[file] или информационный файл, или выходной файл

/F[file] размещение INF-файла, от которого может зависеть INF-файл, указанный в параметре /f

/ga добавление подключений компьютеров к принтеру (подключение распространяется на компьютер пользователя в момент входа в систему)

/ge перечисление подключений компьютеров к принтеру

/gd удаление подключений компьютеров к принтеру (подключение удаляется в момент входа пользователя в систему)

/h[arch] архитектура драйвера, принимает значения: x86, x64 или Itanium

/ia установка драйвера принтера с помощью информационного файла

/id установка драйвера принтера с помощью мастера установки драйверов принтеров

/if установка принтера с помощью информационного файла

/ii установка принтера с помощью мастера установки принтеров и информационного файла

/il установка принтера с помощью мастера установки принтеров

/in добавление подключения к принтеру

/ip установить принтер с помощью мастера установки сетевых принтеров

/j[provider] имя системы печати

/k печать пробной страницы на выбранном принтере, не может использоваться с другими командами установки принтера

/l[path] путь к исходному размещению драйвера принтера

/m[model] имя модели драйвера принтера

/n[name] имя принтера

/o показать очередь заданий на печать

/p отображение свойств принтера

/q тихий режим без вывода сообщений об ошибках

/r[port] имя порта

/s показать свойства сервера

/Ss запись параметров принтера в файл

/Sr чтение параметров принтера из файла

Tuesday, 1 October 2024

Запуск PowerShell из Python.

Всем привет.

Рассмотрим простой метод интеграции Python и PowerShell.

Самое простое выглядит так что если бы мы смогли исполнять CmdLet PowerShell из Python и перехватывать результаты. Так как PowerShell является неким исполняемым процессом, тем самым мы можем применять стандартную библиотеку Python, предоставляющую возможность запуска поцессов. Это делается с применением стандартной библиотеки subprocess. В Python для применения любой стандартной или сторонней библиотеки вам следует импортировать её. В данном случае это просто:

import subprocess 

Это предоставляет доступ к методам и свойствам, содержащимся в данной библиотеке subprocess. Доступно монжество вариантов - наиболее популярным является применение метода check.output, который исполняет предписанный процесс и возвращает полученный результат. Вот некий пример:

runningProcesses = subprocess.check_output("powershell -Executionpolicy ByPass -Command Get-Process") 

Существует также аналог асинхронного варианта вызова подчинённого процесса, вызов метода await asyncio.create_subprocess_shell()), подробнее в книгах Asyncio в Python 3 Цалеба Хаттингха и Полном руководстве параллельного программирования на Python Куан Нгуена:

import asyncio

async def run(cmd):

    proc = await asyncio.create_subprocess_shell(cmd, stdout=asyncio.subprocess.PIPE,      stderr=asyncio.subprocess.PIPE

    )

    stdout, stderr = await proc.communicate()

    print(f'[{cmd!r} exited with {proc.returncode}]')

    if stdout:

        print(f'[stdout]\n{stdout.decode()}')

    if stderr:

        print(f'[stderr]\n{stderr.decode()}')

asyncio.run(run('powershell -Executionpolicy ByPass -Command Get-Process'))

Tuesday, 14 May 2024

Секрети активації Windows.

Всім привіт.

Активація Windows розроблена так, щоб бути максимально надійною, тому графічні засоби Microsoft залишаються простими. Якщо ви хочете зробити щось більш просунуте, як видалити ключ продукту, примусово активувати онлайн або розширити таймер активації, вам знадобиться скрипт Slmgr.vbs.

Цей інструмент командного рядка входить до складу Windows і надає опції, недоступні в стандартному інтерфейсі активації, наданому на екрані оновлення та безпеки> Активація в програмі "Налаштування".

Щоб використовувати цей інструмент, потрібно запустити командний рядок з доступом адміністратора. Для цього у Windows 8 або 10 натисніть правою кнопкою миші кнопку Пуск або натисніть Windows + X. Натисніть кнопку "Командний рядок (адміністратор)" у меню, що з'явиться. У Windows 7 виконайте пошук у меню "Пуск" для "Командного рядка", клацніть правою кнопкою миші та виберіть "Запуск від імені адміністратора".

Примітка: Якщо ви побачите PowerShell замість командного рядка в меню Power Users, це перемикач, який виникла за допомогою засобу оновлення Creators Update для Windows 10. Перейти до відображення командного рядка в меню Power Users дуже просто. Ви можете дати PowerShell спробу. У PowerShell можна робити все, що можна робити в командному рядку, а також багато інших корисних речей.


Перегляд інформації про активацію, ліцензію та дату закінчення

Щоб відобразити дуже просту ліцензію та інформацію про активацію поточної системи, виконайте таку команду. Ця команда розповість вам про випуск Windows, частину ключа продукту, щоб ви могли його ідентифікувати, і чи активована система.

slmgr.vbs / dli

Щоб відобразити більш детальну інформацію про ліцензію, включаючи ідентифікатор активації, ідентифікатор установки та інші деталі, виконайте таку команду:

slmgr.vbs / dlv

Tuesday, 19 September 2023

Анимация в Automatic1111.

Всем привет.

Учитывая популярность Automatic1111 по генерации не только картинок, но и анимации, особенно Shorts, я решил сделать справку по инструментам которые позволяют создать анимацию (короткое видео) в первом приближении не выходя из А1111.

Отдельно замечу что во всех случаях следует также использовать мега-расширеие ControlNet (OpenPose, Canny, Depth, Tile, TemporalNet на выбор) для стилизации будущего видео в одном ключе.

Ок, для генерации анимации в Automatic1111 можно использовать скрипты (Scripts):

1) Loopback Wave V1.4.1:

подготовка секвенции и ключевых кадров из начального кадра(опорного кадра) для последующей сборки в ffmpeg. Промпт можно изменять между кадрами. Сборку финального видео лучше проводить вручную.

2) (Beta) Multi-frame Video rendering - V0.72:

подготовка секвенции и ключевых кадров из исходной секвенции(опорной секвенции) для последующей сборки в ffmpeg. Промпт один для всех кадров.

Также для генерации анимации в Automatic1111 можно использовать расширения (Extensions):

3) SD-CN-Animation:

подготовка секвенции и ключевых кадров из начального кадра(опорного кадра) для последующей сборки в ffmpeg. Промпт можно изменять между кадрами. Но мне не понравилось качество генерации кадров.

4) AnimateDiff:

подготовка секвенции и ключевых кадров из начального кадра(опорного кадра) для последующей сборки GIF. Не оцениваю так как не пробовал.

5) TemporalKit:

подготовка секвенции и ключевых кадров из исходного видео для последующей сборки в EBSynth утилите. Увы, в Automatic1111 версии 1.6.0 не работает, вернее работает но без ключей.

6) EBSynth:

подготовка секвенции и ключевых кадров из исходного видео для последующей сборки в EBSynth утилите. Может работать с маской. В принципе расширение больше похоже на органайзер где больше указано что следует сделать вручную на той или иной стадии процесса, всего из 8, и только три из них автоматизированы.

7) Deforum:

подготовка секвенции и ключевых кадров из исходного видео (или опорного кадра) для последующей сборки. Промпт можно изменять между кадрами. Можно использовать выборку опорных кадров. Можно менять тучу настроек влияющих на процесс.Все логично в нем хотя и сложно на первый взгляд. Работает по принципу "запустил и забыл". Заслуживает отдельного поста. Надеюсь что проект не закинут.

На сегодня все, удачи всем.




Tuesday, 15 August 2023

Hello Barbie.

Всем привет.

Любители Stable Diffusion быстро сообразили что там где возможна генерация картинок там возможна и  генерация видео. Точнее сказать, анимации.

В принципе Stable Diffusion для анимации не предназначен, но почему бы не сгенерить последовательность похожих кадров (секвенцию), а после склеить их в видеофайл. Логично предположить что чем больше кадры будут похожи друг на друга тем плавнее получится итоговое видео из них.

Из Stable Diffusion расширений которые предназначены для создания анимации мне знакомы несколько: Deforum, SD-CN-Animation и Loopback wave script. Первый довольно новороченый поэтому про него речь поведу в следующий раз. А вот про два других могу сказать пару слов сегодня.

Скажу сразу что от SD-CN-Animation я отказался. В нем по непонятным для меня причинам все оказалось плохо - он конфликтует с ROOP, он умудряется генерить очень плохие картинки на тех же промптах что и другие скрипты. Поэтому я его исключил из дальнейшего обращения  Stable Diffusion. А вот Loopback wave script меня порадовал своей простотой и адекватностью.

Живет он здесь, там же страничка как им пользоваться. Все что касается ffmpeg относится к финальной стадии сборки всех кадров в один видеофайл. Ffmpeg надо будет поставить отдельно. Хотя я вам покажу ниже как его можно использовать самостоятельно и с лучшим качеством.

Итак главное это количество фреймов, чем их больше тем дольше Stable Diffusion в лице А1111 будет трудиться над их созданием. И ...все), шучу - еще надо вписать промпт где первая цифра значит с какого кадра он действует для Stable Diffusion. "Save results as Video" это значит что после генерации А1111 передаст внешнюю команду для ffmpeg на сборку видео с выбраным кодеком.


Wednesday, 1 February 2023

Профиль пользователя в AD.

Всем привет.

Есть много способов замапить внешний диск пользователю при его входе в ПК. Например с помощью login VB-скрипта, или команды net use, или GPO. 

Но есть более изящный способ. Можно указать его в профиле пользователя в AD, как показано ниже:


Это все на сегодня.)

Friday, 16 December 2022

NMAP как сканер уязвимостей.


Всем привет.

До сих пор вы знали возможности NMAP по сканированию и перечислению портов. Теперь вы увидите, как NMAP можно использовать для оценки уязвимости. Несмотря на то, что NMAP не такой всеобъемлющий, как сканеры уязвимостей, такие как Nessus и OpenVAS, он, безусловно, может обнаруживать основные уязвимости. NMAP делает это с помощью идентификаторов Common Vulnerabilities and Exposure (CVE). Он ищет подходящие CVE для служб, работающих на цели. Чтобы превратить NMAP в сканер уязвимостей, сначала необходимо загрузить и установить несколько дополнительных сценариев. 

Сначала вы переходите в каталог /usr/share/nmap/scripts, а затем клонируете две директории git:

cd /usr/share/nmap/scripts

git clone https://github.com/vulnersCom/nmap-vulners.git

git clone https://github.com/scipag/vulscan scipag_vulscan

ln -s pwd/scipag_vulscan /usr/share/nmap/scripts/vulscan

После можно скопировать vulscan.nse в /usr/share/nmap/scripts:

cp vulscan.nse /usr/share/nmap/scripts

После того, как вы загрузили необходимые сценарии, у вас все готово для их выполнения в отношении цели. Вы можете использовать команду: 

nmap -sV --script=vulscan.nse 192.168.1.3

для проведения первого сканирования.

На этом все.

Sunday, 4 September 2022

BGinfo и Powershell.

Всем привет.

BGInfo - это маленькая утилита входящая в состав всем известного пакета Sysinternals от Марка Русиновича. В ее задачи входит отображение на рабочем столе некой полезной системной информации. 

В качестве дополнительной опции она может черпать информацию из внутренних WMI-запросов и внешних VB-скриптов. Однако автор уилиты здесь незаслуженно обошел Powershell. Поэтому я сегодня вам покажу как это исправить. 

Логика моего решения проста - запустим Powershell из VBScript. В шаблоне BGInfo указываем вызов VB-скрипта, например файл 11.vbs, в котором и вызываем Powershell:


On Error Resume Next

Set objShell = CreateObject("Wscript.Shell")

Status = objShell.Exec("powershell.exe -ExecutionPolicy Bypass –Noprofile -Windowstyle Hidden -File test.ps1").StdOut.ReadAll()

Echo Status

Не забываем прочитать результат Powershell через ReadAll(), и передать его через эхо в саму BGInfo.

А вот скрипт Powershell test.ps1 должен возвращать максимально простой однострочный ответ, например такой:
$PSVersionTable.PSVersion.Major

Это все. Работает на ура. Кстати убирайте в Path все кроме имени вызываемого vbs-файла, так проще запускать утилиту с нового места, не надо будет каждый раз перестраивать шаблон.

Удачи.

Wednesday, 24 August 2022

Output data by Poweshell Studio in runtime.

Hi all.

If you newbee coder in Poweshell Studio you need simple method for output debug information in runtime. So I can present some variants for you.


1. You can easy test your form by sending output to Out-String and then Write-Host. For

example, in your form you could end up with a line like this:

<code to get data> | Out-String | Write-Host


2. So the next it's very popular method for output data in WinForms. It's Out-GridView, I wrote about it super commandlet early:

$entries = Get-EventLog -Computer $ComputerName.Text -Log $EventLogName.SelectedItem

$entries | Out-GridView


3. If you don’t want to create additional forms, there are several controls you can use within the form itself to display your results. You can use a Label control for a simple one-line result. Just set the Text property:

$labelDeviceID.Text=$data.deviceID

$labelFreespace.Text=$data.FreeGB

$labelSize.Text=$data.SizeGB

$labelVolume.Text=$data.Volumename

Sure, don't forget to set property $label.Visible = False for finishing, or remove all debug's labels from your Form before Build.


4. You could use a RichTextBox control. This control has some interesting visual properties you can experiment with. If you use this control, set the font to a fixed-width font like Consolas, especially if you want to display PowerShell output. Both of these controls expect strings, so you might need to reformat any PowerShell output by piping it to Out-String:

#clear any existing text box values

$RichTextBoxResults.Clear()

$data=<my command>

$RichTextBoxResults.Text=$data | Out-String


5. And the last option, although the most complicated of the bunch, is a DataGridView control. This is like what you get when you pipe results to Out-Gridview, except the table is in your form. You put data in the control via its DataSource property, which is an array of binding values. Fortunately, PowerShell Studio has a helper function called Update-DataGridView that makes it easier to populate it. Here’s a code snippet of what that might look like:

#clear the grid before

$datagridview1.ClearSelection()

#get data

$data=Get-WmiObject Win32_LogicalDisk -Filter "drivetype=3" -ComputerName $Computername.Text | Select "DeviceID",@{Name="SizeGB";Expression={"{0:N2}" -f ($_.Size/

1GB)}}, @{Name="FreeGB";Expression={"{0:N2}" -f ($_.Freespace/1GB)}},"VolumeName"

#add the data to the control

Update-DataGridView -DataGridView $datagridview1 -Item $data


See you later.

Wednesday, 20 July 2022

Возможности сценариев командной строки #2.


Всем привет.

Сегодня вторая часть шпаргалки по возможностям сценариев командной строки.

Использование переменных среды.

В пакетных файлах можно использовать своеобразные переменные, которые задаются в виде ключ=значение. В дальнейшем при обработке команд каждое вхождение подстроки %ключ% заменяется на значение.

Переменные среды бывают трех видов:

- глобальные переменные устанавливаются в свойствах операционной системы или специальной внешней утилитой setx и доступны с одними и теми же значениями при запуске всех пакетных файлов.

- локальные переменные устанавливаются и используются по-своему в каждом отдельном сценарии, сохраняются только во время его выполнения, а также передаются в дочерние сценарии при вложенных вызовах.

- псевдопеременные, такие как %CD%, %DATE%, %TIME%, %RANDOM%, %ERRORLEVEL%, обрабатываются особенным образом в зависимости от определенных условий.

В следующей таблице приведен выборочный список наиболее интересных переменных среды.


При использовании переменных можно также использовать выделение подстрок.

Для установки значений переменных используется команда set.

Sunday, 17 July 2022

Возможности сценариев командной строки #1.


Всем привет.

Сегодня шпаргалка про полезные возможности сценариев командной строки, которые можно использовать в командных файлах (*.bat;*.cmd aka батники) операционных систем Windows. Несмотря на популяризацию Powershell батники в наше время еще используются не менее широко.

В последних версиях систем Windows введены существенные расширения возможностей сценариев командной строки, которые позволяют делать, например, следующие вещи:

• определение для файла полного и короткого пути к нему, имени, расширения, размера, времени модификации

• выборочная итерация по файлам и каталогам с применением различных команд

• расширенное перенаправление потоков ввода/вывода

• использование переменных, вычисление арифметических выражений, манипуляции со подстроками

• расширенная обработка условий

• многое другое.

Более подробную помощь нежели в данном обзоре можно найти в стандартной справке в каталоге Windows. Типичный путь к файлу справки: C:\WINDOWS\Help\ntcmds.chm. Если Windows установлена в каталог, отличный от C:\WINDOWS, то ссылки на справку из данной страницы работать не будут. Потребуется открыть справку самостоятельно. В частности, крайне полезно почитать следующие разделы: Общие сведения о командной оболочке, Использование пакетных файлов.

Справку по конкретной команде также всегда можно получить набрав в командной строке "<имя_команды> /?". Например, очень познавательно почитать то, что выдается в результате команд set /?, call /?, for /?, if /?. Помощь приводится на языке установленной операционной системы.

Вывод

Вывод на консоль осуществляется с помощью команды echo. Например, "echo Здравствуй, читатель". При использовании в командных файлы команды echo on и echo off позволяют включать и выключать режим вывода на экран самих исполняемых команд. Если поставить перед командой знак @, то она на экране не будет выведена в любом случае. Будет видет только результат ее исполнения.

Например, "@echo no echo". Команда "echo." позволяет вывести пустую строку.

Saturday, 29 January 2022

Активация лицензионной Windows.


Всем привет.

Лицензия на ОС Windows 10 - это последовательность состоящая из чисел и букв. Виды лицензий бывают разные:

  • ESD (Electronic Software Distribution) – электронная версия – приобретение лицензионного ключа в интернет-магазине и скачивание образа с официального сайта.
  • FPP (Full Packaged Product) или Retail – коробочная версия – это установочная флешка системы и наклейкой с кодом доступа, которая приобретается в розничном магазине. Лицензии не именные, перенос лицензии на другой компьютер разрешен. Для подтверждения лицензии необходимо хранить коробку.
  • OEM (Original Equipment Manufacturer) – лицензионный ключ идет в комплекте с компьютером (уже «вшит» в материнскую плату) и присвоить его другому компьютеру нельзя, а также нельзя повысить редакцию операционной системы. Лицензии не именные, их можно передавать другой организации или частному лицу вместе с оборудованием.
  • Корпоративная – предоставляется только юридическим лицам. Лицензии привязываются к имени покупателя и принадлежат только ему без права передачи другим лицам. Один ключ может быть использован на множестве компьютеров. Тут имеются еще программы лицензирования Open Value, Open Value Subscription, Open License, Enterprise Agreement, Enterprise Agreement Subscription.
  • GGK (Get Genuine Kit) и GGWA (Get Genuine Windows Agreement) – используются для лицензирования существующих нелицензионных ОС.
  • Evaluation – пробная лицензия, выданная бесплатно на определенный срок.
  • Upgrade – задействуется, когда нужно обновить уже имеющуюся операционную систему до последней версии, например, Windows 7 до Windows 10.
  • Подписка VDA (Virtual Desktop Access) – лицензия выдается на пользователя или на устройство для подключения к виртуальным экземплярам Windows предприятия.

Если у вас честно купленная Windows то проще всего выполнить активацию лицензии вручную. Если возникнет необходимость посмотреть/предоставить ключ OEM, то можно в CMD выполнить команду:

wmic path softwarelicensingservice get OA3xOriginalProductKey

или в PowerShell:

(Get-WmiObject -query "SELECT * FROM SoftwareLicensingService").OA3xOriginalProductKey

Tuesday, 18 January 2022

Фреймворки Scapy, Scrapli и Scrapy.


Всем привет.

Однажды мне удалось перепутать фреймворк Scapy со Scrapli. Оказалось этого мало - ведь есть еще один фреймворк под именем Scrapy. Что было с фантазией авторов на имена, но все фреймворки существуют по сей день, и служат совершенно разным целям. Поэтому пройдемся кавалерийским шагом по каждому.

Фреймворк Scapy.

Scapy является мощной программой интерактивной манипуляции пакетами на основе Python. Я на это ней уже пару раз останавливался.

Фреймворк Scrapli.

Scrapli это модуль, который позволяет подключаться к сетевому оборудованию используя Telnet, SSH или NETCONF. Также как и netmiko, Scrapli может использовать paramiko или telnetlib (и другие модули) для самого подключения, но при этом предоставляет одинаковый интерфейс работы для разных типов подключения и разного оборудования.

Установка scrapli:

pip install scrapli

Три основные составляющие части Scrapli:

• transport - это конкретный способ подключения к оборудованию

• channel - следующий уровень над транспортом, который отвечает за отправку команд, получение вывода и другими взаимодействиями с оборудованием

• driver - это интерфейс, который предоставляется пользователю для работы со scrapli.

Тут есть как специфические драйверы типа IOSXEDriver, который понимает как взаимодействовать с оборудованием конкретного типа, так и базовый драйвер Driver, который предоставляет минимальный интерфейс для работы через SSH/Telnet.

Версія на друк

Популярне