Udk package что это windows 10

UDK.exe - это программа, разработанная Epic Games, Inc ..

Содержание

  • 1. Что такое UDK.exe?
  • 2. UDK.exe безопасно, или это вирус или вредоносная программа?
  • 3. Могу ли я удалить или удалить UDK.exe?
  • 4. Распространенные сообщения об ошибках в UDK.exe
  • 5. Как исправить UDK.exe
  • 6. Январь 2023 Обновление
  • 7. Загрузите или переустановите UDK.exe


Обновлено 2023 января: Вот три шага к использованию инструмента восстановления для устранения проблем с exe на вашем компьютере: Получите его по адресу эту ссылку

  1. Скачайте и установите это программное обеспечение.
  2. Просканируйте свой компьютер на наличие проблем с exe.
  3. Исправьте ошибки exe с помощью программного инструмента

UDK.exe это исполняемый файл, который является частью Unreal Development Kit Программа, разработанная Epic Games, Inc., Программное обеспечение обычно о 441.86 MB по размеру.

Расширение .exe имени файла отображает исполняемый файл. В некоторых случаях исполняемые файлы могут повредить ваш компьютер. Пожалуйста, прочитайте следующее, чтобы решить для себя, является ли UDK.exe Файл на вашем компьютере — это вирус или троянский конь, который вы должны удалить, или это действительный файл операционной системы Windows или надежное приложение.

Рекомендуется: Выявление ошибок, связанных с UDK.exe.
(опциональное предложение для Reimage — Cайт | Лицензионное соглашение | Персональные данные | Удалить)

UDK.exe - это вирус или вредоносное ПО?

UDK.exe безопасно, или это вирус или вредоносная программа?

Первое, что поможет вам определить, является ли тот или иной файл законным процессом Windows или вирусом, это местоположение самого исполняемого файла. Например, такой процесс, как UDK.exe, должен запускаться из, а не из другого места.

Для подтверждения откройте диспетчер задач, выберите «Просмотр» -> «Выбрать столбцы» и выберите «Имя пути к изображению», чтобы добавить столбец местоположения в диспетчер задач. Если вы обнаружите здесь подозрительный каталог, возможно, стоит дополнительно изучить этот процесс.

Еще один инструмент, который иногда может помочь вам обнаружить плохие процессы, — это Microsoft Process Explorer. Запустите программу (не требует установки) и активируйте «Проверить легенды» в разделе «Параметры». Теперь перейдите в View -> Select Columns и добавьте «Verified Signer» в качестве одного из столбцов.

Если статус процесса «Проверенная подписывающая сторона» указан как «Невозможно проверить», вам следует взглянуть на процесс. Не все хорошие процессы Windows имеют метку проверенной подписи, но ни один из плохих.

Наиболее важные факты о UDK.exe:

  • Находится в C: Program Files Steam Steamapps Common Unreal Development Kit вложенная;
  • Издатель: Epic Games, Inc.
  • Полный путь:
  • Файл справки: support.steampowered.com
  • URL издателя: www.udk.com
  • Известно, что до 441.86 MB по размеру на большинстве окон;

Если у вас возникли какие-либо трудности с этим исполняемым файлом, вы должны определить, заслуживает ли он доверия, прежде чем удалять UDK.exe. Для этого найдите этот процесс в диспетчере задач.

Найдите его местоположение (оно должно быть в C: Program Files steam steamapps common unreal development kit) и сравните размер и т. Д. С приведенными выше фактами.

Если вы подозреваете, что можете быть заражены вирусом, вы должны немедленно попытаться это исправить. Чтобы удалить вирус UDK.exe, вы должны Загрузите и установите приложение полной безопасности, например Malwarebytes., Обратите внимание, что не все инструменты могут обнаружить все типы вредоносных программ, поэтому вам может потребоваться попробовать несколько вариантов, прежде чем вы добьетесь успеха.

Кроме того, функциональность вируса сама может влиять на удаление UDK.exe. В этом случае вы должны включить Безопасный режим с загрузкой сетевых драйверов — безопасная среда, которая отключает большинство процессов и загружает только самые необходимые службы и драйверы. Когда вы можете запустить программу безопасности и полный анализ системы.

Могу ли я удалить или удалить UDK.exe?

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

Согласно различным источникам онлайн,
9% людей удаляют этот файл, поэтому он может быть безвредным, но рекомендуется проверить надежность этого исполняемого файла самостоятельно, чтобы определить, является ли он безопасным или вирусом. Лучшая диагностика для этих подозрительных файлов — полный системный анализ с Reimage, Если файл классифицирован как вредоносный, эти приложения также удалят UDK.exe и избавятся от связанных вредоносных программ.

Однако, если это не вирус и вам необходимо удалить UDK.exe, вы можете удалить Unreal Development Kit со своего компьютера с помощью программы удаления, которая должна находиться по адресу: «C: Program Files Steam steam.exe» steaC: // удалить / 13260. Если вы не можете найти его деинсталлятор, вам может потребоваться удалить Unreal Development Kit, чтобы полностью удалить UDK.exe. Вы можете использовать функцию «Добавить / удалить программу» в Панели управления Windows.

  • 1. в Меню Пуск (для Windows 8 щелкните правой кнопкой мыши в нижнем левом углу экрана), нажмите Панель управления, а затем под Программы:
    o Windows Vista / 7 / 8.1 / 10: нажмите Удаление программы.
    o Windows XP: нажмите Установка и удаление программ.
  • 2. Когда вы найдете программу Unreal Development Kitщелкните по нему, а затем:
    o Windows Vista / 7 / 8.1 / 10: нажмите Удалить.
    o Windows XP: нажмите Удалить or Изменить / Удалить вкладка (справа от программы).
  • 3. Следуйте инструкциям по удалению Unreal Development Kit.

Распространенные сообщения об ошибках в UDK.exe

Наиболее распространенные ошибки UDK.exe, которые могут возникнуть:

• «Ошибка приложения UDK.exe».
• «Ошибка UDK.exe».
• «Возникла ошибка в приложении UDK.exe. Приложение будет закрыто. Приносим извинения за неудобства».
• «UDK.exe не является допустимым приложением Win32».
• «UDK.exe не запущен».
• «UDK.exe не найден».
• «Не удается найти UDK.exe».
• «Ошибка запуска программы: UDK.exe».
• «Неверный путь к приложению: UDK.exe.»

Эти сообщения об ошибках .exe могут появляться во время установки программы, во время выполнения соответствующей программы, Unreal Development Kit, при запуске или завершении работы Windows, или даже во время установки операционной системы Windows. Отслеживание момента появления ошибки UDK.exe является важной информацией, когда дело доходит до устранения неполадок.

Как исправить UDK.exe

Аккуратный и опрятный компьютер — это один из лучших способов избежать проблем с Unreal Development Kit. Это означает выполнение сканирования на наличие вредоносных программ, очистку жесткого диска cleanmgr и ПФС / SCANNOWудаление ненужных программ, мониторинг любых автозапускаемых программ (с помощью msconfig) и включение автоматических обновлений Windows. Не забывайте всегда делать регулярные резервные копии или хотя бы определять точки восстановления.

Если у вас возникла более серьезная проблема, постарайтесь запомнить последнее, что вы сделали, или последнее, что вы установили перед проблемой. Использовать resmon Команда для определения процессов, вызывающих вашу проблему. Даже в случае серьезных проблем вместо переустановки Windows вы должны попытаться восстановить вашу установку или, в случае Windows 8, выполнив команду DISM.exe / Online / Очистка-изображение / Восстановить здоровье, Это позволяет восстановить операционную систему без потери данных.

Чтобы помочь вам проанализировать процесс UDK.exe на вашем компьютере, вам могут пригодиться следующие программы: Менеджер задач безопасности отображает все запущенные задачи Windows, включая встроенные скрытые процессы, такие как мониторинг клавиатуры и браузера или записи автозапуска. Единый рейтинг риска безопасности указывает на вероятность того, что это шпионское ПО, вредоносное ПО или потенциальный троянский конь. Это антивирус обнаруживает и удаляет со своего жесткого диска шпионское и рекламное ПО, трояны, кейлоггеры, вредоносное ПО и трекеры.

Обновлено в январе 2023 г .:

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

  • Шаг 1: Скачать PC Repair & Optimizer Tool (Windows 10, 8, 7, XP, Vista — Microsoft Gold Certified).
  • Шаг 2: Нажмите «Начать сканирование”, Чтобы найти проблемы реестра Windows, которые могут вызывать проблемы с ПК.
  • Шаг 3: Нажмите «Починить все», Чтобы исправить все проблемы.

скачать
(опциональное предложение для Reimage — Cайт | Лицензионное соглашение | Персональные данные | Удалить)

Загрузите или переустановите UDK.exe

Вход в музей Мадам Тюссо не рекомендуется загружать замещающие exe-файлы с любых сайтов загрузки, так как они могут содержать вирусы и т. д. Если вам нужно скачать или переустановить UDK.exe, мы рекомендуем переустановить основное приложение, связанное с ним. Unreal Development Kit.

Информация об операционной системе

Ошибки UDK.exe могут появляться в любых из нижеперечисленных операционных систем Microsoft Windows:

  • Windows 10
  • Windows 8.1
  • Windows 7
  • Windows Vista
  • Windows XP
  • Windows ME
  • Windows 2000

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

Системное администрирование, Разработка под Windows, Читальный зал, PowerShell, Блог компании SkillFactory


Рекомендация: подборка платных и бесплатных курсов 3D-моделирования — https://katalog-kursov.ru/

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


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

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

Отдел IT

Отдел IT

Перейдя на новое место, я предложил автоматизировать настройку пользовательских ОС. Так, через пару недель, появился первый прародитель данного модуля — примитивный .reg-файл для настройки Windows 8.1. Но я и ему был рад, так как всё было в новинку.

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

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

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

Изначально, конечно, скрипт состоял лишь из одного файла с расширением .ps1. Пользователям приходилось править код и комментировать целые функции, чтобы настроить под себя. То ещё удовольствие было…

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

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

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

Мой лик, когда ожидаю приглашения

Мой лик, когда ожидаю приглашения

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

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

Мой лик, когда получил приглашение

Мой лик, когда получил приглашение

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

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

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

Иконка Sophia Script

Иконка Sophia Script

Немаловажным событием стало также знакомство с Дэвидом из Канады, который решил сделать самостоятельно

графическую надстройку для Sophia Script

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

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

Sophia Script Wrapper

Sophia Script Wrapper

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

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

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

Версия

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

Билд

Архитектура

Издания

21H1

Spring 2021 Update

19043

x64

Home/Pro/Enterprise

20H2

October 2020 Update

19042

x64

Home/Pro/Enterprise

2004

May 2020 Update

19041

x64

Home/Pro/Enterprise

1809

LTSC Enterprise 2019

17763

x64

Enterprise

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

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

Было/Стало

Было/Стало

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

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

«Windows.Management.Deployment.PackageManager»

[Windows.Management.Deployment.PackageManager, Windows.Web, ContentType = WindowsRuntime]::new().FindPackages() | Select-Object -Property DisplayName -ExpandProperty Id | Select-Object -Property Name, DisplayName

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

Name                                        DisplayName                                          
----                                        -----------                                          
1527c705-839a-4832-9118-54d4Bd6a0c89                                                             
c5e2524a-ea46-4f67-841f-6a9465d9d515        Проводник                                            
E2A4F912-2574-4A75-9BB0-0D023378592B        Сопоставитель приложений                             
F46D4000-FD22-4DB4-AC8E-4E1DDDE828FE        Диалоговое окно "Добавить рекомендованные папки"     
Microsoft.AAD.BrokerPlugin                  Учетная запись компании или учебного заведения       
Microsoft.AccountsControl                   Электронная почта и учетные записи                   
Microsoft.AsyncTextService                  AsyncTextService                                     
Microsoft.BioEnrollment                     Настройка Windows Hello                              
Microsoft.CredDialogHost                    Диалоговое окно учетных данных                       
Microsoft.ECApp                             Управление глазами                                   
Microsoft.LockApp                           Экран блокировки Windows по умолчанию                
Microsoft.MicrosoftEdgeDevToolsClient       Клиент средств разработчика для Microsoft Edge       
Microsoft.MicrosoftEdge                                                                          
Microsoft.Win32WebViewHost                  Веб-средство просмотра классических приложений       
Microsoft.Windows.Apprep.ChxApp             SmartScreen Защитника Windows                        
Microsoft.Windows.AssignedAccessLockApp     Приложение "Блокировка" при ограниченном доступе     
Microsoft.Windows.CallingShellApp           Видеозвонки                                          
Microsoft.Windows.CapturePicker             CapturePicker                                        
Microsoft.Windows.CloudExperienceHost       Ваша учетная запись                                  
Microsoft.Windows.ContentDeliveryManager    Содержимое, предоставленное корпорацией Майкрософт   
Microsoft.Windows.NarratorQuickStart        Экранный диктор                                      
Microsoft.Windows.OOBENetworkCaptivePortal  Поток портала авторизации                            
Microsoft.Windows.OOBENetworkConnectionFlow Последовательность действий при сетевом подключении  
Microsoft.Windows.ParentalControls          Функции семьи учетных записей Майкрософт             
Microsoft.Windows.PeopleExperienceHost      Windows Shell Experience                             
Microsoft.Windows.PinningConfirmationDialog PinningConfirmationDialog                            
Microsoft.Windows.Search                    Windows Search                                       
Microsoft.Windows.SecHealthUI               Безопасность Windows                                 
Microsoft.Windows.SecureAssessmentBrowser   Тестирование                                         
Microsoft.Windows.ShellExperienceHost       Windows Shell Experience                             
Microsoft.Windows.StartMenuExperienceHost   Запустить                                            
Microsoft.Windows.XGpuEjectDialog           Безопасное извлечение устройства                     
Microsoft.XboxGameCallableUI                Xbox Game UI                                         
MicrosoftWindows.Client.CBS                 Windows Feature Experience Pack                      
MicrosoftWindows.UndockedDevKit             UDK Package                                          
NcsiUwpApp                                  NcsiUwpApp                                           
Windows.CBSPreview                          Предварительный просмотр штрихкодов Windows          
windows.immersivecontrolpanel               Параметры                                            
Windows.PrintDialog                         PrintDialog                                          
Microsoft.Services.Store.Engagement         Microsoft Engagement Framework                       
Microsoft.Services.Store.Engagement         Microsoft Engagement Framework                       
Microsoft.UI.Xaml.2.0                       Microsoft.UI.Xaml.2.0                                
Microsoft.VCLibs.140.00                     Microsoft Visual C++ 2015 UWP Runtime Package        
Microsoft.Advertising.Xaml                  Microsoft Advertising SDK for XAML                   
Microsoft.NET.Native.Framework.2.2          Microsoft .Net Native Framework Package 2.2          
Microsoft.NET.Native.Framework.2.2          Microsoft .Net Native Framework Package 2.2          
Microsoft.VCLibs.140.00                     Microsoft Visual C++ 2015 UWP Runtime Package        
Microsoft.VCLibs.140.00                     Microsoft Visual C++ 2015 UWP Runtime Package        
Microsoft.NET.Native.Runtime.2.2            Microsoft .Net Native Runtime Package 2.2            
Microsoft.NET.Native.Runtime.2.2            Microsoft .Net Native Runtime Package 2.2            
Microsoft.VCLibs.140.00.UWPDesktop          Microsoft Visual C++ 2015 UWP Desktop Runtime Package
Microsoft.VCLibs.140.00.UWPDesktop          Microsoft Visual C++ 2015 UWP Desktop Runtime Package
Microsoft.UI.Xaml.2.1                       Microsoft.UI.Xaml.2.1                                
Microsoft.UI.Xaml.2.1                       Microsoft.UI.Xaml.2.1                                
Microsoft.UI.Xaml.2.0                       Microsoft.UI.Xaml.2.0                                
Microsoft.UI.Xaml.2.3                       Microsoft.UI.Xaml.2.3                                
Microsoft.UI.Xaml.2.3                       Microsoft.UI.Xaml.2.3                                
Microsoft.UI.Xaml.2.4                       Microsoft.UI.Xaml.2.4                                
Microsoft.UI.Xaml.2.4                       Microsoft.UI.Xaml.2.4                                
Microsoft.ScreenSketch                      Набросок на фрагменте экрана                         
Microsoft.NET.Native.Framework.1.7          Microsoft .Net Native Framework Package 1.7          
Microsoft.NET.Native.Framework.1.7          Microsoft .Net Native Framework Package 1.7          
Microsoft.NET.Native.Runtime.1.7            Microsoft .Net Native Runtime Package 1.7            
Microsoft.NET.Native.Runtime.1.7            Microsoft .Net Native Runtime Package 1.7            
Microsoft.VCLibs.120.00                     Microsoft Visual C++ Runtime Package                 
Microsoft.VCLibs.120.00                     Microsoft Visual C++ Runtime Package                 
Microsoft.VCLibs.140.00.UWPDesktop          Microsoft Visual C++ 2015 UWP Desktop Runtime Package
Microsoft.VCLibs.140.00.UWPDesktop          Microsoft Visual C++ 2015 UWP Desktop Runtime Package
Microsoft.VCLibs.140.00                     Microsoft Visual C++ 2015 UWP Runtime Package        
Microsoft.VCLibs.140.00                     Microsoft Visual C++ 2015 UWP Runtime Package        
Microsoft.WebpImageExtension                Расширения для изображений Webp                      
Microsoft.DesktopAppInstaller               Установщик приложения                                
Microsoft.NET.Native.Framework.2.2          Microsoft .Net Native Framework Package 2.2          
Microsoft.NET.Native.Framework.2.2          Microsoft .Net Native Framework Package 2.2          
AppUp.IntelGraphicsExperience               Центр управления графикой Intel®                     
Microsoft.Windows.StartMenuExperienceHost   Запустить                                            
Microsoft.Windows.ShellExperienceHost       Windows Shell Experience                             
Microsoft.Windows.AssignedAccessLockApp     Приложение "Блокировка" при ограниченном доступе     
Microsoft.WindowsTerminal                   Windows Terminal                                     
Microsoft.AV1VideoExtension                 AV1 Video Extension                                  
Microsoft.HEIFImageExtension                Расширения для изображений HEIF                      
Microsoft.Windows.Photos                    Фотографии (Майкрософт)                              
Microsoft.UI.Xaml.2.5                       Microsoft.UI.Xaml.2.5                                
Microsoft.UI.Xaml.2.5                       Microsoft.UI.Xaml.2.5                                
Microsoft.WindowsStore                      Microsoft Store                                      
Microsoft.StorePurchaseApp                  Узел для покупок в Store                             
Microsoft.LanguageExperiencePackru-RU       Пакет локализованного интерфейса на русском          
Microsoft.MicrosoftEdge                     Microsoft Edge                                       
Microsoft.VP9VideoExtensions                Расширения для VP9-видео                             
MicrosoftWindows.Client.WebExperience       Windows Web Experience Pack                          
Microsoft.WebMediaExtensions                Расширения для интернет-мультимедиа                  
Microsoft.HEVCVideoExtension                Расширения для видео HEVC от производителя устройства
MicrosoftWindows.Client.CBS                 Windows Feature Experience Pack                      
Microsoft.MicrosoftEdge.Stable              Microsoft Edge     

Первые попытки переписать функцию удаления UWP-пакетов

Первые попытки переписать функцию удаления UWP-пакетов

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

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

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

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

Import-Module -Name Microsoft.PowerShell.Management, PackageManagement, Appx -UseWindowsPowerShell

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

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

Add-Type -AssemblyName "$PSScriptRootLibrariesWinRT.Runtime.dll"
Add-Type -AssemblyName "$PSScriptRootLibrariesMicrosoft.Windows.SDK.NET.dll"

$AppxPackages = Get-AppxPackage -PackageTypeFilter Bundle -AllUsers
$PackagesIds = [Windows.Management.Deployment.PackageManager]::new().FindPackages().AdditionalTypeData[[Collections.IEnumerable].TypeHandle] | Select-Object -Property DisplayName -ExpandProperty Id | Select-Object -Property Name, DisplayName

foreach ($AppxPackage in $AppxPackages)
{
	$PackageId = $PackagesIds | Where-Object -FilterScript {$_.Name -eq $AppxPackage.Name}

	if (-not $PackageId)
	{
		continue
	}

	[PSCustomObject]@{
		Name = $AppxPackage.Name
		PackageFullName = $AppxPackage.PackageFullName
		DisplayName = $PackageId.DisplayName
	}
}

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

Name                                         PackageFullName                                                                DisplayName
----                                         ---------------                                                                -----------
RealtekSemiconductorCorp.RealtekAudioControl RealtekSemiconductorCorp.RealtekAudioControl_1.1.137.0_neutral_~_dt26b99r8h8gj Realtek Audio Control
Microsoft.MicrosoftStickyNotes               Microsoft.MicrosoftStickyNotes_3.7.142.0_neutral_~_8wekyb3d8bbwe               Microsoft Sticky Notes
Microsoft.ScreenSketch                       Microsoft.ScreenSketch_2020.814.2355.0_neutral_~_8wekyb3d8bbwe                 Набросок на фрагменте экрана
Microsoft.WindowsCalculator                  Microsoft.WindowsCalculator_2020.2008.2.0_neutral_~_8wekyb3d8bbwe              Windows Calculator
AppUp.IntelGraphicsExperience                AppUp.IntelGraphicsExperience_1.100.3282.0_neutral_~_8j3eq9eme6ctt             Центр управления графикой Intel®
Microsoft.MicrosoftSolitaireCollection       Microsoft.MicrosoftSolitaireCollection_4.7.10142.0_neutral_~_8wekyb3d8bbwe     Microsoft Solitaire Collection
Microsoft.DesktopAppInstaller                Microsoft.DesktopAppInstaller_2020.1112.20.0_neutral_~_8wekyb3d8bbwe           Установщик приложения
Microsoft.WindowsStore                       Microsoft.WindowsStore_12101.1001.1413.0_neutral_~_8wekyb3d8bbwe               Microsoft Store
Microsoft.Windows.Photos                     Microsoft.Windows.Photos_2020.20120.4004.0_neutral_~_8wekyb3d8bbwe             Фотографии (Майкрософт)
Microsoft.WebMediaExtensions                 Microsoft.WebMediaExtensions_1.0.40471.0_neutral_~_8wekyb3d8bbwe               Расширения для интернет-мультим…
Microsoft.WindowsCamera                      Microsoft.WindowsCamera_2021.105.10.0_neutral_~_8wekyb3d8bbwe                  Камера Windows
Microsoft.StorePurchaseApp                   Microsoft.StorePurchaseApp_12103.1001.813.0_neutral_~_8wekyb3d8bbwe            Узел для покупок в Store
Microsoft.WindowsTerminal                    Microsoft.WindowsTerminal_2021.413.2245.0_neutral_~_8wekyb3d8bbwe              Windows Terminal
Microsoft.WindowsTerminalPreview             Microsoft.WindowsTerminalPreview_2021.413.2303.0_neutral_~_8wekyb3d8bbwe       Windows Terminal Preview

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

Восстановление удаленных UWP-приложений для текущего пользователя

Восстановление удаленных UWP-приложений для текущего пользователя

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

$Bundles = (Get-AppXPackage -PackageTypeFilter Framework -AllUsers).PackageFullName
Get-ChildItem -Path "HKLM:SOFTWAREClassesLocal SettingsSoftwareMicrosoftWindowsCurrentVersionAppModelPackageRepositoryPackages" | ForEach-Object -Process {
	Get-ItemProperty -Path $_.PSPath
} | Where-Object -FilterScript {$_.Path -match "Program Files"} | Where-Object -FilterScript {$_.PSChildName -notin $Bundles} | Where-Object -FilterScript {$_.Path -match "x64"} | ForEach-Object -Process {"$($_.Path)AppxManifest.xml"}

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

C:Program FilesWindowsAppsA025C540.Yandex.Music_4.40.7713.0_x64__vfvw9svesycw6AppxManifest.xml
C:Program FilesWindowsAppsMicrosoft.549981C3F5F10_2.2103.17603.0_x64__8wekyb3d8bbweAppxManifest.xml
C:Program FilesWindowsAppsMicrosoft.BingNews_1.0.6.0_x64__8wekyb3d8bbweAppxManifest.xml
C:Program FilesWindowsAppsMicrosoft.BingWeather_1.0.6.0_x64__8wekyb3d8bbweAppxManifest.xml
C:Program FilesWindowsAppsMicrosoft.DesktopAppInstaller_1.11.10771.0_x64__8wekyb3d8bbweAppxManifest.xml
C:Program FilesWindowsAppsMicrosoft.GamingApp_1.0.1.0_x64__8wekyb3d8bbweAppxManifest.xml
C:Program FilesWindowsAppsMicrosoft.GetHelp_10.2102.40951.0_x64__8wekyb3d8bbweAppxManifest.xml
C:Program FilesWindowsAppsMicrosoft.Getstarted_10.2.40751.0_x64__8wekyb3d8bbweAppxManifest.xml
C:Program FilesWindowsAppsMicrosoft.HEIFImageExtension_1.0.40978.0_x64__8wekyb3d8bbweAppxManifest.xml
C:Program FilesWindowsAppsMicrosoft.MicrosoftOfficeHub_18.2008.12711.0_x64__8wekyb3d8bbweAppxManifest.xml
C:Program FilesWindowsAppsMicrosoft.MicrosoftSolitaireCollection_4.9.4072.0_x64__8wekyb3d8bbweAppxManifest.xml
C:Program FilesWindowsAppsMicrosoft.MicrosoftStickyNotes_1.8.15.0_x64__8wekyb3d8bbweAppxManifest.xml
C:Program FilesWindowsAppsMicrosoft.Paint_10.2103.1.0_x64__8wekyb3d8bbweAppxManifest.xml
C:Program FilesWindowsAppsMicrosoft.People_10.1909.12456.0_x64__8wekyb3d8bbweAppxManifest.xml
C:Program FilesWindowsAppsMicrosoft.PowerAutomateDesktop_1.0.31.0_x64__8wekyb3d8bbweAppxManifest.xml
C:Program FilesWindowsAppsMicrosoft.ScreenSketch_11.2103.13.0_x64__8wekyb3d8bbweAppxManifest.xml
C:Program FilesWindowsAppsMicrosoft.SkypeApp_14.53.77.0_x64__kzf8qxf38zg5cAppxManifest.xml
C:Program FilesWindowsAppsMicrosoft.StorePurchaseApp_12103.1001.8.0_x64__8wekyb3d8bbweAppxManifest.xml
C:Program FilesWindowsAppsMicrosoft.Todos_0.41.4902.0_x64__8wekyb3d8bbweAppxManifest.xml
C:Program FilesWindowsAppsMicrosoft.VP9VideoExtensions_1.0.40631.0_x64__8wekyb3d8bbweAppxManifest.xml
C:Program FilesWindowsAppsMicrosoft.WebMediaExtensions_1.0.40831.0_x64__8wekyb3d8bbweAppxManifest.xml
C:Program FilesWindowsAppsMicrosoft.WebpImageExtension_1.0.32731.0_x64__8wekyb3d8bbweAppxManifest.xml
C:Program FilesWindowsAppsMicrosoft.Windows.Photos_2021.21030.17018.0_x64__8wekyb3d8bbweAppxManifest.xml
C:Program FilesWindowsAppsMicrosoft.WindowsAlarms_1.0.38.0_x64__8wekyb3d8bbweAppxManifest.xml
C:Program FilesWindowsAppsMicrosoft.WindowsCalculator_10.2103.8.0_x64__8wekyb3d8bbweAppxManifest.xml
C:Program FilesWindowsAppsMicrosoft.WindowsCamera_2020.503.58.0_x64__8wekyb3d8bbweAppxManifest.xml
C:Program FilesWindowsAppsmicrosoft.windowscommunicationsapps_16005.13426.20688.0_x64__8wekyb3d8bbweAppxManifest.xml
C:Program FilesWindowsAppsMicrosoft.WindowsFeedbackHub_1.2009.10531.0_x64__8wekyb3d8bbweAppxManifest.xml
C:Program FilesWindowsAppsMicrosoft.WindowsMaps_1.0.27.0_x64__8wekyb3d8bbweAppxManifest.xml
C:Program FilesWindowsAppsMicrosoft.WindowsNotepad_10.2103.6.0_x64__8wekyb3d8bbweAppxManifest.xml
C:Program FilesWindowsAppsMicrosoft.WindowsSoundRecorder_1.0.42.0_x64__8wekyb3d8bbweAppxManifest.xml
C:Program FilesWindowsAppsMicrosoft.WindowsStore_12103.1001.11.0_x64__8wekyb3d8bbweAppxManifest.xml
C:Program FilesWindowsAppsMicrosoft.WindowsTerminal_1.6.10571.0_x64__8wekyb3d8bbweAppxManifest.xml
C:Program FilesWindowsAppsMicrosoft.Xbox.TCUI_1.23.28002.0_x64__8wekyb3d8bbweAppxManifest.xml
C:Program FilesWindowsAppsMicrosoft.XboxGameOverlay_1.54.4001.0_x64__8wekyb3d8bbweAppxManifest.xml
C:Program FilesWindowsAppsMicrosoft.XboxGamingOverlay_5.621.4072.0_x64__8wekyb3d8bbweAppxManifest.xml
C:Program FilesWindowsAppsMicrosoft.XboxIdentityProvider_12.67.21001.0_x64__8wekyb3d8bbweAppxManifest.xml
C:Program FilesWindowsAppsMicrosoft.XboxSpeechToTextOverlay_1.21.13002.0_x64__8wekyb3d8bbweAppxManifest.xml
C:Program FilesWindowsAppsMicrosoft.YourPhone_1.21022.202.0_x64__8wekyb3d8bbweAppxManifest.xml
C:Program FilesWindowsAppsMicrosoft.ZuneMusic_10.21012.10511.0_x64__8wekyb3d8bbweAppxManifest.xml
C:Program FilesWindowsAppsMicrosoft.ZuneVideo_10.21021.10311.0_x64__8wekyb3d8bbweAppxManifest.xml

PS C:Windowssystem32WindowsPowerShellv1.0> 

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

# Тут нельзя напрямую вписать -PackageTypeFilter Bundle, так как иначе не выдается нужное свойство InstallLocation. Только сравнивать с $Bundles
$Bundles = (Get-AppXPackage -PackageTypeFilter Bundle -AllUsers).Name
$AppxPackages = Get-AppxPackage -AllUsers | Where-Object -FilterScript {$_.PackageUserInformation -match "Staged"} | Where-Object -FilterScript {$_.Name -in $Bundles}
$PackagesIds = [Windows.Management.Deployment.PackageManager, Windows.Web, ContentType = WindowsRuntime]::new().FindPackages() | Select-Object -Property DisplayName -ExpandProperty Id | Select-Object -Property Name, DisplayName

foreach ($AppxPackage in $AppxPackages)
{
	$PackageId = $PackagesIds | Where-Object -FilterScript {$_.Name -eq $AppxPackage.Name}

	if (-not $PackageId)
	{
		continue
	}

	[PSCustomObject]@{
		Name            = $AppxPackage.Name
		PackageFullName = $AppxPackage.PackageFullName
		DisplayName     = $PackageId.DisplayName
		AppxManifest    = "$($AppxPackage.InstallLocation)AppxManifest.xml"
	}
}

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

# Re-register all UWP apps
$Bundles = (Get-AppXPackage -PackageTypeFilter Framework -AllUsers).PackageFullName
Get-ChildItem -Path "HKLM:SOFTWAREClassesLocal SettingsSoftwareMicrosoftWindowsCurrentVersionAppModelPackageRepositoryPackages" | ForEach-Object -Process {
	Get-ItemProperty -Path $_.PSPath
} | Where-Object -FilterScript {$_.Path -match "Program Files"} | Where-Object -FilterScript {$_.PSChildName -notin $Bundles} | Where-Object -FilterScript {$_.Path -match "x64"} | ForEach-Object -Process {"$($_.Path)AppxManifest.xml"} | Add-AppxPackage -Register -ForceApplicationShutdown -ForceUpdateFromAnyVersion -DisableDevelopmentMode -Verbose
# Check for UWP apps updates
Get-CimInstance -Namespace "Rootcimv2mdmdmmap" -ClassName "MDM_EnterpriseModernAppManagement_AppManagement01" | Invoke-CimMethod -MethodName UpdateScanMethod

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

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

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

Get-WindowsOptionalFeature -Online | ForEach-Object -Process {Get-WindowsOptionalFeature -FeatureName $_.FeatureName -Online} | Select-Object -Property FeatureName, DisplayName | Format-Table -AutoSize

Было

Было
Стало
Стало
Наши лики, когда, наконец, всё заработало
Наши лики, когда, наконец, всё заработало

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

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

if ($RU)
{
	
}
else
{
	
}

Отныне в корне папки скрипта находятся папки с названием кода локализации: например, ru-RU, en-US и так далее, где внутри находится файл локализации вида UnsupportedOSBitness = The script supports Windows 10 x64 only. Получить значение локализации можно командой $PSUICulture. 

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

# Sophia.psd1
ConvertFrom-StringData -StringData @'
UnsupportedOSBitness = The script supports Windows 10 x64 only
'@

# Sophia.ps1
Import-LocalizedData -BindingVariable Global:Localization -FileName Sophia
$Localization.UnsupportedOSBitness

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

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

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

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

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

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

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

# Extract a localized string from shell32.dll
$Signature = @{
	Namespace = "WinAPI"
	Name = "GetStr"
	Language = "CSharp"
	MemberDefinition = @"
[DllImport("kernel32.dll", CharSet = CharSet.Auto)]
public static extern IntPtr GetModuleHandle(string lpModuleName);
[DllImport("user32.dll", CharSet = CharSet.Auto)]
internal static extern int LoadString(IntPtr hInstance, uint uID, StringBuilder lpBuffer, int nBufferMax);
public static string GetString(uint strId)
{
	IntPtr intPtr = GetModuleHandle("shell32.dll");
	StringBuilder sb = new StringBuilder(255);
	LoadString(intPtr, strId, sb, sb.Capacity);
	return sb.ToString();
}
"@
}

if (-not ("WinAPI.GetStr" -as [type]))
{
	Add-Type @Signature -Using System.Text
}

# Pin to Start: 51201
# Unpin from Start: 51394
$LocalizedString = [WinAPI.GetStr]::GetString(51201)

# Trying to pin the Command Prompt shortcut to Start
$Target = Get-Item -Path "$env:APPDATAMicrosoftWindowsStart MenuProgramsSystem ToolsCommand Prompt.lnk"
$Shell = New-Object -ComObject Shell.Application
$Folder = $Shell.NameSpace($Target.DirectoryName)
$file = $Folder.ParseName($Target.Name)
$Verb = $File.Verbs() | Where-Object -FilterScript {$_.Name -eq $LocalizedString}
$Verb.DoIt()

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

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

Мы знаем, что текущий макет начального экрана можно выгрузить в формате XML. Но, даже если его настроить должным образом, импортировать макет в профиль текущего пользователя не получится: Import-StartLayout -LayoutPath D:Layout.xml импортирует макеты начального экрана и панели задач только для новых пользователей.

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

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

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

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

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

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

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

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

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

Код целиком:

<#
	.SYNOPSIS
	Configure the Start tiles

	.PARAMETER ControlPanel
	Pin the "Control Panel" shortcut to Start

	.PARAMETER DevicesPrinters
	Pin the "Devices & Printers" shortcut to Start

	.PARAMETER PowerShell
	Pin the "Windows PowerShell" shortcut to Start

	.PARAMETER UnpinAll
	Unpin all the Start tiles

	.EXAMPLE
	.Pin.ps1 -Tiles ControlPanel, DevicesPrinters, PowerShell

	.EXAMPLE
	.Pin.ps1 -UnpinAll

	.EXAMPLE
	.Pin.ps1 -UnpinAll -Tiles ControlPanel, DevicesPrinters, PowerShell

	.EXAMPLE
	.Pin.ps1 -UnpinAll -Tiles ControlPanel

	.EXAMPLE
	.Pin.ps1 -Tiles ControlPanel -UnpinAll

	.LINK
	https://github.com/farag2/Windows-10-Sophia-Script

	.NOTES
	Separate arguments with comma
	Current user
#>
[CmdletBinding()]
param
(
	[Parameter(
		Mandatory = $false,
		Position = 0
	)]
	[switch]
	$UnpinAll,

	[Parameter(
		Mandatory = $false,
		Position = 1
	)]
	[ValidateSet("ControlPanel", "DevicesPrinters", "PowerShell")]
	[string[]]
	$Tiles,

	[string]
	$StartLayout = "$PSScriptRootStartLayout.xml"
)

begin
{
	# Unpin all the Start tiles
	if ($UnpinAll)
	{
		Export-StartLayout -Path $StartLayout -UseDesktopApplicationID

		[xml]$XML = Get-Content -Path $StartLayout -Encoding UTF8 -Force
		$Groups = $XML.LayoutModificationTemplate.DefaultLayoutOverride.StartLayoutCollection.StartLayout.Group

		foreach ($Group in $Groups)
		{
			# Removing all groups inside XML
			$Group.ParentNode.RemoveChild($Group) | Out-Null
		}

		$XML.Save($StartLayout)
	}
}

process
{
	# Extract strings from shell32.dll using its' number
	$Signature = @{
		Namespace = "WinAPI"
		Name = "GetStr"
		Language = "CSharp"
		MemberDefinition = @"
[DllImport("kernel32.dll", CharSet = CharSet.Auto)]
public static extern IntPtr GetModuleHandle(string lpModuleName);
[DllImport("user32.dll", CharSet = CharSet.Auto)]
internal static extern int LoadString(IntPtr hInstance, uint uID, StringBuilder lpBuffer, int nBufferMax);
public static string GetString(uint strId)
{
	IntPtr intPtr = GetModuleHandle("shell32.dll");
	StringBuilder sb = new StringBuilder(255);
	LoadString(intPtr, strId, sb, sb.Capacity);
	return sb.ToString();
}
"@
	}

	if (-not ("WinAPI.GetStr" -as [type]))
	{
		Add-Type @Signature -Using System.Text
	}

	# Extract the localized "Devices and Printers" string from shell32.dll
	$DevicesPrinters = [WinAPI.GetStr]::GetString(30493)

	# We need to get the AppID because it's auto generated
	$Script:DevicesPrintersAppID = (Get-StartApps | Where-Object -FilterScript {$_.Name -eq $DevicesPrinters}).AppID

	$Parameters = @(
		# Control Panel hash table
		@{
			# Special name for Control Panel
			Name = "ControlPanel"
			Size = "2x2"
			Column = 0
			Row = 0
			AppID = "Microsoft.Windows.ControlPanel"
		},
		# "Devices & Printers" hash table
		@{
			# Special name for "Devices & Printers"
			Name = "DevicesPrinters"
			Size   = "2x2"
			Column = 2
			Row    = 0
			AppID  = $Script:DevicesPrintersAppID
		},
		# Windows PowerShell hash table
		@{
			# Special name for Windows PowerShell
			Name = "PowerShell"
			Size = "2x2"
			Column = 4
			Row = 0
			AppID = "{1AC14E77-02E7-4E5D-B744-2EB1AE5198B7}WindowsPowerShellv1.0powershell.exe"
		}
	)

	# Valid columns to place tiles in
	$ValidColumns = @(0, 2, 4)
	[string]$StartLayoutNS = "http://schemas.microsoft.com/Start/2014/StartLayout"

	# Add pre-configured hastable to XML
	function Add-Tile
	{
		param
		(
			[string]
			$Size,

			[int]
			$Column,

			[int]
			$Row,

			[string]
			$AppID
		)

		[string]$elementName = "start:DesktopApplicationTile"
		[Xml.XmlElement]$Table = $xml.CreateElement($elementName, $StartLayoutNS)
		$Table.SetAttribute("Size", $Size)
		$Table.SetAttribute("Column", $Column)
		$Table.SetAttribute("Row", $Row)
		$Table.SetAttribute("DesktopApplicationID", $AppID)

		$Table
	}

	if (-not (Test-Path -Path $StartLayout))
	{
		# Export the current Start layout
		Export-StartLayout -Path $StartLayout -UseDesktopApplicationID
	}

	[xml]$XML = Get-Content -Path $StartLayout -Encoding UTF8 -Force

	foreach ($Tile in $Tiles)
	{
		switch ($Tile)
		{
			ControlPanel
			{
				$ControlPanel = [WinAPI.GetStr]::GetString(12712)
				Write-Verbose -Message ("The `"{0}`" shortcut is being pinned to Start" -f $ControlPanel) -Verbose
			}
			DevicesPrinters
			{
				$DevicesPrinters = [WinAPI.GetStr]::GetString(30493)
				Write-Verbose -Message ("The `"{0}`" shortcut is being pinned to Start" -f $DevicesPrinters) -Verbose

				# Create the old-style "Devices and Printers" shortcut in the Start menu
				$Shell = New-Object -ComObject Wscript.Shell
				$Shortcut = $Shell.CreateShortcut("$env:APPDATAMicrosoftWindowsStart menuProgramsSystem Tools$DevicesPrinters.lnk")
				$Shortcut.TargetPath = "control"
				$Shortcut.Arguments = "printers"
				$Shortcut.IconLocation = "$env:SystemRootsystem32DeviceCenter.dll"
				$Shortcut.Save()

				Start-Sleep -Seconds 3
			}
			PowerShell
			{
				Write-Verbose -Message ("The `"{0}`" shortcut is being pinned to Start" -f "Windows PowerShell") -Verbose
			}
		}

		$Parameter = $Parameters | Where-Object -FilterScript {$_.Name -eq $Tile}
		$Group = $XML.LayoutModificationTemplate.DefaultLayoutOverride.StartLayoutCollection.StartLayout.Group | Where-Object -FilterScript {$_.Name -eq "Sophia Script"}

		# If the "Sophia Script" group exists in Start
		if ($Group)
		{
			$DesktopApplicationID = ($Parameters | Where-Object -FilterScript {$_.Name -eq $Tile}).AppID

			if (-not ($Group.DesktopApplicationTile | Where-Object -FilterScript {$_.DesktopApplicationID -eq $DesktopApplicationID}))
			{
				# Calculate current filled columns
				$CurrentColumns = @($Group.DesktopApplicationTile.Column)
				# Calculate current free columns and take the first one
				$Column = (Compare-Object -ReferenceObject $ValidColumns -DifferenceObject $CurrentColumns).InputObject | Select-Object -First 1
				# If filled cells contain desired ones assign the first free column
				if ($CurrentColumns -contains $Parameter.Column)
				{
					$Parameter.Column = $Column
				}
				$Group.AppendChild((Add-Tile @Parameter)) | Out-Null
			}
		}
		else
		{
			# Create the "Sophia Script" group
			[Xml.XmlElement]$Group = $XML.CreateElement("start:Group", $StartLayoutNS)
			$Group.SetAttribute("Name","Sophia Script")
			$Group.AppendChild((Add-Tile @Parameter)) | Out-Null
			$XML.LayoutModificationTemplate.DefaultLayoutOverride.StartLayoutCollection.StartLayout.AppendChild($Group) | Out-Null
		}
	}

	$XML.Save($StartLayout)
}

end
{
	# Temporarily disable changing the Start menu layout
	if (-not (Test-Path -Path HKCU:SOFTWAREPoliciesMicrosoftWindowsExplorer))
	{
		New-Item -Path HKCU:SOFTWAREPoliciesMicrosoftWindowsExplorer -Force
	}
	New-ItemProperty -Path HKCU:SOFTWAREPoliciesMicrosoftWindowsExplorer -Name LockedStartLayout -Value 1 -Force
	New-ItemProperty -Path HKCU:SOFTWAREPoliciesMicrosoftWindowsExplorer -Name StartLayoutFile -Value $StartLayout -Force

	Start-Sleep -Seconds 3

	# Restart the Start menu
	Stop-Process -Name StartMenuExperienceHost -Force -ErrorAction Ignore

	Start-Sleep -Seconds 3

	# Open the Start menu to load the new layout
	$wshell = New-Object -ComObject WScript.Shell
	$wshell.SendKeys("^{ESC}")

	Start-Sleep -Seconds 3

	# Enable changing the Start menu layout
	Remove-ItemProperty -Path HKCU:SOFTWAREPoliciesMicrosoftWindowsExplorer -Name LockedStartLayout -Force -ErrorAction Ignore
	Remove-ItemProperty -Path HKCU:SOFTWAREPoliciesMicrosoftWindowsExplorer -Name StartLayoutFile -Force -ErrorAction Ignore

	Remove-Item -Path $StartLayout -Force

	Stop-Process -Name StartMenuExperienceHost -Force -ErrorAction Ignore

	Start-Sleep -Seconds 3

	# Open the Start menu to load the new layout
	$wshell = New-Object -ComObject WScript.Shell
	$wshell.SendKeys("^{ESC}")
}

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

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

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

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

[Windows.UI.Notifications.ToastNotificationManager, Windows.UI.Notifications, ContentType = WindowsRuntime] | Out-Null
[Windows.Data.Xml.Dom.XmlDocument, Windows.Data.Xml.Dom.XmlDocument, ContentType = WindowsRuntime] | Out-Null
[xml]$ToastTemplate = @"
<toast duration="Long">
	<visual>
		<binding template="ToastGeneric">
			<text>Уведомление</text>
			<group>
				<subgroup>
					<text hint-style="body" hint-wrap="true">Кэш обновлений Windows успешно удален</text>
				</subgroup>
			</group>
		</binding>
	</visual>
	<audio src="ms-winsoundevent:notification.default" />
</toast>
"@
$ToastXml = [Windows.Data.Xml.Dom.XmlDocument]::New()
$ToastXml.LoadXml($ToastTemplate.OuterXml)
$ToastMessage = [Windows.UI.Notifications.ToastNotification]::New($ToastXML)
[Windows.UI.Notifications.ToastNotificationManager]::CreateToastNotifier("windows.immersivecontrolpanel_cw5n1h2txyewy!microsoft.windows.immersivecontrolpanel").Show($ToastMessage)

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

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

Get-ChildItem -Path $env:TEMP -Recurse -Force | Where-Object {$_.CreationTime -lt (Get-Date).AddDays(-1)} | Remove-Item -Recurse -Force

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

(Get-Service -Name wuauserv).WaitForStatus('Stopped', '01:00:00')

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

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

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

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

$ProcessInfo = New-Object -TypeName System.Diagnostics.ProcessStartInfo
$ProcessInfo.FileName = "$env:SystemRootsystem32cleanmgr.exe"
$ProcessInfo.Arguments = "/sagerun:1337"
$ProcessInfo.UseShellExecute = $true
$ProcessInfo.WindowStyle = [System.Diagnostics.ProcessWindowStyle]::Minimized

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

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

Get-Process -Name cleanmgr | Stop-Process -Force
Get-Process -Name Dism | Stop-Process -Force
Get-Process -Name DismHost | Stop-Process -Force

$ProcessInfo = New-Object -TypeName System.Diagnostics.ProcessStartInfo
$ProcessInfo.FileName = "$env:SystemRootsystem32cleanmgr.exe"
$ProcessInfo.Arguments = "/sagerun:1337"
$ProcessInfo.UseShellExecute = $true
$ProcessInfo.WindowStyle = [System.Diagnostics.ProcessWindowStyle]::Minimized
$Process = New-Object -TypeName System.Diagnostics.Process
$Process.StartInfo = $ProcessInfo
$Process.Start() | Out-Null

Start-Sleep -Seconds 3

[int]$SourceMainWindowHandle = (Get-Process -Name cleanmgr | Where-Object -FilterScript {$_.PriorityClass -eq "BelowNormal"}).MainWindowHandle

function MinimizeWindow
{
	[CmdletBinding()]
	param
	(
		[Parameter(Mandatory = $true)]
		$Process
	)
	$ShowWindowAsync = @{
		Namespace = "WinAPI"
		Name = "Win32ShowWindowAsync"
		Language = "CSharp"
		MemberDefinition = @'
[DllImport("user32.dll")]
public static extern bool ShowWindowAsync(IntPtr hWnd, int nCmdShow);
'@
	}

	if (-not ("WinAPI.Win32ShowWindowAsync" -as [type]))
	{
		Add-Type @ShowWindowAsync
	}

	$MainWindowHandle = (Get-Process -Name $Process | Where-Object -FilterScript {$_.PriorityClass -eq "BelowNormal"}).MainWindowHandle
	[WinAPI.Win32ShowWindowAsync]::ShowWindowAsync($MainWindowHandle, 2)
}

while ($true)
{
	[int]$CurrentMainWindowHandle = (Get-Process -Name cleanmgr | Where-Object -FilterScript {$_.PriorityClass -eq "BelowNormal"}).MainWindowHandle

	if ($SourceMainWindowHandle -ne $CurrentMainWindowHandle)
	{
		MinimizeWindow -Process cleanmgr
		break
	}

	Start-Sleep -Milliseconds 5
}

$ProcessInfo = New-Object -TypeName System.Diagnostics.ProcessStartInfo
$ProcessInfo.FileName = "$env:SystemRootsystem32dism.exe"
$ProcessInfo.Arguments = "/Online /English /Cleanup-Image /StartComponentCleanup /NoRestart"
$ProcessInfo.UseShellExecute = $true
$ProcessInfo.WindowStyle = [System.Diagnostics.ProcessWindowStyle]::Minimized
$Process = New-Object -TypeName System.Diagnostics.Process
$Process.StartInfo = $ProcessInfo
$Process.Start() | Out-Null

Как видно из кода, $SourceMainWindowHandle первого окна ждёт, пока появится $CurrentMainWindowHandle второго окна, и, если, они не равны, то можно минимизировать новое окно. Дальше уже можно запускать DISM с ключами.

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

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

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

if (-not (Test-Path -Path Registry::HKEY_CLASSES_ROOTWindowsCleanup))
{
	New-Item -Path Registry::HKEY_CLASSES_ROOTWindowsCleanup -Force
}
New-ItemProperty -Path Registry::HKEY_CLASSES_ROOTWindowsCleanup -Name "(default)" -PropertyType String -Value "URL:WindowsCleanup" -Force
New-ItemProperty -Path Registry::HKEY_CLASSES_ROOTWindowsCleanup -Name "URL Protocol" -Value "" -Force
New-ItemProperty -Path Registry::HKEY_CLASSES_ROOTWindowsCleanup -Name EditFlags -PropertyType DWord -Value 2162688 -Force
if (-not (Test-Path -Path Registry::HKEY_CLASSES_ROOTshellopencommand))
{
	New-item -Path Registry::HKEY_CLASSES_ROOTWindowsCleanupshellopencommand -Force
}
# If "Run" clicked run the "Windows Cleanup" task
New-ItemProperty -Path Registry::HKEY_CLASSES_ROOTWindowsCleanupshellopencommand -Name "(default)" -PropertyType String -Value 'powershell.exe -Command "& {Start-ScheduledTask -TaskPath ''Sophia Script'' -TaskName ''Windows Cleanup''}"' -Force

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

<action arguments=»WindowsCleanup:» content=»$($Localization.Run)» activationType=»protocol»/>

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

# Persist the Settings notifications to prevent to immediately disappear from Action Center
if (-not (Test-Path -Path "HKCU:SOFTWAREMicrosoftWindowsCurrentVersionNotificationsSettingswindows.immersivecontrolpanel_cw5n1h2txyewy!microsoft.windows.immersivecontrolpanel"))
{
	New-Item -Path "HKCU:SOFTWAREMicrosoftWindowsCurrentVersionNotificationsSettingswindows.immersivecontrolpanel_cw5n1h2txyewy!microsoft.windows.immersivecontrolpanel" -Force
}
New-ItemProperty -Path "HKCU:SOFTWAREMicrosoftWindowsCurrentVersionNotificationsSettingswindows.immersivecontrolpanel_cw5n1h2txyewy!microsoft.windows.immersivecontrolpanel" -Name ShowInActionCenter -PropertyType DWord -Value 1 -Force

# Register the "WindowsCleanup" protocol to be able to run the scheduled task upon clicking on the "Run" button
if (-not (Test-Path -Path Registry::HKEY_CLASSES_ROOTWindowsCleanup))
{
	New-Item -Path Registry::HKEY_CLASSES_ROOTWindowsCleanup -Force
}
New-ItemProperty -Path Registry::HKEY_CLASSES_ROOTWindowsCleanup -Name "(default)" -PropertyType String -Value "URL:WindowsCleanup" -Force
New-ItemProperty -Path Registry::HKEY_CLASSES_ROOTWindowsCleanup -Name "URL Protocol" -Value "" -Force
New-ItemProperty -Path Registry::HKEY_CLASSES_ROOTWindowsCleanup -Name EditFlags -PropertyType DWord -Value 2162688 -Force
if (-not (Test-Path -Path Registry::HKEY_CLASSES_ROOTshellopencommand))
{
	New-item -Path Registry::HKEY_CLASSES_ROOTWindowsCleanupshellopencommand -Force
}
# If "Run" clicked run the "Windows Cleanup" task
New-ItemProperty -Path Registry::HKEY_CLASSES_ROOTWindowsCleanupshellopencommand -Name "(default)" -PropertyType String -Value 'powershell.exe -Command "& {Start-ScheduledTask -TaskPath ''Sophia Script'' -TaskName ''Windows Cleanup''}"' -Force

[Windows.UI.Notifications.ToastNotificationManager, Windows.UI.Notifications, ContentType = WindowsRuntime] | Out-Null
[Windows.Data.Xml.Dom.XmlDocument, Windows.Data.Xml.Dom.XmlDocument, ContentType = WindowsRuntime] | Out-Null
[xml]$ToastTemplate = @"
<toast duration="Long" scenario="reminder">
	<visual>
		<binding template="ToastGeneric">
<text>$($Localization.CleanupTaskNotificationTitle)</text>
<group>
	<subgroup>
		<text hint-style="title" hint-wrap="true">$($Localization.CleanupTaskNotificationEventTitle)</text>
	</subgroup>
</group>
<group>
	<subgroup>
		<text hint-style="body" hint-wrap="true">$($Localization.CleanupTaskNotificationEvent)</text>
	</subgroup>
</group>
		</binding>
	</visual>
	<audio src="ms-winsoundevent:notification.default" />
	<actions>
		<input id="SnoozeTimer" type="selection" title="$($Localization.CleanupTaskNotificationSnoozeInterval)" defaultInput="1">
<selection id="1" content="$($Localization.Minute)" />
<selection id="30" content="$($Localization.Minute)" />
<selection id="240" content="$($Localization.Minute)" />
		</input>
		<action activationType="system" arguments="snooze" hint-inputId="SnoozeTimer" content="" id="test-snooze"/>
		<action arguments="WindowsCleanup:" content="$($Localization.Run)" activationType="protocol"/>
		<action arguments="dismiss" content="" activationType="system"/>
	</actions>
</toast>
"@
$ToastXml = [Windows.Data.Xml.Dom.XmlDocument]::New()
$ToastXml.LoadXml($ToastTemplate.OuterXml)
$ToastMessage = [Windows.UI.Notifications.ToastNotification]::New($ToastXML)
[Windows.UI.Notifications.ToastNotificationManager]::CreateToastNotifier("windows.immersivecontrolpanel_cw5n1h2txyewy!microsoft.windows.immersivecontrolpanel").Show($ToastMessage)

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

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

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

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

Еще одна забавная, но крайне полезная функция даёт возможность открывать файлы формата .heic и .heif.

Расширение крайне полезное, так как все современные телефоны умеют делать фотографии в формате HEIC, но по умолчанию Windows 10 не умеет открывать такие файлы, предлагая купить расширение в Microsoft Store по цене в 0,99 $. Но мало кто знает, что есть скрытая страница от поиска этого же самого расширения, но предназначенного для OEM-производителей. Эту же страницу можно открыть вручную, выполнив через Win+R или через PowerShell: ms-windows-store://pdp/?ProductId=9n4wgh0z6vhq

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

$API = "https://store.rg-adguard.net/api/GetFiles"
# HEVC Video Extensions from Device Manufacturer
$ProductURL = "https://www.microsoft.com/store/productId/9n4wgh0z6vhq"

$Body = @{
	"type" = "url"
	"url"  = $ProductURL
	"ring" = "Retail"
	"lang" = "en-US"
}
$Raw = Invoke-RestMethod -Method Post -Uri $API -ContentType 'application/x-www-form-urlencoded' -Body $Body

# Parsing the page
$Raw | Select-String -Pattern '<tr style.*<a href="(?<url>.*)"s.*>(?<text>.*)</a>' -AllMatches | ForEach-Object -Process {$_.Matches} | ForEach-Object -Process {
	$TempURL = $_.Groups[1].Value
	$Package = $_.Groups[2].Value

	if ($Package -like "Microsoft.HEVCVideoExtension_*_x64__8wekyb3d8bbwe.appx")
	{
		[PSCustomObject]@{
			PackageName = $Package
			PackageURL  = $TempURL
		}
	}
}

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

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

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

Проблема в том, что до этого была лишь возможность вручную указывать функции и их аргументы а-ля .Sophia.ps1 -Functions «DiagTrackService -Disable», «DiagnosticDataLevel -Minimal», UninstallUWPApps.

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

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

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

Теперь, чтобы вызвать, допустим, функцию по удалению UWP-приложений, можно ввести (после загрузки Functions.ps1) So<tab> -Fu<tab> uwp<tab>.

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

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

Итоги

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

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

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

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

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

  • Профессия Data Scientist

  • Профессия Data Analyst

  • Курс по Data Engineering

Другие профессии и курсы


В большинстве случаев проблемы, связанные с файлами UDK.exe, возникают в результате отсутствия или повреждения файла (вредоносное ПО / вирус) и часто наблюдаются при запуске программы Third-Party Software. Основной способ решить эти проблемы вручную — заменить файл EXE новой копией. Более того, поддержание чистоты реестра и его оптимизация позволит предотвратить указание неверного пути к файлу (например UDK.exe) и ссылок на расширения файлов. По этой причине мы рекомендуем регулярно выполнять очистку сканирования реестра.

Формат Windows Executable File, известный как собственный формат Исполнимые файлы, чаще всего имеет расширение EXE. Вы можете скачать новую копию файла UDK.exe для %%os%% (и ряда операционных систем Windows) в таблице ниже. Если в настоящий момент отсутствует необходимая вам версия UDK.exe, запросите ей, нажав на кнопку Request (Запрос) рядом с необходимой версией файла. В крайнем случае, если ниже отсутствует необходимый вам файл ниже, для получения необходимой версии вы также можете связаться с Lenovo Group Limited.

Как правило, при размещении файла UDK.exe в надлежащем каталоге, проблемы, связанные с данным файлом, больше не возникают, однако следует выполнить проверку, чтобы убедиться в том, что проблему удалось устранить. Повторно запустите Third-Party Software, чтобы убедиться, что проблема успешно решена.

UDK.exe Описание файла
Расширение: EXE
Функция:
App: Third-Party Software
Версия: 1.0.6890.0
Разработчик: Lenovo Group Limited
 
Имя: UDK.exe  

Размер (в байтах): 39046936
SHA-1: 54B066E904FC3B2449F9A72DC6888642DA9FA7DD
MD5: afa91337e9f349f72bc947467492ac02
CRC32:

Продукт Solvusoft

Загрузка
WinThruster 2023 — Сканировать ваш компьютер на наличие ошибок реестра в UDK.exe

Windows
11/10/8/7/Vista/XP

Установить необязательные продукты — WinThruster (Solvusoft) | Лицензия | Политика защиты личных сведений | Условия | Удаление

EXE
UDK.exe

Идентификатор статьи:   1171739

UDK.exe

Имя Идентификатор файла (контрольная сумма MD5) Размер файла Загрузить
+ UDK.exe afa91337e9f349f72bc947467492ac02 37.24 MB
Program Third-Party Software 1.0.6890.0
Автор Lenovo Group Limited
Версия ОС Windows 10
Тип 64-разрядная (x64)
Размер 39046936
MD5 afa91337e9f349f72bc947467492ac02
ША1 54B066E904FC3B2449F9A72DC6888642DA9FA7DD
CRC32:
Расположение файла C:WindowsSystem32

Классические проблемы UDK.exe

Частичный список ошибок UDK.exe Third-Party Software:

  • «Ошибка программы UDK.exe. «
  • «UDK.exe не является приложением Win32.»
  • «UDK.exe столкнулся с проблемой и закроется. «
  • «Файл UDK.exe не найден.»
  • «Отсутствует файл UDK.exe.»
  • «Ошибка запуска программы: UDK.exe.»
  • «Файл UDK.exe не запущен.»
  • «UDK.exe выйти. «
  • «UDK.exe: путь приложения является ошибкой. «

Обычно ошибки UDK.exe с Third-Party Software возникают во время запуска или завершения работы, в то время как программы, связанные с UDK.exe, выполняются, или редко во время последовательности обновления ОС. Запись ошибок UDK.exe внутри Third-Party Software имеет решающее значение для обнаружения неисправностей электронной и ретрансляции обратно в Lenovo Group Limited для параметров ремонта.

Источник ошибок UDK.exe

Эти проблемы UDK.exe создаются отсутствующими или поврежденными файлами UDK.exe, недопустимыми записями реестра Third-Party Software или вредоносным программным обеспечением.

Особенно ошибки UDK.exe проистекают из:

  • Поврежденная или недопустимая запись реестра UDK.exe.
  • Вирус или вредоносное ПО, которые повредили файл UDK.exe или связанные с Third-Party Software программные файлы.
  • UDK.exe ошибочно удален или злонамеренно программным обеспечением, не связанным с приложением Third-Party Software.
  • Другое программное обеспечение, конфликтующее с Third-Party Software, UDK.exe или общими ссылками.
  • Поврежденная установка или загрузка Third-Party Software (UDK.exe).

Содержание

  1. AppDataLocalPackages что это за папка в Windows 10?
  2. Управление папкой установки глобальных пакетов, кэшем и временными папками
  3. Просмотр расположения папок
  4. Очистка локальных папок
  5. Ошибки и способы их устранения
  6. Package Cache: что это за папка, и можно ли от нее избавиться?
  7. Что это за папка?
  8. Можно ли удалить эту папку и файлы?
  9. Packages что это за папка windows 10
  10. Добавить комментарий Отменить ответ
  11. Простой компьютерный блог для души)
  12. Для чего нужна папка AppData
  13. Где искать папку AppData в Windows 10
  14. Путём включения скрытых файлов
  15. Видео: как открыть скрытые файлы и папки в Windows 10
  16. Через опции «Выполнить»
  17. Видео: как открыть папку AppData с помощью окна «Выполнить»
  18. С помощью «Поиска Windows»
  19. Если папка AppData растёт в размере
  20. Почему это происходит
  21. Как решить данную проблему
  22. Видео: как очистить папку AppData
  23. Можно ли удалить или поменять расположение системного раздела AppData

AppDataLocalPackages что это за папка в Windows 10?

180929205651AppDataLocalPackages — папка, которая возможно используется для работы метро-приложений. То есть не обычные программы, там Хром, Офис, Блокнот, а именно метро-приложения, которые запускаются из меню Пуск и которые еще можно назвать плиточными. Если вы собрались очистить папку Packages, то будьте готовы к глюкам с этими метро-приложениями.

Юзеры в сети пишут — папка AppDataLocalPackages много весит, оказывается, что в этой папке могут быть всякие непонятные.. папки.. файлы.. но среди этого всего возможно что есть папка кэша — cache. И вероятно что именно она и может прилично занимать места. У одного юзера так и было — в Packages внутри была папка AVG Web TuneUp, а в ней — cache, которая и весила десятки гигабайт.

То есть уже делаем вывод — просто так взять и удалить AppDataLocalPackages нельзя. Почистить — можно попробовать. Не исключено что в чистилке CCleaner уже учтено то, что может быть такая папка Packages, которой можно почистить файлы кэша.

Может стоит удалить некоторые метро-приложения, но гарантирует ли это и удаление кэша этих приложений?

Один юзер пишет — у него начало пропадать место на системном диске. Начал смотреть. Оказалось папка Packages. Но он узнал кто виновник — приложение Microsoft.BingNews. Юзер уточнил — новости читает часто и один визит, предположительно, сьедает около 50 мегов на диске. Господа, это абсурд. Мне кажется что обычный браузер вроде Хрома и то так не беспредельничает. Юзер папку очистил, но как — непонятно.

У меня этой папки нет. Но есть предположение, что в папке Packages могут быть файлы или папки, которые в своем названии как-то намекают к какому приложению они имеют отношение. Например я нашел такие пути:

konstantin — это просто имя учетной записи. Пользователя так звали видимо. Так вот — есть папка C6965DD5.VK_v422avzh127ra, по на названию папка и ее содержимое вроде как имеет отношение к приложению ВКонтакте. В теории остальные папки также могут иметь подсказки в названиях к чему они относятся. Если в папке приложения есть LocalCache и она много занимает места — переименуйте ее в LocalCache_temp и посмотрите, если не будет проблем вообще, значит можно удалять. Наблюдать советую день-два.

И снова я натыкаюсь на комментарий чела — он пишет что нельзя удалять папку Packages иначе будут удалены метро-приложения. Даже после удаления папка будет восстановлена. Но с другой стороны — сами приложения никак не могут весить десятки гигов. Это какие-то другие данные, в большой вероятностью что временные, которые можно удалить. Как я уже писал выше — скорее всего это кэш приложений (нужно разбираться и смотреть в папке Packages).

Так, а почему вы вам не поэкспериментировать? Удалять Packages — нет, не нужно. Зайдите в эту папку и переименуйте то, что кажется можно будет удалить. То есть папки кэша или просто те, которые оч много весят. Будут ли проблемы? Да, могут. Что делать? Все просто — нужно создать точку восстановления. Зажмите Win + R, далее укажите команду:

control /name microsoft.system

170121071309

170121071401

В свойствах выбираете системный диск и нажимаете Создать:

170121071443

Указываете имя точки и создаете:

170121072056

После создания точки можете попробовать удалить какие-то тяжелые папки в Packages.

Выяснилось, что удаление папок в Packages может быть проблемным из-за отсутствие прав. Просто будет выкидывать ошибку. Что делать? Есть выход — использование утилиты Unlocker. Она создана спецом для удаления неудаляемых файлов и папок. Бесплатная, я пользуюсь версией 1.9.2. Если будете устанавливать — осторожно, при установке хочет установится какой-то Дельта Тулбар, поэтому внимательно смотрите и снимите необходимые галочки.

Удивительно, но мне удалось найти команду очистки кэша папки AppDataLocalPackages, о такой команде даже и не слышал:

Зажмите кнопки Win + Q и вставьте эту команду потом выберите в результате о очистите кэш.

Еще одно небольшой открытие — оказывается в антивирусе Касперский есть функция очистки папки Packages.

Уже второй юзер пишет — AVG TuneUp может быть причиной большого веса папки.

Ребята, снова важная информация. Один пользователь на форуме Microsoft говорит следующее: если вы удалили все метро-приложения при помощи PowerShell или вообще не пользуетесь метро-приложения, тогда вы можете безопасно удалить папку Packages. Из чего делаем вывод — папка нужна только для метро-приложений. То есть на обычные программы и на работу системы папка влияния не оказывает.

Один юзер тоже очистил папку Packages и причиной было приложение AVG Web TuneUp. Я заинтересовался, узнал:

181008150035

На этом все. Искренне надеюсь информация помогла. Удачи.

Источник

Управление папкой установки глобальных пакетов, кэшем и временными папками

После каждой установки, обновления или восстановления NuGet управляет пакетами и сведениями о них в нескольких папках за пределами структуры проекта:

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

Дополнительные сведения см. в разделе Процесс установки пакета.

Просмотр расположения папок

Расположение можно просмотреть с помощью команды nuget locals:

Типичные выходные данные выглядят следующим образом (Windows; user1 —это имя текущего пользователя):

(Папка package-cache используется в NuGet 2.x. Ее содержимое можно посмотреть с помощью NuGet 3.5 и более ранних версий.)

Расположения папок можно также просмотреть с помощью команды dotnet nuget locals:

Типичные выходные данные выглядят следующим образом (Mac/Linux; user1 —это имя текущего пользователя):

Очистка локальных папок

Все пакеты, которые в настоящее время открыты в проектах Visual Studio, нельзя удалить из папки global-packages.

Начиная с версии Visual Studio 2017, в меню Инструменты > Диспетчер пакетов NuGet > Параметры диспетчера пакетов выберите Очистить весь кэш NuGet. Сейчас управлять кэшем через консоль диспетчера пакетов нельзя. В Visual Studio 2015 используйте вместо этого команды CLI.

options clear caches

Ошибки и способы их устранения

При использовании nuget locals или dotnet nuget locals могут возникать следующие ошибки:

Один или несколько файлов в папке используются другим процессом, например открыт проект Visual Studio, который ссылается на пакеты в папке global-packages. Закройте эти процессы и повторите попытку.

Ошибка: доступ к пути «» запрещен или Каталог не пуст

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

Ошибка: Указанный путь, имя файла или оба значения имеют слишком большую длину. Полное имя файла должно содержать меньше 260 символов, а имя каталога — меньше 248 символов

Источник

Package Cache: что это за папка, и можно ли от нее избавиться?

63070751092c4a157e2ea84938ebd276

Microsoft Visual Studio – это программа, необходимая для работы мощных графических программ Windows и производительных игр. Вместе с Visual Studio на диске C: появляется папка Package Cache. В идеале она занимает достаточно мало места, но при длительной работе размеры файлов значительно увеличиваются, и занимают достаточно много дискового пространства.

Что это за папка?

Package Cache появляется после установки Visual Studio и резервирует под себя место. При появлении Package Cache что это за папка определить просто. Главная задача папки – бэкап предыдущих версий программы при сбоях. В файлах хранятся данные о предыдущих обновлениях приложения, и при нарушении работы они оперативно восстанавливаются.

pakage cache

Package Cache также необходим во время обновлений Visual Studio. Программа устанавливает патчи только при наличии пакетов кэша. Поэтому, если по какой-то причине у вас удалена папка Package Cache, вы увидите такое сообщение.

cash visual studio

Кэш-папка должна занимать не больше 50 мегабайт. Но новыми версиями программы предусмотрено резервирование кэш-пространства до 2500 мегабайт. В этом случае, даже пустой кэш-файл занимает много места.

Можно ли удалить эту папку и файлы?

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

komandy dly perenosa papki

Если у вас возникли вопросы по Windows 10, напишите нам. Распишите ваш вопрос в специальной форме, чтобы мы смогли помочь.

Источник

Packages что это за папка windows 10

180929205651AppDataLocalPackages — папка, которая возможно используется для работы метро-приложений. То есть не обычные программы, там Хром, Офис, Блокнот, а именно метро-приложения, которые запускаются из меню Пуск и которые еще можно назвать плиточными. Если вы собрались очистить папку Packages, то будьте готовы к глюкам с этими метро-приложениями.

Юзеры в сети пишут — папка AppDataLocalPackages много весит, оказывается, что в этой папке могут быть всякие непонятные.. папки.. файлы.. но среди этого всего возможно что есть папка кэша — cache. И вероятно что именно она и может прилично занимать места. У одного юзера так и было — в Packages внутри была папка AVG Web TuneUp, а в ней — cache, которая и весила десятки гигабайт.

То есть уже делаем вывод — просто так взять и удалить AppDataLocalPackages нельзя. Почистить — можно попробовать. Не исключено что в чистилке CCleaner уже учтено то, что может быть такая папка Packages, которой можно почистить файлы кэша.

Может стоит удалить некоторые метро-приложения, но гарантирует ли это и удаление кэша этих приложений?

Один юзер пишет — у него начало пропадать место на системном диске. Начал смотреть. Оказалось папка Packages. Но он узнал кто виновник — приложение Microsoft.BingNews. Юзер уточнил — новости читает часто и один визит, предположительно, сьедает около 50 мегов на диске. Господа, это абсурд. Мне кажется что обычный браузер вроде Хрома и то так не беспредельничает. Юзер папку очистил, но как — непонятно.

У меня этой папки нет. Но есть предположение, что в папке Packages могут быть файлы или папки, которые в своем названии как-то намекают к какому приложению они имеют отношение. Например я нашел такие пути:

konstantin — это просто имя учетной записи. Пользователя так звали видимо. Так вот — есть папка C6965DD5.VK_v422avzh127ra, по на названию папка и ее содержимое вроде как имеет отношение к приложению ВКонтакте. В теории остальные папки также могут иметь подсказки в названиях к чему они относятся. Если в папке приложения есть LocalCache и она много занимает места — переименуйте ее в LocalCache_temp и посмотрите, если не будет проблем вообще, значит можно удалять. Наблюдать советую день-два.

И снова я натыкаюсь на комментарий чела — он пишет что нельзя удалять папку Packages иначе будут удалены метро-приложения. Даже после удаления папка будет восстановлена. Но с другой стороны — сами приложения никак не могут весить десятки гигов. Это какие-то другие данные, в большой вероятностью что временные, которые можно удалить. Как я уже писал выше — скорее всего это кэш приложений (нужно разбираться и смотреть в папке Packages).

Так, а почему вы вам не поэкспериментировать? Удалять Packages — нет, не нужно. Зайдите в эту папку и переименуйте то, что кажется можно будет удалить. То есть папки кэша или просто те, которые оч много весят. Будут ли проблемы? Да, могут. Что делать? Все просто — нужно создать точку восстановления. Зажмите Win + R, далее укажите команду:

control /name microsoft.system

170121071309

170121071401

В свойствах выбираете системный диск и нажимаете Создать:

170121071443

Указываете имя точки и создаете:

170121072056

После создания точки можете попробовать удалить какие-то тяжелые папки в Packages.

Выяснилось, что удаление папок в Packages может быть проблемным из-за отсутствие прав. Просто будет выкидывать ошибку. Что делать? Есть выход — использование утилиты Unlocker. Она создана спецом для удаления неудаляемых файлов и папок. Бесплатная, я пользуюсь версией 1.9.2. Если будете устанавливать — осторожно, при установке хочет установится какой-то Дельта Тулбар, поэтому внимательно смотрите и снимите необходимые галочки.

Удивительно, но мне удалось найти команду очистки кэша папки AppDataLocalPackages, о такой команде даже и не слышал:

Зажмите кнопки Win + Q и вставьте эту команду потом выберите в результате о очистите кэш.

Еще одно небольшой открытие — оказывается в антивирусе Касперский есть функция очистки папки Packages.

Уже второй юзер пишет — AVG TuneUp может быть причиной большого веса папки.

Ребята, снова важная информация. Один пользователь на форуме Microsoft говорит следующее: если вы удалили все метро-приложения при помощи PowerShell или вообще не пользуетесь метро-приложения, тогда вы можете безопасно удалить папку Packages. Из чего делаем вывод — папка нужна только для метро-приложений. То есть на обычные программы и на работу системы папка влияния не оказывает.

Один юзер тоже очистил папку Packages и причиной было приложение AVG Web TuneUp. Я заинтересовался, узнал:

181008150035

На этом все. Искренне надеюсь информация помогла. Удачи.

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

Этот сайт использует Akismet для борьбы со спамом. Узнайте как обрабатываются ваши данные комментариев.

Простой компьютерный блог для души)

170831101317Всем хеловчик. Сегодня будем узнавать о том что это за папка такая Package Cache, и можно ли ее удалить? Не будет ли потом ошибочек в компе? Я все узнаю и все вам тут напишу, постараюсь написать простыми словами, грузить не буду =) Итак ребята, я вот что накопал, короче вроде как папку Package Cache создает инсталлятор Microsoft Visual Studio. Но Microsoft Visual Studio, это что еще за дичь? Ребята, это программа, в которой спецы делают проги. Ну то есть там они пишут код программный, и потом код это превращают в саму программу, ну это если очень так образно говоря.. Однако, я знаете что еще думаю? Что папку Package Cache могут создавать и другие так бы сказать системные компоненты Microsoft, ну мне так кажется…

Так, ладно, знаете что я придумал? Я взял и установил эту студию для программистов, имею ввиду Microsoft Visual Studio. Она оказалось немаленькой, а такой, ну приличной, долго устанавливалась и наверно много весит, тяжелая прога короче блина…

Так вот, я установил Microsoft Visual Studio и пошел смотреть есть ли папка Package Cache. Вот я невнимательный, а я вообще сообщил вам где папка Package Cache по умолчанию создается? Нет, не сообщил, вот это мой косяк! Она создается вот в этом месте:

Но в интернете есть сообщения от юзеров, что может папка и просто на диске C создаваться. Но я уже посмотрел, и вы знаете, у меня папка Package Cache появилась в папке Program Data (кстати она вообще как бы скрыта):

170831132236

Видите, там еще есть папки Microsoft DNX, NuGet, PreEmptive Solutions, regid.1991-06.com.microsoft, честно я не знаю что это за папки! Но кажется что их появление связано с Microsoft Visual Studio….

Да уж, очень интересно все. А сколько папка весит? Нажал я правой кнопкой по папке, там выбрал Свойства:

170831132402

И вот что мы видим:

170831132448

Как видим размер папки какой-то нехилый, почти два гига, это что же за файлы там внутри? А ну ка откроем папку, смотрите что внутри:

170831132600

Как видите тут тупо куча всяких папок, названия их как будто засекречены, какие-то засекреченные данные или что за прикол? Я зашел наугад в какую-то папку, внутри нее лежит папка packages:

170831132748

А внутри packages лежит папка VisualC_D14:

170831132817

А внутри этой папки лежит папка VC_IDE.Core.Pro.Plus.Res, внутри папка plk, ну а в ней уже идут два файла, это VC_IDE.Core.Pro.Plus.Res.msi (видимо установщик чего-то) и файл cab1.cab (непонятно что за дичь). Короче я думаю что это типа временные файлы. Посмотрел я другие папки эти непонятные, там примерно такая же дичь…

Ну и что же делать тогда с папкой Package Cache? Удалять? Честно, думаю что не стоит. Мало ли. Вдруг эта папка появилась из-за какого-то системного компонента Microsoft? Всякое может быть… Но я знаю что нужно сделать. Вы папку переименуйте, но название поменяйте так, чтобы осталось оригинальное название, я сделал вот так к примеру:

170831133431

Чтобы переименовать, то нужно нажать правой кнопкой по папке ну и там выбрать соответствующий пункт в менюхе =)

А дальше то что делать? Ну смотрите, вы папку Package Cache переименовали, да? И не было никаких ошибок, мол папку нельзя переименовать, потому что какой-то файл в ней используется какой-то программой? Это уже хорошо. Значит файлами из папки Package Cache никто не пользуется, поэтому мы ее и смогли переименовать. Дальше нужно работать за компом как ни в чем не бывало, и если в итоге проблем не будет, то через пару дней можно папку Package Cache удалить. Дело в том что после переименования она и так лежит мертвым грузом, но при этом она как будто удалена, так как оригинального названия нет, если будут какие-то проблемы, то нужно вернуть папке прежнее название и все. Понимаете? Это лучшее безопасное решение, как мне кажется.

СТОП. РЕБЯТААА! Я тут случайно обнаружил, у меня папка Package Cache еще сидит вот тут:

170902050154

Я посмотрел что внутри:

170902050229

Далее нажал правой кнопкой по папке, выбрал там пунктик Свойства, ну чтобы глянуть сколько папка весит, ну и вот:

170902050331

В принципе не много! Итак, какие действия будем предпринимать господа? Да все те же! Я переименовал папку точно также:

170902050557

Удалять не стал как видите!

А может еще где-то есть папка Package Cache? Хм, интересный вопрос, нужно проверить. Итак, зажимаем кнопульки Win + E, появляется окно проводника, там в правом верхнем углу в поле поиска вставляем имя папки и ждем:

170902050743

Но у меня новых папок не нашлось! Нашлось все то, что я уже переименовал:

170902050853

Вот такие делихи господа! Как вы заметили, я не советую вам удалять сразу Package Cache, лучше переименовать и подождать, если вы убедитесь что из-за папок нет проблемасов, то можно будет их выкинуть.

Ну что ребята, надеюсь тут я все написал на понятном языке? Надеюсь что да. Удачи вам!

papka

На системном диске со временем накапливается большое количество ненужных файлов. В результате пользователь сталкивается с проблемой его очистки. AppData является одной из папок, которые собирают в себе «мусор». Рассмотрим содержимое этой папки и способы её открытия, очистки и удаления.

Для чего нужна папка AppData

Папка AppData (Application Data) создана разработчиками Windows для хранения данных о пользователях, которые работают на данном устройстве, а также информации об утилитах, запускаемых на компьютере. В частности, папка необходима приложениям и играм для надёжного хранения общих настроек, данных о профилях пользователя и другой информации. К примеру, Mozilla Firefox помещается в блок Program Files во время установки, но при этом созданный в ней профиль сохраняется уже в другом системном разделе — AppData. Таким образом, все данные, которые находятся в этом разделе, нужны утилитам для эффективной работы.

Эту папку пользователь не сразу сможет найти и открыть, так как по умолчанию она не показывается в «Проводнике Windows», как и многие другие системные папки ОС. Они были скрыты для одной цели: чтобы обычный пользователь, не знающий тонкостей работы системы, не смог найти и удалить их содержимое, навредив ОС.

В папке AppData есть три раздела:

Все эти три раздела постепенно увеличиваются в размере. Чтобы узнать, сколько AppData весит, для начала её нужно найти в памяти устройства.

Где искать папку AppData в Windows 10

Рассмотрим несколько лёгких способов открытия папки AppData.

Путём включения скрытых файлов

Чтобы в «Проводнике Windows» увидеть папку AppData, сначала нужно активировать видимость скрытых системных элементов на устройстве:

С помощью этого простого метода вы сделаете видимой не только AppData, но и остальные разделы, ранее спрятанные системой. Теперь запустите нужный вам раздел AppData на системном диске:

Видео: как открыть скрытые файлы и папки в Windows 10

Через опции «Выполнить»

Всем пользователям полезно знать о небольшом окне «Выполнить», которое способно открывать различные программы, сервисы и разделы на компьютере с Windows. С помощью него можно запустить и папку AppData. При этом не придётся предварительно включать показ скрытых элементов, как в предыдущем способе.

Видео: как открыть папку AppData с помощью окна «Выполнить»

С помощью «Поиска Windows»

В Windows 10 универсальный поиск системы находится не в «Пуске», как, например, в Windows 7, а в отдельном окне:

Если папка AppData растёт в размере

Со временем в папке AppData начинает скапливаться «мусор», и она разрастается до огромных размеров. Детально рассмотрим эту проблему и пути выхода.

Почему это происходит

Если на компьютер Windows 10 была установлена недавно, папка AppData будет занимать всего несколько сотен мегабайт. Со временем, когда пользователь начнёт устанавливать новый софт на своё устройство, она станет увеличиваться в размере и сможет достигнуть десятков и сотен гигабайт.

a 223Размер папки AppData составляет больше 9 ГБ

Если пользователь устанавливает ресурсоёмкие утилиты и папка начинает весить, например, 10 ГБ, то переживать не стоит: в ней находятся файлы, которые необходимы программам для полноценной работы. Нет предельного размера для папки AppData.

Если вы удаляете программы с помощью стандартного средства Windows (окна «Программы и компоненты»), исчезают только файлы, которые хранятся в системном разделе Program Files. При этом данные удаляемых приложений в папке AppData остаются на своём месте. Их называют «остаточными файлами» или «хвостами». Таким образом, постепенно накапливается большое количество совершенно ненужной информации, которую нужно убирать.

Если программы с ПК часто удаляются пользователем, но папка продолжает увеличиваться в размерах даже при использовании нескольких утилит, то нужно подумать о её очистке. Освобождение папки от «мусора» очистит системный диск. В результате компьютер станет работать быстрее.

Как решить данную проблему

Чтобы вес папки уменьшился, необходимо сначала удалить временные файлы, которые в ней хранятся, в частности, в папке Temp. В версии Windows 10 это сделать очень просто:

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

При последующих деинсталляциях программ используйте сторонний софт для зачистки остаточных файлов программ. Он будет сам удалять за вас все файлы, связанные с этими программами. Среди таких деинсталляторов можно выделить Revo Uninstaller, Uninstall Tool, Soft Organizer и многие другие.

Видео: как очистить папку AppData

Можно ли удалить или поменять расположение системного раздела AppData

Удалять папку AppData полностью просто так нельзя, так как она содержит важную информацию для полноценной работы ваших программ. В целом на систему удаление папки не повлияет, но при этом у вас появятся сбои в работе утилит. Они будут запускаться с начальными настройками, работать некорректно или вообще не будут открываться. Более того, запущенные программы будут мешать удалению файлов, так как они будут в данный момент ими пользоваться. В результате папка удалится лишь частично.

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

Содержимое папки можно также переместить на другой жёсткий диск вашего компьютера, если на системном осталось очень мало места. Это возможно за счёт копирования файлов по отдельности в папку под тем же именем, но уже на другом диске. После этого в «Редакторе реестра» меняется директория. В результате программы будут искать нужные файлы не на системном диске, а, например, на диске D, где места гораздо больше.

p 46Содержимое папки AppData можно скопировать на другой жёсткий диск, а затем поменять директорию в «Редакторе реестра»

Перенос особенно актуален для твердотельных дисков SSD: зачастую у них небольшой объём, и пользователи стараются экономить место.

Нужно принять во внимание также тот факт, что скорость ответа от программы, которая обращается к временным файлам на SSD или HDD дисков, отличается. Для дисков SSD она быстрее.

В папке AppData хранятся данные, которые важны не для системы Windows в целом, а для программ, загруженных и работающих у вас на компьютере. Удалять её полностью крайне не рекомендуется, иначе вы просто не сможете в дальнейшем работать со своими утилитами. Чтобы уменьшить её объем, удалите временные файлы и «хвосты» от ранее деинсталлированных программ. Если папка всё равно много весит, переместите её на другой жёсткий диск, где места больше.

Источник

Новейшая версия операционной системы от Microsoft буквально напичкана различными компонентами и сервисами. И если часть из них можно считать условно полезными, то некоторые желательно было бы отключить и больше про них не вспоминать. И многие, кто хочет скачать и попробовать её в деле, отмечают это самое желание. Поскольку каждое действие внутри операционной системы, каждое введенное слово впоследствии превращается в рекламу. Таким образом Microsoft пытается получить максимум выгоды с владельцев условно бесплатной Windows 10.

Официально политика Microsoft гласит: система может собирать данные об использованных программах, сетевых подключениях и самом устройстве, а также связывать их с идентификатором пользователя (т. е. данные не обезличены, в дата-центрах видно, от кого именно пришла информация). Помимо этого, Windows 10 замечена в слежке за личными данными вроде местоположения, интересов и даже текстовых и голосовых сообщений. Это намного больше, чем простая информация об использовании устройства, и неудивительно, что настолько тотальная слежка возмущает пользователей.

Систем для передачи данных в Windows 10 несколько.

  • Cortana, голосовой помощник от Microsoft, занимает первое место в списке. Все голосовые команды, все поисковые запросы, проведённые с её помощью, она отправляет на несколько десятков серверов Microsoft. Более того, если отключить компаньона, некоторые фоновые процессы Cortana всё равно будут работать, поэтому эта проблема актуальна даже для русскоязычных пользователей, для которых помощник не функционирует;
  • сервер телеметрии следит за географическим положением устройства, передавая данные о местонахождении пользователя и о списке его подключений (да-да, печально известное сообщение «Ваше местоположение сейчас используется» — это тоже он). Если вы сидите в кафе с ноутбуком через местный Wi-Fi, а потом вернётесь домой и подключитесь к домашней сети, Microsoft узнает об этом в тот же час (данные отправляются раз в 15–30 минут в зависимости от ситуации). Помимо этого, именно он отвечает за передачу данных о «начинке» компьютера и всевозможных сбоях;
  • веб-камера отправляет некоторое количество данных на сервера Microsoft вскоре после первого запуска. Неизвестно, зачем системе нужен внешний вид пользователя, равно как и неизвестно, что конкретно она отправляет (данные с камеры зашифрованы), но сам факт подобного отслеживания выглядит неприятно;
  • встроенные перехватчики текста, вводимого с клавиатуры, собирают и анализируют весь набираемый текст. Это больше похоже на фишку из шпионских фильмов, чем на реальную функцию популярной операционной системы, но это правда. Используется перехват текста в первую очередь в рекламных целях: так, если вы наберёте e-mail, где расскажете другу о предстоящей поездке, приложения Windows радостно кинутся предлагать вам путёвки. Минусы очевидны: пароли от входа в платёжные системы тоже набираются с клавиатуры;
  • ярко выраженными шпионскими функциями обладает связка из «Службы географического положения» и «Службы диагностического отслеживания», переименованная после обновления в «Функциональные возможности пользователей и телеметрия». Она включает в себя не только сервер телеметрии, о котором уже шла речь выше: эта служба в принципе заточена под шпионаж и играет важную роль в «сливе» данных пользователя;
  • встроенный антивирус Windows Defender тоже собирает информацию: он специализируется на загруженных файлах, установленных программах и изменениях настроек;
  • часть пользователей считает, что к шпионам также можно отнести облачные сервисы Windows.

Помимо этого, шпионскими компонентами оборудованы ещё некоторые встроенные подсистемы Windows 10, и на перечисление их всех ушло бы много времени.

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

В процессе установки системы

Чтобы использовать этот способ, во время инсталляции Windows 10 следует отказаться от настроек, предложенных по умолчанию и кликнуть на едва заметную надпись «Настройка параметров». Она находится в самом низу имеющегося текста.

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

Также нежелательно вводить свои логин и пароль, зарегистрированные на сайте Microsoft, в процессе установки. Этот шаг можно банально пропустить, он ни на что не влияет. Для этого внизу имеется маленькая надпись «Пропустить этот шаг».

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

Если операционная система уже установлена

На уже имеющейся операционной системе отключить все лишние компоненты, которые могут мешать спокойной и анонимной жизни, не сильно сложно. Только отключать придется лишь некоторые функции Windows 10, которые особенно сильно мешают. А именно:

  • Защитник Windows.
  • Cortana.
  • Контекстный поиск.
  • Advertising ID.
  • Облачные сервисы.

Для каждого из них предусмотрен свой способ отключения.

Windows Defender

Чтобы избавиться от этого инструмента, необходимо зайти в Параметры, после чего проследовать в раздел «Обновление и безопасность». Там расположена такая вкладка, как «Защитник Windows», в которой нам необходимо работать. Следует отключить функции, отвечающие за отправку данных и защиту облака, как на скриншоте.

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

Контекстный поиск и Cortana

Эти два инструмента отключаются совместно. Конечно, в русской Windows 10 последняя не работает по умолчанию, поскольку для нее не придумали русификацию. Однако лучше перестраховаться. Следует кликнуть по поиску в нижней строке рабочего стола, а затем нажать на самую нижнюю иконку в левом столбике, отображающую Настройки. И там нужно отключить как Кортану, так и Поиск в интернете.

Advertising ID

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

Следующая вкладка, которая нам нужна – это «Речь, рукописный ввод и ввод текста». Здесь нужно запретить Windows 10 пересылать вашу речь ради изучения функциональности Кортаны. Все равно мы ее уже отключили.

Далее – «Расположение». Здесь можно убрать определение положения вашего компьютера или иного устройства на карте мира. Конечно, это не смертельно, но ради безопасности лучше все-таки убрать.

После завершения этих шагов не закрывайте Конфиденциальность – она ещё пригодится.

Телеметрия

Чтобы избавиться от передачи этих параметров, придется немного попрограммировать. Для этого используется встроенный инструмент под названием PowerShell. Чтобы его использовать, нужно перевести ПК в режим консоли при помощи комбинации клавиш Windows+X.

Появится командная строка, в которую нужно набить комбинации, прописанные на скриншоте.

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

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

  • sc delete DiagTrack
  • sc delete dmwappushservice
  • echo «» > C:ProgramDataMicrosoftDiagnosisETLLogsAutoLoggerAutoLogger-Diagtrack-Listener.etl
  • reg add «HKLMSOFTWAREPoliciesMicrosoftWindowsDataCollection» /v AllowTelemetry /t REG_DWORD /d 0 /f»

После этого снова открываем Конфиденциальность, и оттуда заходим в «Отзывы и диагностика». Нужно полностью запретить формировать отзывы (выбрать соответствующий пункт в выпадающем меню), а затем в «Данных диагностики и использования» выставить пункт «Базовые сведения».

Облака

Чтобы облачное хранилище не работало, достаточно не пользоваться своей учётной записью при работе с Windows 10. Чтобы это сделать, необходимо в Параметрах найти раздел, позволяющий управлять учётными записями, а затем оттуда перейти в раздел «Ваша учетная запись».

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


Защита от слежения при помощи выключения следящих служб

Часть следящих модулей расположена в службах Windows (например, печально известная «Служба диагностического отслеживания»). Их тоже необходимо отключить, чтобы избавиться от слежки.

1. Сначала надо перейти в службы: для этого необходимо нажать Win+R и в открывшемся окне прописать services.msc. Откроется окно служб, где будут показаны все существующие в системе служебные процессы и информация о них.

2. Чтобы отключить службу, достаточно щёлкнуть по ней правой кнопкой мыши и выбрать пункт «Остановить». А чтобы она не включилась снова, нужно зайти в её свойства (правая кнопка мыши — «Свойства») и в выпадающем меню выбрать вариант типа запуска «Отключена».

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

  • dmwappushsvc;
  • «Служба географического положения»;
  • «Служба диагностического отслеживания» (DiagTrack);
  • «Функциональные возможности для подключенных пользователей и телеметрия» (если есть);
  • DataCollectionPublishingService;
  • Windows Search;
  • «Биометрическая служба Windows»;
  • службы, связанные с учётной записью Microsoft.

Со службами ещё не всё. Их отключение не даёт полной свободы от телеметрии и перехвата текста, поэтому «дочищать» остатки нам ещё придётся. Но об этом чуть позже.

Отключение шпионских компонентов планировщика заданий: инструкция

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

  1. Сначала нужно кликнуть правой кнопкой мыши по меню «Пуск» и выбрать вариант «Управление компьютером». Откроется окно управления, где необходимо раскрыть следующую ветвь: «Служебные программы — Планировщик заданий — Библиотека планировщика заданий — Microsoft — Windows».

Список компонентов, которые нужно отключить:

  • Application Experience: Microsoft Compatibility Appraiser, ProgramDataUpdater, StartupAppTask;
  • Autochk: Proxy;
  • Customer Experience Improvement Program: Consolidator, KernelCeipTask, UsbCeip, Microsoft-Windows-DiskDiagnosticDataCollector;
  • NetTrace: GatherNetworkInfo.

Окончательное выключение телеметрии

Следующий шаг, который надо сделать для безопасной работы с Windows, — навсегда разобраться с телеметрией и перехватчиком текста. Для этого нам понадобятся реестр и командная строка, а также редактор групповой политики Windows.

  1. Итак, первое, что нужно сделать, — это использовать командную строку. Для этого надо щёлкнуть правой кнопкой мыши по клавише «Пуск» и выбрать «Командная строка (администратор)». Откроется окно командной строки/ В командной строке нужно набрать по очереди последовательность команд, приведённую ниже. Это позволит отключить часть следящих служб навсегда, без права «обратного» включения, а также удалит всё то, что система уже успела насобирать. Во время выполнения команд Windows может начать ругаться, но обращать на это внимание не стоит.
  • sc delete DiagTrack
  • sc delete dmwappushservice
  • echo «» > C:ProgramDataMicrosoftDiagnosisETLLogsAutoLoggerAutoLogger-Diagtrack-Listener.etl
  • reg add «HKLMSOFTWAREPoliciesMicrosoftWindowsDataCollection» /v AllowTelemetry /t REG_DWORD /d 0 /f»

Так, с командной строкой разобрались. Теперь приступим к настройке редактора групповой политики.

  1. Для начала нужно нажать уже знакомую нам комбинацию Win+R и набрать в окошке gpedit.msc. Откроется окно редактора локальной групповой политики Windows. В нём надо перейти по пути «Конфигурация компьютера — Административные шаблоны — Компоненты Windows — Сборки для сбора данных и предварительные сборки».

Нужный нам компонент называется «Разрешить телеметрию». По нему нужно кликнуть и, когда откроется окно настроек, выбрать в поле параметров вариант «0 — Откл.». Это должно выключить телеметрию, но на практике работает только в сочетании с дополнительными мерами. При этом в меню включения телеметрии (находится чуть выше) должен стоять параметр «Включено». Как бы странно это ни звучало, телеметрия выключается только тогда, когда выбран этот вариант.

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

Чтобы попасть туда, нужно использовать Win+R и набрать слово regedit. Откроется редактор реестра, где и надо будет выключить сбор данных.

Для выключения телеметрии понадобится изменить два параметра, находящихся в разных местах, следующим образом:

  • HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionPoliciesDataCollection, AllowTelemetry = 0;
  • HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesdmwappushsvc, Start = 4.

Блокировка серверов сбора данных

Поскольку серверов, на которые шпионы отправляют данные, очень много, было бы сущим мучением прописывать их все в брандмауэре вручную. Поэтому для блокировки адресов их предпочитают просто прописывать в файле hosts, который находится по адресу C:WindowsSystem32driversetc. Файл легко открывается с помощью Блокнота, но для его редактирования нужно иметь права администратора.

Всё, что нужно сделать, — скопировать в него следующий ряд адресов, после чего сохранить изменения и выйти.

  • 127.0.0.1 localhost

  • 127.0.0.1 localhost.localdomain

  • 255.255.255.255 broadcasthost

  • ::1 localhost

  • 127.0.0.1 local

  • 127.0.0.1 vortex.data.microsoft.com

  • 127.0.0.1 vortex-win.data.microsoft.com

  • 127.0.0.1 telecommand.telemetry.microsoft.com

  • 127.0.0.1 telecommand.telemetry.microsoft.com.nsatc.net

  • 127.0.0.1 oca.telemetry.microsoft.com

  • 127.0.0.1 oca.telemetry.microsoft.com.nsatc.net

  • 127.0.0.1 sqm.telemetry.microsoft.com

  • 127.0.0.1 sqm.telemetry.microsoft.com.nsatc.net

  • 127.0.0.1 watson.telemetry.microsoft.com

  • 127.0.0.1 watson.telemetry.microsoft.com.nsatc.net

  • 127.0.0.1 redir.metaservices.microsoft.com

  • 127.0.0.1 choice.microsoft.com

  • 127.0.0.1 choice.microsoft.com.nsatc.net

  • 127.0.0.1 df.telemetry.microsoft.com

  • 127.0.0.1 reports.wes.df.telemetry.microsoft.com

  • 127.0.0.1 wes.df.telemetry.microsoft.com

  • 127.0.0.1 services.wes.df.telemetry.microsoft.com

  • 127.0.0.1 sqm.df.telemetry.microsoft.com

  • 127.0.0.1 telemetry.microsoft.com

  • 127.0.0.1 watson.ppe.telemetry.microsoft.com

  • 127.0.0.1 telemetry.appex.bing.net

  • 127.0.0.1 telemetry.urs.microsoft.com

  • 127.0.0.1 telemetry.appex.bing.net:443

  • 127.0.0.1 settings-sandbox.data.microsoft.com

  • 127.0.0.1 vortex-sandbox.data.microsoft.com

  • 127.0.0.1 survey.watson.microsoft.com

  • 127.0.0.1 watson.live.com

  • 127.0.0.1 watson.microsoft.com

  • 127.0.0.1 statsfe2.ws.microsoft.com

  • 127.0.0.1 corpext.msitadfs.glbdns2.microsoft.com

  • 127.0.0.1 compatexchange.cloudapp.net

  • 127.0.0.1 cs1.wpc.v0cdn.net

  • 127.0.0.1 a-0001.a-msedge.net

  • 127.0.0.1 statsfe2.update.microsoft.com.akadns.net

  • 127.0.0.1 sls.update.microsoft.com.akadns.net

  • 127.0.0.1 fe2.update.microsoft.com.akadns.net

  • 127.0.0.1 65.55.108.23

  • 127.0.0.1 65.39.117.230

  • 127.0.0.1 23.218.212.69

  • 127.0.0.1 134.170.30.202

  • 127.0.0.1 137.116.81.24

  • 127.0.0.1 diagnostics.support.microsoft.com

  • 127.0.0.1 corp.sts.microsoft.com

  • 127.0.0.1 statsfe1.ws.microsoft.com

  • 127.0.0.1 pre.footprintpredict.com

  • 127.0.0.1 204.79.197.200

  • 127.0.0.1 23.218.212.69

  • 127.0.0.1 i1.services.social.microsoft.com

  • 127.0.0.1 i1.services.social.microsoft.com.nsatc.net

  • 127.0.0.1 feedback.windows.com

  • 127.0.0.1 feedback.microsoft-hohm.com

  • 127.0.0.1 feedback.search.microsoft.com

Переключение на локальную учётную запись

Учётная запись Microsoft — главный рассадник шпионажа. Поэтому, чтобы максимально обезопасить себя, стоит перейти на локальный аккаунт.

Для начала нужно войти в «Пуск — Параметры — Учётные записи». В первой же вкладке будет присутствовать кнопка «Войти вместо этого с локальной учётной записью». Она-то нам и нужна.

Программы для отключения шпионажа

Как можно заметить, процесс избавления от следящих модулей довольно долгий и скучный, а ещё есть риск что-то забыть или упустить. В таком случае на помощь приходят специальные утилиты, созданные умельцами как раз для борьбы со шпионажем Windows 10. С их помощью от шпионажа можно избавиться в два клика. Да и функциональность у таких программ повыше. Рассмотрим две наиболее популярные утилиты.

DisableWinTracking

Эта бесплатная программа, созданная англоязычными разработчиками, хоть и представлена на английском языке, предельно проста в управлении. В главном окне перечислены все следящие компоненты, которые нужно отметить галочкой, и вариант действия: отключить (Disable) или удалить навсегда (Delete). Кроме этого, здесь можно удалить предустановленные в Windows 10 приложения Metro. Пользы от них без аккаунта Microsoft всё равно пшик, а место занимают.

После того как компоненты для удаления выбраны, нужно нажать кнопку Go. Дальше программа всё сделает сама.

DWS

DWS, или Destroy Windows 10 Spying — пожалуй, лучшая на сегодняшний день программа для отключения слежки. Она бесплатна, представлена на русском языке и делает всё то же самое, что и предыдущая, и даже больше. Так, к примеру, она автоматически создаёт точку восстановления системы на случай, если что-то пойдёт не так.

Выбрать элементы для удаления можно во вкладке «Настройки» программы: там точно так же присутствуют все шпионские модули и Metro-приложения. Также можно включить профессиональный режим, который расширяет возможности утилиты.

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

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

Понравилась статья? Поделить с друзьями:
  • Udfs user mode service в windows 10
  • Ud pixel 64 bit windows 10
  • Ucx01000 sys синий экран windows 10
  • Ucrtbase terminate скачать для windows 7 32
  • Ucrtbase dll скачать для windows 10 x64 с официального сайта