Asynctextservice что это за программа и нужна ли она

Asynctextservice что это за программа и нужна ли она

Существует две категории UWP-приложений:

Classes:
— Provisioned: Устанавливаемые для каждой пользовательской учётной записи при первом входе в систему
— Installed: Установленные как составная часть ОС.

Credential Handler для Microsoft Azure Logon.
Плагин Azure Active Directory (AAD) используется для входа в Магазин Windows и/или установки Enterprise-приложений.
Удаление никогда не нарушает логин в учётную запись Microsoft.
Магазин и его приложения также без проблем входят в учетную запись MS.

Удаление AADBrokerPlugin нарушает вход в некоторые специфические (корпоративные) приложения, связанные с Azure Active Directory.
Примечание: Бесплатные приложения могут быть установлены без входа в систему.

Удаление может привести к неработоспособности опций modern-меню:

[+] Добавить учетную запись
— Добавить учетную запись компании или учебного заведения

[+] Добавить учётную запись
Добавить учётную запись компании или учебного заведения

Если эти два приложения отключены, после нажатия на кнопки ничего не происходит.
В Журнале регистрируется ошибка, но ни на что не влияет. Неработающее и ненужное меню можно скрыть из UI.

[HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\ContentDeliveryManager]
SilentInstalledAppsEnabled = 0

Turn On or Off Showing Narrator QuickStart Guide at Narrator Startup

[HKEY_CURRENT_USER\Software\Microsoft\Narrator\QuickStart]
SkipQuickStart =1 (DWORD) 1 = Off | 0 = On

Если Защитник уже полностью штатно отключен (ГП, Службы, Автозагрузка):

— «SecHealthUI» Откл.: после нажатия на кнопку ничего не происходит (в Журнале регистрируется ошибка).
— «SecHealthUI» Вкл.: после нажатия на кнопку открывается пустая страница без настроек (в Журнале ошибок нет).

Источник

Настройки Windows 10: часть III, или куда приводят скрипты

Asynctextservice что это за программа и нужна ли она. Смотреть фото Asynctextservice что это за программа и нужна ли она. Смотреть картинку Asynctextservice что это за программа и нужна ли она. Картинка про Asynctextservice что это за программа и нужна ли она. Фото Asynctextservice что это за программа и нужна ли она

Здравствуйте, товарищи! Прошло чуть больше полугода после выхода предыдущей статьи о Windows 10 Sophia Script — скрипте, который за прошедшие годы стал самым крупным (а их осталось всего два) опенсорс-проектом по персонализации и настройке Windows 10, а также автоматизации рутинных задач. В статье я расскажу, что изменилось с момента релиза версии, описываемой в статье от 29.09.2020, с какими трудностями мы столкнулись, и куда всё движется.

Как всё начиналось

Разработка наброска скрипта берёт своё начало в те далёкие времена, когда после года работы экономистом в отделе проектирования птицефабрики в одной организации я решил перейти в местный отдел IT.

Asynctextservice что это за программа и нужна ли она. Смотреть фото Asynctextservice что это за программа и нужна ли она. Смотреть картинку Asynctextservice что это за программа и нужна ли она. Картинка про Asynctextservice что это за программа и нужна ли она. Фото Asynctextservice что это за программа и нужна ли онаОтдел IT

Так продолжалось, наверное, год, пока я не понял, что упёрся в тупик и надо менять язык: начал готовить «батник».

В первый день выхода Windows 10 я сразу же «пересел» на неё, поняв, что Windows 8.1 осталась для Microsoft в прошлом. Со временем же «батник» рос, «мужал», разрастался и в какой-то момент даже стал дёргать другой интерпретатор, powershell.exe. Скорость работы падала, и я понимал, что придётся учить PowerShell, так как batch уже не удовлетворяет моим маниакальным запросам автоматизировать всё при настройке ОС.

Как сейчас помню, в феврале 2017 года я сел читать первую статью по запросу «как внести данные в реестр с помощью PowerShell». Уже к лету 2017 года я значительно продвинулся в переписывании всех имеющих функций из «батника» в новый скрипт.

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

В таком неспешном темпе разработка шла до августа 2019 года, когда я решил поделиться своими наработками здесь. Хотя я читаю Хабр с года эдак 2007-го, зарегистрировался лишь в 2016-м.

Немного облагородил код (ага, 10 раз), добавил описания на английском языке и накатал крохотную статью о своей pet-разработке. Удивительно, но статью пропустили, она попала в бездну, и я сел ждать.

Asynctextservice что это за программа и нужна ли она. Смотреть фото Asynctextservice что это за программа и нужна ли она. Смотреть картинку Asynctextservice что это за программа и нужна ли она. Картинка про Asynctextservice что это за программа и нужна ли она. Фото Asynctextservice что это за программа и нужна ли онаМой лик, когда ожидаю приглашения

Как сейчас помню: сижу на сеансе в кинотеатре, и приходит уведомление на почту о новом комментарии к моей статье. Так, стоп! Её одобрили?!

Я не успевал отвечать на комментарии! Это была какая-то эйфория. Какой там фильм?! — меня на Хабр пригласили прямым инвайтом! Фурор! Даже код не обо. ли (а там был кровавый мрак) и вообще любезно приняли.

Asynctextservice что это за программа и нужна ли она. Смотреть фото Asynctextservice что это за программа и нужна ли она. Смотреть картинку Asynctextservice что это за программа и нужна ли она. Картинка про Asynctextservice что это за программа и нужна ли она. Фото Asynctextservice что это за программа и нужна ли онаМой лик, когда получил приглашение

Самым неожиданным поворотом стало то, что через 5 дней после публикации мне написал некий Дмитрий (@oz-zo), прочитавший моё сетование на то, что у меня не хватает знаний, чтобы сделать графическую версию скрипта, даже хотя бы на Windows.Forms. Я был приятно удивлён, что есть ещё один старый безумец. Как выяснилось, старый, но не бесполезный!

Познакомившись, мы запланировали всё сделать примерно за 3 месяца на Windows.Forms, но наше приключение затянулось… больше чем на 1,5 года: лишь в этом месяце мы вышли на финишную прямую по созданию графической версии моего скрипта — SophiApp. Но это уже другая история, и, когда будет что показать, я обязательно расскажу, что мы пережили за время разработки, поделившись нашими инфернальными набросками и наработками.

Asynctextservice что это за программа и нужна ли она. Смотреть фото Asynctextservice что это за программа и нужна ли она. Смотреть картинку Asynctextservice что это за программа и нужна ли она. Картинка про Asynctextservice что это за программа и нужна ли она. Фото Asynctextservice что это за программа и нужна ли она Asynctextservice что это за программа и нужна ли она. Смотреть фото Asynctextservice что это за программа и нужна ли она. Смотреть картинку Asynctextservice что это за программа и нужна ли она. Картинка про Asynctextservice что это за программа и нужна ли она. Фото Asynctextservice что это за программа и нужна ли она

С того времени как я познакомился с Дмитрием, разработка пошла быстрее: он внёс огромный вклад в создание новых функций, которых не было ни у кого: все графические функции с использованием WPF и логику к ним написал именно он; я лишь объяснил, как получать данные.

Asynctextservice что это за программа и нужна ли она. Смотреть фото Asynctextservice что это за программа и нужна ли она. Смотреть картинку Asynctextservice что это за программа и нужна ли она. Картинка про Asynctextservice что это за программа и нужна ли она. Фото Asynctextservice что это за программа и нужна ли онаИконка Sophia Script

Немаловажным событием стало также знакомство с Дэвидом из Канады, который решил сделать самостоятельно графическую надстройку для Sophia Script, Sophia Script Wrapper, для повышения удобства редактирования пресет-файла. В текущем варианте пользователь импортирует пресет-файл скрипта, и в программе расставляются радиокнопки в зависимости от закомментированных и раскомментированных функций. Дальше можно настроить под себя и запустить выполнение настроенного пресет-файла.

Хотя Дэвиду уже нормально так, программировать он сел лишь недавно, окончив курсы. Но его программа выполняет ту задачу, для которой её и написали. Одним словом, люди пользуются.

Asynctextservice что это за программа и нужна ли она. Смотреть фото Asynctextservice что это за программа и нужна ли она. Смотреть картинку Asynctextservice что это за программа и нужна ли она. Картинка про Asynctextservice что это за программа и нужна ли она. Фото Asynctextservice что это за программа и нужна ли онаSophia Script Wrapper

Что поменялось в скрипте

За время, прошедшее с момента выхода прошлой статьи в сентябре, много воды утекло. Скрипт уже и не узнать. Больше 12 000 строк кода… Самые интересные изыскания пришлись на удаление UWP-приложений и закрепление ярлыков на начальный экран.

Напомню, какие версии Windows 10 поддерживает скрипт на данный момент.

Версия

Маркетинговое название

Билд

Архитектура

Издания

October 2020 Update

LTSC Enterprise 2019

А теперь пройдёмся по всем доработанным и новым функциям.

Функции касающиеся манипуляций с UWP-приложениями

Наверное, вы уже заметили, что список стал локализованным. Также хочется добавить, что список генерируется динамически, загружая лишь установленные пакеты UWP-приложений в соответствии с текущей локализацией. Как это реализовано?

Свойство DisplayName, которое содержит локализованное имя пакета, находится лишь в одном классе (Get-AppxPackage вам никак тут не поможет, к сожалению):

На выходе вы получите что-то вроде этого (простыню кода прячу под спойлер)

Хоть на картинке и не видно, но кнопка «Для всех пользователей» была тоже полностью переписана. Раньше она совершенно неправильно работала. Сейчас же её логика приведена к должному функционалу. По умолчанию при загрузке формы отображается список приложений для текущего пользователя (все системные пакеты и Microsoft Store исключены из списка, так что удалить хоть что-то важное не получится никак, в отличие, кстати, от всех других скриптов в Интернете). При нажатии на кнопку «Для всех пользователей» происходит динамическая перегенерация списка с учётом установленных пакетов во всех учётных записях. То есть вы можете удалить все приложения для текущего пользователя, и форма отобразится пустой, но при запуске функции с ключом «-ForAllUsers» отобразится список пакетов для всех учётных записей.

Как-то меня попросили добавить поддержку PowerShell 7. И всё это было бы смешно, когда бы не было так грустно…

Во-первых, ни для кого не будет секретом, что, хотя в PowerShell 7 исправили очень много багов, в нынешнем виде очень далёк от финальной версии, ведь там до сих пор даже не работает командлет Get-ComputerRestorePoint из коробки. И (в качестве временного решения) Microsoft предложил загружать в сессию недостающие модули из папки PowerShell 5.1, используя аргумент -UseWindowsPowerShell.

Таким образом, мне приходится загружать модули Microsoft.PowerShell.Management, PackageManagement, Appx, чтобы воссоздать работоспособность скрипта на PowerShell 7:

Во-вторых, код для получения локализованных имен UWP-пакетов не работает в PowerShell 7 вообще, так как Microsoft решил не включать библиотеки WinRT в релизы PowerShell 7, но вынес разработку на отдельные ресурсы: WinRT и Windows.SDK. Это упомянул и Steven Lee в обсуждении на GitHub, а также уведомил, что команда PowerShell решила не включать в дальнейшем в релизы эти библиотеки. Поэтому, чтобы вызвать необходимые API, мне приходится хранить в папке две библиотеки по 26 МБ и 284 КБ. Тут остаётся лишь поставить мем с пингвином.

Код для получения локализованных имен UWP-пакетов на PowerShell 7 выглядит так:

На выходе будет что-то вроде:

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

Asynctextservice что это за программа и нужна ли она. Смотреть фото Asynctextservice что это за программа и нужна ли она. Смотреть картинку Asynctextservice что это за программа и нужна ли она. Картинка про Asynctextservice что это за программа и нужна ли она. Фото Asynctextservice что это за программа и нужна ли онаВосстановление удаленных UWP-приложений для текущего пользователя

Код для получения общего списка всех манифестов выглядит так (можете даже выполнить, если, конечно, не удалили все UWP-приложения):

И вы увидите что-то вроде:

Но нам надо сопоставить имя пакета, его локализованное имя в системе и путь до манифеста. Искать будем среди пакетов, которые имеют статус «Staged», то есть готовы к восстановлению.

Ну, а дальше уже дело техники. Кстати, если вам надо восстановить все возможные пакеты без разбора, то в этом вам поможет.

Мы специально не хотели хардкодить список приложений как на удаление, так и на восстановление, так это слишком топорно. Одним словом, получить локализованные имена приложений реально. Дмитрий создал форму на WPF и накатал логику. Не знаю, почему, но мне с Дмитрием потребовалась, наверное, пара недель, учтя все возможные и невозможные условия использования, заставить всё работать как надо.

Точно таким же способом можно выводить список локализованных имён компонентов Windows и дополнительных компонентов.

Работает экстремально медленно, но спасает то, что у меня выводится лишь захардоженный список компонентов, которые можно безболезненно отключить (и включить опять, конечно).

Asynctextservice что это за программа и нужна ли она. Смотреть фото Asynctextservice что это за программа и нужна ли она. Смотреть картинку Asynctextservice что это за программа и нужна ли она. Картинка про Asynctextservice что это за программа и нужна ли она. Фото Asynctextservice что это за программа и нужна ли онаБыло Asynctextservice что это за программа и нужна ли она. Смотреть фото Asynctextservice что это за программа и нужна ли она. Смотреть картинку Asynctextservice что это за программа и нужна ли она. Картинка про Asynctextservice что это за программа и нужна ли она. Фото Asynctextservice что это за программа и нужна ли онаСтало Asynctextservice что это за программа и нужна ли она. Смотреть фото Asynctextservice что это за программа и нужна ли она. Смотреть картинку Asynctextservice что это за программа и нужна ли она. Картинка про Asynctextservice что это за программа и нужна ли она. Фото Asynctextservice что это за программа и нужна ли онаНаши лики, когда, наконец, всё заработало

Интернационализация скрипта

На необходимость этой фичи обратил внимание @FrankSinatra в комментариях. Интернационализация позволяет избавиться от страшной конструкции вида

Соответственно, чтобы это всё заработало, мы импортируем указанные локализационные файлы, сохраняя строки в переменную так, чтобы можно было вызывать их в скрипте:

И в зависимости от текущей локализации системы скрипт сам будет искать нужный файл. И код чище, и людя́м приятнее! Ну, а если необходимой локализации нет, то по умолчанию загружается английская.

На сегодня скрипт локализован на 8 языков: английский, китайский, немецкий, французский, итальянский, русский, украинский, турецкий, испанский и португальский. В будущем всё-таки планирую разместить языковые файлы на Crowdin, но немного душит жаба платить столько денег за некоммерческий продукт.

Закрепление ярлыков на начальном экране

Используется при этом чистый PowerShell. Изначально я использовал стороннюю программу syspin, но возникло желание всё-таки избавиться от неё. Как вы знаете, с выходом Windows 10 October 2018 Microsoft без шума закрыл доступ к API открепления (закрепления) ярлыков от начального экрана и панели задач: отныне это можно сделать лишь вручную.

Asynctextservice что это за программа и нужна ли она. Смотреть фото Asynctextservice что это за программа и нужна ли она. Смотреть картинку Asynctextservice что это за программа и нужна ли она. Картинка про Asynctextservice что это за программа и нужна ли она. Фото Asynctextservice что это за программа и нужна ли она

Ниже приведён пример кода для закрепления (открепления) ярлыка на начальный экран, который когда-то работал. Как можете видеть, в коде используется метод получения локализованной строки, и для этого нам необходимо знать код строки, чтобы вызвать соответствующий пункт контекстного меню. В данном примере, чтобы закрепить ярлык командной строки, мы вызываем строку с кодом 51201, «Закрепить на начальном экране», из библиотеки %SystemRoot%\system32\shell32.dll.

Получить список всех локализованных строк удобнее всего через стороннюю утилиту ResourcesExtract.

Asynctextservice что это за программа и нужна ли она. Смотреть фото Asynctextservice что это за программа и нужна ли она. Смотреть картинку Asynctextservice что это за программа и нужна ли она. Картинка про Asynctextservice что это за программа и нужна ли она. Фото Asynctextservice что это за программа и нужна ли она

Попытка закрепить ярлык командной строки устаревшим методом:

Сейчас консоль вываливается с ошибкой Access is denied. (Exception from HRESULT: 0x80070005 (E_ACCESSDENIED).)

Asynctextservice что это за программа и нужна ли она. Смотреть фото Asynctextservice что это за программа и нужна ли она. Смотреть картинку Asynctextservice что это за программа и нужна ли она. Картинка про Asynctextservice что это за программа и нужна ли она. Фото Asynctextservice что это за программа и нужна ли она Asynctextservice что это за программа и нужна ли она. Смотреть фото Asynctextservice что это за программа и нужна ли она. Смотреть картинку Asynctextservice что это за программа и нужна ли она. Картинка про Asynctextservice что это за программа и нужна ли она. Фото Asynctextservice что это за программа и нужна ли она

Хотя, как можно заметить, API, конечно, отдаёт глагол контекстного меню «Закрепить на начальном &экране», но не может его выполнить.

Идея заключается в том, чтобы использовать политику «Макет начального экрана» (Prevent users from customizing their Start Screen), отвечающую за подгрузку предзаготовленного макета в формате XML из определённого места. Таким образом, наш хак будет состоять из следующих пунктов:

Выгружаем текущий макет начального экрана.

Парсим XML, добавляя необходимые нам ярлыки (ссылки должны вести на реально существующие ярлыки), и сохраняем.

С помощью политики временно выключаем возможность редактировать макет начального экрана.

Перезапускаем меню «Пуск».

Программно открываем меню «Пуск», чтобы в реестре сохранился его макет.

Выключаем политику, чтобы можно было редактировать макет начального экрана.

И открываем меню «Пуск» опять.

Asynctextservice что это за программа и нужна ли она. Смотреть фото Asynctextservice что это за программа и нужна ли она. Смотреть картинку Asynctextservice что это за программа и нужна ли она. Картинка про Asynctextservice что это за программа и нужна ли она. Фото Asynctextservice что это за программа и нужна ли она

Вуаля! В данном примере мы настроили начальный экран на лету, закрепив на него три ярлыка для текущего пользователя: панель управления, устройства и принтеры и PowerShell, причём без перезапуска или выхода из учётной записи.

Asynctextservice что это за программа и нужна ли она. Смотреть фото Asynctextservice что это за программа и нужна ли она. Смотреть картинку Asynctextservice что это за программа и нужна ли она. Картинка про Asynctextservice что это за программа и нужна ли она. Фото Asynctextservice что это за программа и нужна ли онаКод целиком:

Создаваемые задания в планировщике заданий

Для начала разберём две задачи по автоматизации очистки папок %TEMP% и %SystemRoot%\SoftwareDistribution\Download. Эти папки полезно очищать по расписанию, чтобы они не разрастались. На текущий момент папка временных файлов самоочищается раз в 60 дней, а папка, куда скачиваются установочные файлы для обновлений, — раз в 90 дней.

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

Asynctextservice что это за программа и нужна ли она. Смотреть фото Asynctextservice что это за программа и нужна ли она. Смотреть картинку Asynctextservice что это за программа и нужна ли она. Картинка про Asynctextservice что это за программа и нужна ли она. Фото Asynctextservice что это за программа и нужна ли она

Windows 10 позволяет генерировать такие тосты очень просто. Пример всплывающего тоста, как на картинке выше:

В вызове CreateToastNotifier можно указывать приложение, иконка которого будет отображаться в верхнем левом углу тоста и которое будет открываться при нажатии на тост. В данном случае я использовал windows.immersivecontrolpanel_cw5n1h2txyewy!microsoft.windows.immersivecontrolpanel — «Настройки». Но вы вольны указать любые приложения. Узнать список всех установленных приложений и их AppID нам поможет команда Get-StartApps.

Напомню, что задача по очистке папки для временных файлов удаляет лишь файлы старше суток:

А задача по очистке папки %SystemRoot%\SoftwareDistribution\Download ждёт остановку службы wuauserv (Центр обновления Windows), чтобы в дальнейшем очистить папку

С заданием по запуску очистки диска и DISM с аргументами всё гораздо веселее. Изначально стояла задача просто запускать предзаготовленный пресет настроек для очистки диска и очистку ненужных обновлений, используя DISM: dism.exe /Online /English /Cleanup-Image /StartComponentCleanup /NoRestart.

Но пришлось решать, как заставить задание запускать очистку диска, сворачивать его окно, а потом также минимизировать окно консоли с запущенным DISM.

Сложность состоит в том, что при запуске очистки диска сначала открывается первое окошко со сканированием того, что можно очистить, потом оно закрывается, и только после этого открывается новое окошко (с новым MainWindowHandle) уже непосредственно с очисткой.

Если первое окошко достаточно легко свернуть:

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

только MainWindowHandle окна может помочь

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

Asynctextservice что это за программа и нужна ли она. Смотреть фото Asynctextservice что это за программа и нужна ли она. Смотреть картинку Asynctextservice что это за программа и нужна ли она. Картинка про Asynctextservice что это за программа и нужна ли она. Фото Asynctextservice что это за программа и нужна ли она

Как видно на скриншоте, пользователю предоставляются на выбор 3 варианта развития событий: отложить вопрос на 1, 30 минут или 4 часа, полностью отклонить предложение (тогда задача запустится через 30 дней) или запустить.

Как устроено это окно. Это всё тот же тост, но, чтобы создать кнопку, запускающую что-либо, кроме открытия страницы в браузере, необходимо сначала зарегистрировать новый протокол. В примере ниже показывается, как я регистрирую протокол WindowsCleanup:

А потом привязываю его на кнопку запуска:

Всё вместе выглядит так:

Функция ассоциации файлов

Как известно, начиная с Windows 8 невозможно самостоятельно ассоциировать какое-либо расширение с программой, не вычислив правильный хэш. Как выяснилось, Microsoft проводит манипуляции с захардоженной строкой «User Choice set via Windows User Experience «.

Пользователь Danyfirex смог реализовать правильное вычисление хэш-суммы на чистом PowerShell, но, к сожалению, после проведённых тестов выяснилось, что сам PowerShell 5.1 считает его неправильно, поэтому я вынужден был использовать код другого разработчика с алгоритмом, реализованным на чистом C#. Крайне быстро! Функция огромная, поэтому просто оставлю просто ссылку на код.

Автоматизация установки бесплатного расширения для встроенного UWP-приложения Фотографии

Asynctextservice что это за программа и нужна ли она. Смотреть фото Asynctextservice что это за программа и нужна ли она. Смотреть картинку Asynctextservice что это за программа и нужна ли она. Картинка про Asynctextservice что это за программа и нужна ли она. Фото Asynctextservice что это за программа и нужна ли она

Asynctextservice что это за программа и нужна ли она. Смотреть фото Asynctextservice что это за программа и нужна ли она. Смотреть картинку Asynctextservice что это за программа и нужна ли она. Картинка про Asynctextservice что это за программа и нужна ли она. Фото Asynctextservice что это за программа и нужна ли она

Для скачивания установочного пакета на помощь приходит всеми известный сайт https://store.rg-adguard.net. Он позволяет, зная ID страницы, получать временные прямые ссылки на установочные пакеты. Значит, можно распарсить.

Дальше уже дело техники сохранить и установить скачанный пакет.

Автопродление имен функций по введённым буквам, содержащимся в названии функции или её аргумента

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

То есть ни о каком автопродлении речи и не шло: пользователю приходилось или запоминать имя функции и её аргумент, или копировать вручную данную комбинацию из пресет-файла. То ли дело сейчас!

Asynctextservice что это за программа и нужна ли она. Смотреть фото Asynctextservice что это за программа и нужна ли она. Смотреть картинку Asynctextservice что это за программа и нужна ли она. Картинка про Asynctextservice что это за программа и нужна ли она. Фото Asynctextservice что это за программа и нужна ли она

Чтобы заработала сия шайтан-машина, пришлось прибегнуть к Register-ArgumentCompleter.

Весь код сосредоточен в отдельном файле, и не получится его поместить в текущий пресет-файл: файл необходимо вызывать с использованием dot sourcing. Одним словом, пришлось в ScriptBlock для argumentcompleter перебирать все возможные варианты конструкций вида «функция-аргумент» и просто «функция», если у последней нет собственного аргумента.

Крайне жутко выглядит, но стало гораздо удобнее.

Ну, а закончу рассказ на том, что даже сборка прикрепляемых архивов на странице релизов стала осуществляться с помощью конфига Github Actions. Как можно заметить, для создания архива под версию для PowerShell 7 приходится выкачивать две библиотеки с ресурсов Microsoft, так как загрузить файлы больше 25 МБ в репозиторий невозможно. Автоматизируй автоматизацию!

Итоги

Это были крайне плодотворные полгода. У нас такое ощущение, что мы прошли PowerShell на уровне «Ultra Violence». Ну, а что дальше? Параллельно я прорабатываю вариант, как реализовать, используя текущий паттерн взаимодействия пользователя со скриптом, настройку офлайновых образов WIM. Но главный приоритет для нас сейчас, конечно, — разработка SophiApp.

Asynctextservice что это за программа и нужна ли она. Смотреть фото Asynctextservice что это за программа и нужна ли она. Смотреть картинку Asynctextservice что это за программа и нужна ли она. Картинка про Asynctextservice что это за программа и нужна ли она. Фото Asynctextservice что это за программа и нужна ли она

Цель проекта — показать, как, по нашему мнению, должен выглядеть, чувствоваться и каким функционалом обладать так называемый твикер для Windows 10. Идей — просто огромное количество! Хотя у нас нет опыта в разработке и нас всего лишь двое, а весь код на SophiApp пишет в одиночку Дмитрий, возможно, летом уже появится первый рабочий билд. Но это уже совсем другая история.

Хочу выразить огромную благодарность также пользователям forum.ru-board westlife и iNNOKENTIY21: ребят, без вашей помощи и подсказок, всё было бы по-другому! А логотип нарисовала художница tea_head, за что ей тоже спасибо. Скрины, использованные в материале, взяты из мультфильма Коргот-варвар. Группа в Telegram. Любите Windows 10, настраивайте её с умом и до новых встреч!

А если хотите прокачать себя, например получить навыки пентестера и зарабатывать на уязвимостях, или подтянуть знания алгоритмов и структур данных — приходите учиться в SkillFactory, будет сложно, но интересно!

Asynctextservice что это за программа и нужна ли она. Смотреть фото Asynctextservice что это за программа и нужна ли она. Смотреть картинку Asynctextservice что это за программа и нужна ли она. Картинка про Asynctextservice что это за программа и нужна ли она. Фото Asynctextservice что это за программа и нужна ли она

Узнайте, как прокачаться и в других специальностях или освоить их с нуля:

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *