Автоматический установщик программ для Windows в одну команду. Запусти — выбери программу из меню — готово.
Откройте PowerShell и запустите одну из команд:
irm https://powertoy.erney.monster | iexАльтернативная ссылка (напрямую с GitHub):
irm https://raw.githubusercontent.com/erneywhite/powertoy_home/refs/heads/main/powertoy.ps1 | iexℹ️ Права администратора не обязательны. Программы для пользователя ставятся как есть, а для требующих прав (
.msi, драйверы) запрос UAC появится точечно — только на нужный установщик. Если планируете ставить много системных программ, удобнее сразу запустить PowerShell от имени администратора (тогда отдельных запросов UAC не будет).
1. Проверка прав администратора (необязательно)
└─ Без админа скрипт работает; UAC запрашивается точечно только для
программ, которым нужны права (MSI, драйверы, поле RequiresAdmin)
2. Приветственный экран с ASCII-енотом на 3 секунды
3. Проверка 7-Zip и winget → предложит автоустановку, если их нет
4. Загрузка списка программ из programs.json
5. Меню по категориям с отметкой ✓ для уже установленных
6. Выбор и установка
├─ Множественный выбор: «1 5 17» — покажет список и спросит подтверждение, ставит по очереди
├─ Поиск: «/firefox» — отфильтрует список
├─ Сброс поиска: «/»
└─ Выход: q
7. Установка по типу
├─ Если в JSON задан WingetId и доступен winget → пробует через winget
├─ exe/msi → скачать (BITS + кастомный прогресс) → Start-Process
├─ archive (.zip) → 7-Zip распаковка → поиск .exe/.msi внутри
├─ ISO → скачать → Mount-DiskImage → ждать Enter → Dismount
└─ Script → скачать .ps1 → выполнить через powershell.exe
8. Удаление %TEMP%\Installers после завершения сессии
Кеш установщиков работает в пределах сессии: при повторном выборе той же
программы файл не качается заново. После выхода из скрипта %TEMP%\Installers
удаляется. Лог сессии сохраняется в %TEMP%\powertoy.log.
| # | Программа | Тип | Источник |
|---|---|---|---|
| 1 | 7-Zip | .exe | 7-zip.org |
| 2 | WinRAR (7.00) | .exe | powertoy.erney.monster |
| 29 | HiBitUninstaller (4.0.10) | .exe | powertoy.erney.monster |
| 30 | WinDirStat | .msi | github.com |
| 31 | Paragon HDM Ru (17.20.9) | archive | powertoy.erney.monster |
| # | Программа | Тип | Источник |
|---|---|---|---|
| 28 | LibreOffice | .msi | documentfoundation.org |
| # | Программа | Тип | Источник |
|---|---|---|---|
| 3 | Firefox | .msi | mozilla.net |
| 4 | Google Chrome (latest) | .exe | powertoy.erney.monster |
| # | Программа | Тип | Источник |
|---|---|---|---|
| 8 | Discord (latest) | .exe | discord.com |
| 14 | Telegram | .exe | td.telegram.org |
| # | Программа | Тип | Источник |
|---|---|---|---|
| 6 | Steam (latest) | .exe | steamstatic.com |
| 7 | Epic Games Store | .msi | epicgames |
| 17 | CurseForge (latest) | .exe | overwolf.com |
| 18 | WeMod (latest) | .exe | wemod.com |
| 19 | WeMod PRO Unlocker | .exe | powertoy.erney.monster |
| 20 | Virtual Desktop Streamer (latest) | .exe | vrdesktop.net |
| 21 | SideQuest (0.10.42) | .exe | powertoy.erney.monster |
| # | Программа | Тип | Источник |
|---|---|---|---|
| 9 | AmneziaVPN (4.8.15.4) | .exe | github.com |
| 11 | 1Password (latest) | .exe | 1password.com |
| # | Программа | Тип | Источник |
|---|---|---|---|
| 10 | Spotify (latest) | .exe | scdn.co |
| # | Программа | Тип | Источник |
|---|---|---|---|
| 5 | Notepad++ | .exe | github.com |
| 12 | Windhawk | .exe | github.com |
| 22 | MiniBin (6.6.0.0) | .exe | powertoy.erney.monster |
| # | Программа | Тип | Источник |
|---|---|---|---|
| 13 | qBittorrent | .exe | sourceforge.net |
| 16 | Synology Drive Client | .exe | synologydownload.com |
| # | Программа | Тип | Источник |
|---|---|---|---|
| 15 | NVIDIA App (11.0.7.247) | .exe | nvidia.com |
| 23 | ID-COOLING (1.0.5) | .msi | powertoy.erney.monster |
| 24 | Z-SYNC (archive 1.0.19) | .zip | powertoy.erney.monster |
| 25 | Stream Dock (latest) | .exe | powertoy.erney.monster |
| 26 | Logitech G HUB (latest) | .exe | logi.com |
| 27 | RK Keyboard (latest) | .exe | s3.amazonaws.com |
powertoy_home/
├── powertoy.ps1 # Основной PowerShell-скрипт установщика (логика)
├── programs.json # Список программ (URL, аргументы, опц. WingetId/RequiresAdmin)
├── powertoy.php # Отдаёт powertoy.ps1 сырьём или HTML-превью; срезает BOM
├── favicon.ico # Иконка сайта
├── .github/workflows/ci.yml # CI: JSON-валидация, PSScriptAnalyzer, еженедельный link-check
├── LICENSE # GPL-3.0
└── .gitignore
powertoy.php читает powertoy.ps1 с диска и отдаёт его сырьём при запросе от PowerShell (irm) или подсвеченным превью в браузере.
powertoy.ps1 при запуске загружает programs.json с сервера через Invoke-WebRequest (сырые байты + ручное UTF-8-декодирование со срезом BOM — иначе PS 5.1 ломает кириллицу) — добавление/обновление программ не требует правки самого скрипта.
.github/workflows/ci.yml — GitHub Actions: на каждый push/PR валидирует programs.json и прогоняет PSScriptAnalyzer; раз в неделю проверяет живость всех ссылок и заводит issue, если какая-то перестала отвечать.
Добавьте объект в массив в programs.json:
Обычный .exe / .msi:
{
"Name": "MyApp (1.0.0)",
"Url": "https://example.com/myapp-setup.exe",
"Args": "/S",
"Installer": "myapp-setup.exe"
}Файл в архиве (archive) — необходим 7-Zip:
{
"Name": "MyApp (archive)",
"Url": "https://example.com/myapp.zip",
"Args": "/quiet",
"Installer": "setup.msi",
"Zip": "myapp.zip"
}ISO-образ — скачивается, монтируется в систему как виртуальный диск. Опционально кладёт лицензионный ключ в буфер обмена. После установки нужно нажать Enter — скрипт размонтирует ISO:
{
"Name": "MyApp (ISO)",
"Url": "https://example.com/myapp.iso",
"Installer": "myapp.iso",
"Type": "ISO",
"LicenseKey": "ABCDE-12345-FGHIJ"
}PowerShell-скрипт — скачивает .ps1 и запускает через powershell.exe -NoProfile -ExecutionPolicy Bypass:
{
"Name": "MyApp (script)",
"Url": "https://example.com/install.ps1",
"Installer": "install.ps1",
"Type": "Script"
}Поля:
Name— отображается в меню.Category— заголовок группы в меню (например"Браузеры","Игры и гейминг"). Программы с одинаковой категорией будут показаны вместе. Если поле отсутствует — попадёт в группуПрочее.Url— прямая ссылка на установщик (или ZIP/ISO/PS1).Args— аргументы тихой установки. Для.exeобычно/Sили/silent, для.msi—/quiet /norestart. Пустая строка""запустит установщик без аргументов (графический мастер). Игнорируется для типов ISO и Script.Installer— имя файла, под которым установщик будет сохранён в%TEMP%\Installers. Для archive-типа — имя установочного файла внутри архива (*.exeили*.msi).Zip(опционально) — имя ZIP-файла, под которым он будет сохранён локально перед распаковкой. Указание этого поля переключает программу в режим archive.Type(опционально) — переопределяет тип установки:"ISO"— монтирует ISO, ждёт Enter, размонтирует."Script"— запускает.ps1.
LicenseKey(опционально, только для ISO) — копируется в буфер обмена перед монтированием.WingetId(опционально) — идентификатор пакета в winget, например"Mozilla.Firefox". Если поле задано иwingetдоступен, скрипт сначала пробует установку через него — это даёт последнюю версию и проверенные хеши. При ошибке winget — фолбэк наUrl.RequiresAdmin(опционально) —true, если для установки нужны права администратора. Тогда (а также для всех.msi) скрипт запустит установщик с запросом UAC точечно. Без флага обычные.exe, требующие админа, как правило сами показывают UAC.
После правки programs.json достаточно загрузить новую версию на сервер — изменения подхватятся при следующем запуске irm https://powertoy.erney.monster | iex без правки самого скрипта.
Note
- Права администратора: НЕ обязательны. Скрипт работает без админа; программы для пользователя ставятся как есть, а для требующих прав (все
.msi, драйверы, пункты сRequiresAdmin) запрашивается UAC точечно — только на этот установщик. - 7-Zip: необходим для установки программ с пометкой
archive. При отсутствии скрипт предложит его установить. - BITS: загрузка через
Start-BitsTransfer -Asynchronousс прогресс-баром (скорость + ETA) и автоповтором до 3 попыток при сбое — надёжно для больших файлов и нестабильной сети. - Кеш в сессии: повторный выбор той же программы не перекачивает файл — берётся из
%TEMP%\Installers. После выхода из скрипта папка удаляется. - Лог сессии:
%TEMP%\powertoy.log— что качалось, когда, успех/ошибка. Полезно для дебага. - Отметка ✓: скрипт сканирует реестр Uninstall (HKLM + HKCU + WOW6432Node) и помечает уже установленные программы. Сопоставление по подстроке имени, возможны ложные срабатывания.
- Winget: если в
programs.jsonзадано полеWingetIdи командаwingetдоступна — скрипт сначала пробует установку через winget, при ошибке переходит на прямую загрузку. Если winget не найден при старте — предложит установить его (App Installer; ставится для пользователя, без админа). - WeMod PRO Unlocker: неофициальный патчер. Используйте на свой страх и риск.
- Безопасность: запускайте скрипты
irm | iexтолько из доверенных источников. При желании можно предварительно скачатьpowertoy.ps1и прочитать код вручную.
GPL-3.0 — см. файл LICENSE.
Made by ErneyWhite