⬇️ winget: быстрая установка своего набора программ на чистой системе
Недавно я рассказывал в блоге, как прицепить установку программ с winget к автоустановке Windows. (А заодно как установить winget в Windows Server и изданиях LTSC :) В статье был скрипт с ручной подборкой приложений для winget. Создание такого набора можно существенно автоматизировать!
👉 У winget есть команды
В настроенной системе эта команда сохранит json со списком программ в текущую папку:
В чистой системе эта команда установит приложения из списка:
🤺 Теперь нюансы.
🔹 В список попадут только приложения, доступные в подключенных репозиториях. По умолчанию - это winget и msstore (репо магазина Windows).
🔹 Вы можете убрать ненужные приложения, открыв json в текстовом редакторе. По умолчанию winget пытается обновить приложения до новой версии. Если ее нет, он ничего не делает. Поэтому не тратьте время на удаление из списка предустановленных приложений и компонентов вроде "Microsoft.Edge" и "Microsoft.UI.Xaml.2.8".
🔹 Файл структурирован по репозиториям. Для экспорта конкретного репо есть ключ
Вместо открытия веб-версии магазина вы можете вывести названия с помощью модуля PowerShell (последняя строка).
🔹 Вы можете добавить в список прочие приложения, посмотрев их ИД командной
Разумеется, добавлять ИД нужно в раздел соответствующего репо, иначе при установке программа не найдется.
🔹 В список не попадут приложения, которые были установлены из образа вместе с системой (winget сообщает о каждом в процессе экспорта). Причем даже с помощью winget нельзя просто взять и получить список их магазинных ИД. Да и не все они доступны в репо магазина. Поэтому команда
✔️ Резюме
Команды
Недавно я рассказывал в блоге, как прицепить установку программ с winget к автоустановке Windows. (А заодно как установить winget в Windows Server и изданиях LTSC :) В статье был скрипт с ручной подборкой приложений для winget. Создание такого набора можно существенно автоматизировать!
👉 У winget есть команды
export
и import
. В настроенной системе эта команда сохранит json со списком программ в текущую папку:
winget export -o apps.json
В чистой системе эта команда установит приложения из списка:
winget import C:\temp\apps.json --ignore-unavailable --accept-package-agreements --accept-source-agreements
🤺 Теперь нюансы.
🔹 В список попадут только приложения, доступные в подключенных репозиториях. По умолчанию - это winget и msstore (репо магазина Windows).
🔹 Вы можете убрать ненужные приложения, открыв json в текстовом редакторе. По умолчанию winget пытается обновить приложения до новой версии. Если ее нет, он ничего не делает. Поэтому не тратьте время на удаление из списка предустановленных приложений и компонентов вроде "Microsoft.Edge" и "Microsoft.UI.Xaml.2.8".
🔹 Файл структурирован по репозиториям. Для экспорта конкретного репо есть ключ
-s
: -s msstore
. К сожалению, в этом репо по идентификатору вида 9N8G7TSCL18R
невозможно определить приложение. Можно подставить ИД в ссылку на веб-версию магазина или пройтись по json скриптом #PowerShell:$json = Get-Content -Path "apps.json" -Raw | ConvertFrom-Json
$msstore = $json.Sources | Where-Object {$_.SourceDetails.Name -eq "msstore"} |
ForEach-Object {$_.Packages.PackageIdentifier}
$msstore | ForEach-Object {explorer https://apps.microsoft.com/store/detail/$($_); sleep 1}
# $msstore | ForEach-Object {Get-WinGetPackage -Id $_ -MatchOption Equals} | ft ID,Name -Wrap
Вместо открытия веб-версии магазина вы можете вывести названия с помощью модуля PowerShell (последняя строка).
🔹 Вы можете добавить в список прочие приложения, посмотрев их ИД командной
search
:winget search nanazip
Разумеется, добавлять ИД нужно в раздел соответствующего репо, иначе при установке программа не найдется.
🔹 В список не попадут приложения, которые были установлены из образа вместе с системой (winget сообщает о каждом в процессе экспорта). Причем даже с помощью winget нельзя просто взять и получить список их магазинных ИД. Да и не все они доступны в репо магазина. Поэтому команда
search
в помощь.✔️ Резюме
Команды
import
и export
призваны ускорить создание привычной среды на чистой системе. И они неплохо с этим справляются! Да, не все программы есть в репозиториях, а перенос настроек приложений - отдельная большая тема. Но грех жаловаться на возможность одной командой установить несколько десятков любимых программ ✌️www.outsidethebox.ms
Автоустановка приложений с winget по окончании установки Windows
WinGet - замечательное средство автоматической установки приложений. Не надо тратить время на скачивание актуальных инсталляторов и забивать себе голову тонкостями ключей тихой установки. Просто запускаешь скрипт с подборкой своих программ и готово! Но есть…
▶️ Windows Terminal: перемещение курсора мышью и фрагменты кода
Хочу рассказать вам о паре новых возможностей терминала.
🖱 Перемещение курсора мышью
Нередко бывает, что надо изменить длинную команду. И чтобы перейти в нужное место, приходится давить ⬅️ или ➡️ либо нажимать их, удерживая
Казалось бы, перемещая руку от клавиатуры к мыши и обратно, ничего особо не ускоришь. Но по моим ощущениям иногда действительно быстрее просто ткнуть мышью в нужную позицию строки 🚀
Этой фичей я уже пользуюсь несколько месяцев в превью терминала, а вчера она стала доступна в стабильной версии. Настраивается для профилей в дополнительных параметрах. Можно включить это поведение для отдельных профилей или сразу для всех (Defaults). Разумеется, у ненужных профилей можно отключить.
Но есть нюанс © Функция экспериментальная, и работает она только в оболочках которые её поддерживают. Например, это PowerShell Core, но не Windows #PowerShell, идущий в комплекте с ОС.
#️⃣ Фрагменты кода (code snippets)
Это только что появилось в превью терминала (я попробовал еще в Canary). Можно сохранять команды и даже небольшие скрипты. И быстро запускать их!
🎦 Демо от ПМа терминала.
По сути осуществляется ввод символов, прописанных в настройках (JSON-файл). В раздел
В этом примере последовательно пингуются два ресурса (
Сейчас для вызова повторных команд в моем арсенале поиск по истории (
Попробуйте эти фичи и поделитесь впечатлениями в чате! ✌️
Хочу рассказать вам о паре новых возможностей терминала.
🖱 Перемещение курсора мышью
Нередко бывает, что надо изменить длинную команду. И чтобы перейти в нужное место, приходится давить ⬅️ или ➡️ либо нажимать их, удерживая
Ctrl
, что быстрее.Казалось бы, перемещая руку от клавиатуры к мыши и обратно, ничего особо не ускоришь. Но по моим ощущениям иногда действительно быстрее просто ткнуть мышью в нужную позицию строки 🚀
Этой фичей я уже пользуюсь несколько месяцев в превью терминала, а вчера она стала доступна в стабильной версии. Настраивается для профилей в дополнительных параметрах. Можно включить это поведение для отдельных профилей или сразу для всех (Defaults). Разумеется, у ненужных профилей можно отключить.
Но есть нюанс © Функция экспериментальная, и работает она только в оболочках которые её поддерживают. Например, это PowerShell Core, но не Windows #PowerShell, идущий в комплекте с ОС.
#️⃣ Фрагменты кода (code snippets)
Это только что появилось в превью терминала (я попробовал еще в Canary). Можно сохранять команды и даже небольшие скрипты. И быстро запускать их!
🎦 Демо от ПМа терминала.
По сути осуществляется ввод символов, прописанных в настройках (JSON-файл). В раздел
actions
добавляйте действие Send Input с нужным фрагментом.{ "command":
{
"action": "sendInput",
"input": "ping 1.1.1.1\r ping colts.com\r"
},
"name": "Demo ping",
"keys": "ctrl+alt+p"
}
В этом примере последовательно пингуются два ресурса (
\r
эмулирует нажатие клавиши Enter
).Сейчас для вызова повторных команд в моем арсенале поиск по истории (
Ctrl+R
) и Predictive IntelliSense (п. 3, фича модуля PSReadLine). Однако оба способа нередко "замусориваются" вариациями одной команды. Плюс можно выполнять фрагмент заданным сочетанием клавиш. Поэтому я уже вижу применение фрагментам кода!Попробуйте эти фичи и поделитесь впечатлениями в чате! ✌️