Обновить
512K+

Windows *

Разработка под операционные системы от Microsoft

131,35
Рейтинг
Сначала показывать
Порог рейтинга

RC4 вышел из чата. Сервисные аккаунты остались

Подскажите, у кого сервисные аккаунты под вопросом
Подскажите, у кого сервисные аккаунты под вопросом

В апреле 2026 Kerberos в Windows перестаёт по умолчанию прикрывать старые сервисные учётки RC4. И тут внезапно выясняется, что главный вопрос не «как включить AES», а «кто вообще помнит, какие аккаунты у нас сервисные».

Microsoft в описании изменений по CVE-2026-20833 пишет, что обновления Windows, выпущенные с 14 апреля 2026 года, меняют поведение Kerberos KDC: если явная конфигурация не задана, контроллеры домена в enforcement-режиме будут исходить из поддержки AES. RC4-HMAC больше не работает как удобный неявный fallback. В апреле ещё остаётся ручной откат, в июле – уже без этого люфта.

⚠️ Где ломается логика

Проблема не в том, чтобы выставить msDS-SupportedEncryptionTypes. Это одна команда PowerShell.

Проблема – сначала найти всё, что нужно исправить.

В зрелом AD-лесу сервисных аккаунтов могут быть сотни. Часть создана вручную. Часть – скриптами, которые писал человек из прошлой эпохи. Часть – установщиками enterprise-приложений, которые сами создали учётку и не спросили, надо ли оставить записку будущим поколениям.

ldapsearch или PowerShell выдадут список объектов. Но список не ответит на главные вопросы:

·         какой аккаунт обслуживает какой сервис;

·         кто его создал;

·         почему у него именно такие флаги;

·         что отвалится, если атрибут поменять.

После enforcement один старый флаг – и сервис, который тихо работал пять лет, встречает вас ошибкой уровня KRB_AP_ERR_ETYPE_NOSUPP. Очень вежливо. Очень бесполезно.

🔍 Почему резервка не спасает

Резервная копия здесь не главный инструмент. Это не пожар в дата-центре и не потерянный контроллер домена. Это состояние конкретных атрибутов у конкретных объектов.

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

Снимок состояния каталога и сравнение объекта «было / стало» в таких историях полезнее, чем героический разбор логов в три ночи. Особенно когда речь идёт не только про Kerberos, но и про импортозамещение, миграции, синхронизации и переносы объектов между каталогами.

Это хорошо видно и по соседнему миру: Help Net Security разбирает Samba 4.24.0 как релиз с Kerberos hardening и переходом к AES-default для доменной криптографии. Тренд понятный: старые неявные допущения вокруг RC4 постепенно закрываются. А вместе с ними всплывает качество инвентаризации каталога.

После переноса часть атрибутов может потеряться тихо. Сервисные учётки могут остаться на месте, но уже не в том состоянии. Формально каталог работает. Практически – вы начинаете админскую археологию.

Апрельский дедлайн Kerberos – хороший повод проверить не только поддержку AES. Он задаёт более неприятный вопрос: насколько хорошо вы вообще видите состояние своего каталога.

Теги:
0
Комментарии0

Вышла пятая версия открытого проекта windows95 с исходным кодом полностью на JavaScript. «Это Windows 95, работающая в приложении Electron. Да, это полная версия. Извините», — пояснил разработчик решения.

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

Теги:
+4
Комментарии2

Инструкция по отключению в Windows 11 процесса NDU (Network Diagnostic Usage), который не несёт ничего полезного и нужен только для того, чтобы в Microsoft мониторили подключение ПК.

Как отключить эту опцию:

  • Win+R → regedit.

  • Заходим в директорию: Computer\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Ndu

  • Меняем значение «Start» на «4».

  • Перезагружаем ПК.

Теги:
+1
Комментарии3

Agents - Insiders.exe: секретный Claude Desktop от VS Code?

Добавлял VS Code Insiders в список исключений VPN и заметил, что рядом с Code - Insiders.exe лежит ещё один .exe с интересным названием —

Agents - Insiders.exe

Запустил — а это что-то вроде Claude Desktop.

Упоминаний в сети найти не смог — делюсь.

Теги:
Всего голосов 2: ↑2 и ↓0+2
Комментарии0

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

Но у такой совместимости есть и обратная сторона. Вместо того, чтобы быстро убирать старые компоненты, Microsoft годами держит их рядом с новыми. К примеру, в какой-то момент Windows поставлялась сразу с тремя браузерами: Internet Explorer, классическим Edge и новым Edge на движке Chromium.

Обычно из негативных эффектов этого дублирования бывает только впустую занятое место на диске и лишний процесс в системе. Хуже только тогда, когда эти компоненты начинают мешать друг другу. К числу подобных случаев относится новый Outlook, который Microsoft продвигает с 2022 года. Если история стандартного клиента Outlook исчисляется десятилетиями, то этот новый клиент Outlook for Windows (также его иногда называют Outlook (new) и New Outlook) написан как прогрессивное веб-приложение на базе веб-версии Outlook on the web.

Дело в том, что иногда New Outlook мешает работе классического варианта. Вообще-то происходить этого не должно, страницы помощи обещают, что оба поколения будут работать даже одновременно. Тем не менее некоторые пользователи жалуются, что новый Outlook не запускается, перейти обратно в старый не получается, а классический Outlook вообще перестаёт работать.

Решать эти проблемы приходится по-разному. Если установлена соответствующая опция, то запуск классического Outlook будет перехватываться в новый. Если по какой-то причине нужно вручную перелезть обратно, или New Outlook не запускается, то страница поддержки рекомендует пошаманить в реестре Windows в пути HKEY_CURRENT_USER\Software\Microsoft\Office\16.0\Outlook\Preferences — установить там значение UseNewOutlook на 0. Кстати, схожим образом может решаться ситуация с закольцовыванием редиректов, когда классический Outlook вызывает новый, а новый — классический.

В других случаях классический Outlook может по какой-то причине отсутствовать или быть неправильно установлен, и страницы помощи предлагают установить классический Outlook с нуля. Иногда ломается New Outlook, и в ответ на одну из таких жалоб сотрудник Microsoft посоветовал удалить файл UserSettings.json из директории %localappdata%\Microsoft\olk. Наконец, с 12 марта 2026 года классический Outlook падает и запускается в безопасном режиме из-за определённой версии дополнения Teams Meeting, сообщает страница помощи. И вообще, кто отменял отработанные и известные с девяностых процедуры починки файлов PST/OST через scanpst.exe и запуск в безопасном режиме (outlook.exe /safe)?

Богатство разновидностей ошибок иногда проявляется в ситуациях, которые в английском описывают как mission-critical. В некоторых контекстах под «миссией» понимается не задача, а реальный полёт. Подобный эпизод случился прямо на борту капсулы Orion CM-003 Integrity полёта Artemis II. Через несколько часов после старта командир экипажа Рид Уайсмен отчитался, что на персональном устройстве у него два варианта Microsoft Outlook, и не работает ни один из них. Уайсмен попросил подключиться удалённо и решить эту знакомую любому офисному работнику проблему.

Понятно, что подобная неполадка вряд ли могла помешать работе критических систем корабля, включая двигатели. Полёт продолжился в штатном режиме, облёту Луны ничто не угрожает. Не прервал полёт даже засорившийся туалет, который позднее удалось прочистить. Microsoft Outlook на устройстве PCD 1 специалисты НАСА тоже починили.

Теги:
Всего голосов 5: ↑4 и ↓1+7
Комментарии1

Представлен открытый проект Winhance. Это приложение на C#, предназначенное для удаления лишних программ, оптимизации и настройки работы с Windows 10/11 - от управления программным обеспечением до оптимизации и настройки системы,

Winhance включает в себя большинство тех же улучшений, что и UnattendedWinstall, но без необходимости чистой установки Windows.

Теги:
Всего голосов 6: ↑5 и ↓1+5
Комментарии1

Поддержка браузера Firefox 115 для Windows 7, 8 и 8.1 продлена до августа текущего года.

Хорошая новость, не нашёл поиском в ранее опубликованном.

Если Windows 7 закрывает все потребности юзера, значит эта и есть самая лучшая ОС для данного юзера.

А создателям Firefox респект. Очень нужный софт поддерживают.

Теги:
Всего голосов 9: ↑9 и ↓0+10
Комментарии0

Всем привет. Я чувствую себя новым человеком! Перешёл на Linux, потому что моя Windows 10 посыпалась после гибернации. Sfc пишет, что всё нормально. Dism — тоже. Тогда мне понадобилось разрешение на запуск: ярлыки, UAC для папок в загрузках, а «Пуск» вообще отказался работать. Лучшим выбором стал Zorin OS, но я устанавливал его два раза. Первый: переход с Windows, второй: после запуска в WinPE для проверки карты памяти (всё-таки Victoria не заработала через Wine) моя разметка диска превратилась в RAW, и мне пришлось заново создавать загрузочную таблицу. Пользуюсь пингвином (маскот Linux) уже два дня, немного непривычно после Win+R, но привыкну. У меня уже был опыт пару недель, и это помогло. Я не жалею, что удалил NTFS-разделы.

Upd1: Linux слишком гибкий. Вот я пытался накопать библиотеку libnss3 для hl2_linux и в итоге снёс gnome и спустя 2 часа ручного восстановления и зубрения пакетов apt я вернул всё как было

Теги:
Всего голосов 12: ↑5 и ↓70
Комментарии5

В Windows 11 могут наконец-то вернуть возможность менять положение панели задач стандартными средствами

Полное письмо доступно по ссылке на странице Windows Insider.

Таким образом, Microsoft идёт навстречу пользователям, но лишь через практически 5 лет после релиза Windows 11. Будем надеяться, эти изменения добавят в релизные версии, хотя возможно, что мы увидем их в Release channel лишь в 26h2, т. е. осенью. Более точных данных пока нет.

Ранее, примерно в феврале 2022, в тестовых билдах была добавлена ранее тестовой сборке 22557 (в канале Dev).

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

В остальном же, несмотря на недовольство многих опытных пользователей и системных администраторов, Microsoft продолжает свою политику AI first, за исключением лишь небольших послаблений вроде частичного отказа от внедрения Copilot в раздел уведомлений.

Напоследок, напомню, что Windows 10 в версии IoT ltsc 2021 (19044.x) продолжит поддерживаться до 2032 года.

Буду рад вашим комментариям и дополнениям по этой теме :). Идея этой заметки возникла после проверки почтового клиента, где обнаружилось свежее письмо-рассылка Windows insider.

Теги:
Рейтинг0
Комментарии7

Образ Windows в Рег.облаке

В Рег.облаке появился предустановленный образ Windows Server 2022 — сервер готов к работе через две минуты после создания, RDP-доступ настраивается автоматически.

Образ бесплатный, платить нужно только за ресурсы сервера: процессор, память, диск. При остановке сервера — только за IP и дисковое пространство. С лицензией два пути: принести свою (BYOL) или запустить Evaluation-версию — она работает без активации 180 дней. 

Где пригодится образ Windows:

  • разработка и тестирование — быстро поднять стенд, отладить приложение, проверить совместимость;

  • корпоративные Windows-сервисы — Active Directory, IIS, MSSQL, терминальные серверы;

  • GPU-задачи — образ оптимизирован под ML, 3D-рендеринг, CUDA-приложения;

  • временные проекты — запустить сервер на несколько дней для конкретной задачи, минимальная оплата от часа.

Доступно в регионах Москва, Санкт-Петербург, Самара, поддерживаются все тарифные линейки включая GPU-серверы.

Выбрать и заказать сервер можно на сайте Рег.облака.

Теги:
Всего голосов 1: ↑1 и ↓0+1
Комментарии0

Сделать ИИ подотчетным? Теперь это реально

Пока статья набирает просмотры, выкатили DCL Evaluator - v1.1.0 с webhook API. Любой LLM pipeline получает криптографическое доказательство каждого решения за 3 строки кода. Tamper-evident. Offline-capable. 🔗 fronesislabs.comGitHub

Теги:
Рейтинг0
Комментарии0
Установка сертификатов Минцифры одним CMD-скриптом: быстро, без бубна
Установка сертификатов Минцифры одним CMD-скриптом: быстро, без бубна

Коллеги, сделал небольшой утилитарный скрипт для установки сертификатов Минцифры.

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

Обычно это выглядит так:

• скачивание сертификатов
• импорт через MMC
• установка в разные хранилища
• повторить несколько раз

Чтобы упростить задачу, собрал архив со скриптом, который устанавливает все сертификаты пакетно.

В архиве:
— 2 корневых сертификата
— 3 удостоверяющих центра

Достаточно:

  1. распаковать архив

  2. запустить CMD-файл от имени администратора

Сертификаты автоматически добавляются в системное хранилище Windows.

Подробная статья и разбор:
https://it-apteka.com/ustanovka-sertifikatov-mincifry-odnim-cmd-skriptom-bystro-bez-bubna/

Скачать архив:
https://it-apteka.com/wp-content/uploads/2026/03/certs_install.zip

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

Теги:
Всего голосов 4: ↑2 и ↓2+1
Комментарии3

DHCPscan - Поиск паразитного DHCP в сети⁠

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

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

Я написал маленькую утилиту DHCPScan, которая делает одну простую вещь:

— отправляет DHCP Discover
— собирает все DHCP Offer
— показывает все DHCP серверы в сети
— разбирает DHCP options (DNS, gateway, NTP, option 43, option 82 и т.д.)

В итоге rogue DHCP находится буквально за несколько секунд и можно протестировать DHCP options легитимного сервера.

Подробнее читайте тут

Буду признателен, если протестируете утилиту и напишите фидбек.

Теги:
Всего голосов 7: ↑7 и ↓0+7
Комментарии8

Ближайшие события

Эксперты из Windows Latest опубликовали гайд на английском языке: как вручную отключить ИИ-функции в Windows 11 без сторонних утилит и дополнительных приложений.

Оглавление:

  1. Как полностью удалить приложение Copilot.

  2. Удаления логотипа Copilot из поиска Windows.

  3. Удаление AI Actions из меню Проводника.

  4. Как отключить Copilot в браузере Edge.

  5. Удаление функций Copilot из Блокнота для Windows 11.

  6. Удаление функции искусственного интеллекта из приложения «Фотографии» в Windows.

  7. Как отключить функции искусственного интеллекта в приложении Paint.

  8. Удаление функции искусственного интеллекта из Outlook.

  9. Удаление функции искусственного интеллекта из OneDrive.

  10. Отключение Gaming Copilot в Windows 11.

  11. Отключение эффектов Windows Studio на компьютерах с Copilot+.

  12. Как отключить и полностью удалить функцию «Запись событий Windows».

  13. Как отключить функцию «Click to Do» на компьютерах Copilot+.

Теги:
Всего голосов 2: ↑2 и ↓0+2
Комментарии0

Блогер встроил в обычный тостер Raspberry Pi 5, 7-дюймовый экран и кастомный корпус, а также Windows 98. Для управления поджаркой блогер написал собственную программу. Через неё можно опускать лотки и включать нагрев. Сенсорный экран в Windows 98 до конца не заработал, поэтому управлять системой нужно мышкой. Но самое главное — компьютер жарит хлеб.

Теги:
Всего голосов 5: ↑5 и ↓0+7
Комментарии0

Операционной системе Windows XP в этом году исполняется 25 лет. Давно закончились не только основной цикл поддержки, но и все хвосты. Для обычной XP обновления безопасности прекратились 8 апреля 2014 года, а последняя официально поддерживаемая производная от XP — Windows Embedded POSReady 2009 — получала патчи лишь до 9 апреля 2019 года. Но это не значит, что из-под XP нельзя бродить по современному Вебу.

Bob Pony, энтузиаст старых итераций Microsoft Windows и прочего компьютерного ретро, обратил внимание на проект Chromium for Windows 7. Браузер Chromium сам по себе в последний раз поддерживал Windows 7, 8 и 8.1 в версии 109 (февраль 2023 года, 3 года назад), и этот порт предназначен для запуска на этих системах.

На самом деле для Windows XP в качестве браузера обычно рекомендуют Supermium или Thorium, если речь про основанные на Firefox сборки — Mypal, разные билды Roytam1 или какой-нибудь Arctic Fox. Вот только версии Chromium в Supermium не самые новые. Если судить по релизам, текущая версия Supermium основана на замороженной ветке Chromium 138 ESR с апстрим-фиксами безопасности и исправлениями багов. Chromium for Windows 7 на этом фоне выглядит лучше: на момент написания этих строк он основан на Chromium 145.0.7632.75, а два дня назад вышла сборка на 147.0.7689.0. К тому же Supermium — это отдельный продукт со своими целями и решениями, а у Chromium for Windows 7 задача состоит именно в патчах совместимости для запуска на старых версиях Windows. (Кстати, у этого подхода есть и недостатки: Supermium прямо заявляет, что выпиливание Manifest V2 не планируется, в отличие от).

Но вернёмся к XP. Как оказывается, Chromium for Windows 7 после танцев с бубном удаётся запустить на Windows XP Service Pack 3. Порядок действий описан в Issue #7 Это настоящий инженерный ритуал: нужно подолжить враппер kernelxp.dll, поправить импорты в chrome.dll, возможно, отключить песочницу через флаг --no-sandbox и так далее. Хотя вообще-то у проекта нет цели запуска на этой системе, в релизах встречаются (1, 2, 3) точечные фиксы именно для Windows XP.

Запуск Chromium 140 на Windows XP RC2 Build 2526. unclecaptain5426
Запуск Chromium 140 на Windows XP RC2 Build 2526. unclecaptain5426

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

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

Теги:
Всего голосов 5: ↑5 и ↓0+7
Комментарии0

Навеяно сегодняшней статьёй «История: как Microsoft шесть раз отказывалась от виджетов, но потом возвращала их».

Понятно, что Майкрософт просто хочет содрать с бедолаги, купившего (тем более, скачавшего) винды, 33 шкуры. И поэтому делает как бы виджеты, но они все должны вести туда, куда хочет Майкрософт. В Copilot, MSN и тому подобные места. Но давайте помечтаем, что могла бы сделать Майкрософт, если бы по-настоящему хотела сделать своим юзерам удобно.

  1. Виджет это приложение, точка Приложения бывают хорошие, годные и злые, вредные. Любое приложение может сломать ваш компьютер, украсть данные и деньги. Ответственность делится так: автор приложения прилагает все усилия, чтобы приложение не делало ничего плохого. Юзер прилагает все усилия, чтобы не ставить подозрительные приложения хрен пойми откуда. Если вам кажется, что это наивно, вспомните, что именно эта схема действует на PC прямо сейчас. На Github'е @dartraiden выложил драйвер (даже не простое приложение!), который позволяет использовать недорогие карты для майнинга вместо видеокарт (за 10-15% от цены последних) и написал: «Если вы мне не доверяете, вот инструкция, как собрать драйвер самому». Спасибо, но что-то не хочется )). Собирать драйвер самому. Я доверяю автору проекта! А ещё — авторам редактора Notepad++, браузера Firefox, файлового менеджера FAR (который почти в каждой сессии просит права админа, потому что я захожу им в системные папки) и многим другим авторам приложений.

  2. Любое приложение может зарегистрировать себя в качестве виджета. Такая технология у Майкрософт уже есть, и называется ActiveX. Она до сих прекрасно работает (в день, когда сломается ActiveX, я перейду на Линукс, потому что только старые приложения меня под виндой и держат).

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

    Этот файл просто создаёт маленькое окошко (говоря техническим языком, window handle), может быть написан на C или Rust, занимать килобайты и работать со скоростью света.

    Всё, что вам нужно — дополнительно записывать при регистрации идентификатор своего ActiveX-компонента в ветку реестра с виджетами.

    Чтобы было проще создавать виджеты на HTML/CSS/JS, Майкрософт мог бы добавить новый тип проекта в Visual Studio: HTML Widget. Он брал бы файлы .html/.css/.js, метаданные и запаковывал бы в ActiveX-компонент вместе с WebView2 (браузерным окном). И ваш виджет отображался бы при помощи Chromium, как это делает приложение (не виджет) Steam, но весил бы, в отличие от Steam, ровно столько, сколько весят картинки и текст.

    Разумеется, ничто не мешало бы создать виджет на C#, Qt, Delphi, на базе своей версии Chromium (как это делает Steam), на базе Gecko, на базе чего угодно.

  3. Будучи хозяйкой бала, Windows предлагала бы юзеру зарегистрированные виджеты перетаскивать из палитры виджетов в следующие места: а) рабочий стол, б) панель задач, в) меню «Пуск». Разумеется, любой виджет обязан был бы имплементировать помимо стандартных интерфейсов ActiveX-компонента специальный интерфейс IAmWidget и через него рассказывать о своих требованиях. Так что виджет, которому нужна минимальная площадь 512x512 пикселей, можно было бы создать только на рабочем столе.

  4. В каждом из этих мест виджет вписывался бы в стандартную сетку (на рабочем столе такая используется для выравнивания ярлыков, на панели задач — это квадратик ярлыка или прямоугольник приложения). Поместить другие элементы (ярлыки) в занятое место было бы нельзя.

Теги:
Рейтинг0
Комментарии0

MiniFilter и Protector/Rejector (ObCallback) в одном драйвере с управлением через C#

В продолжение этого поста.

Предлагаю вашему внимаю мою поделку основанную на MiniFilter, ObCallback и Avalonia

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

C# код для управления драйвером:

using System;
using System.Diagnostics;
using Avalonia.Controls;
using Avalonia.Interactivity;
using Avalonia.Threading;
using SharpMiniFilter.Driver.MiniFilter;
using SharpMiniFilter.Driver.Protector;

namespace SharpMiniFilter.Protected;

public partial class MainWindow : Window
{
    private bool allowClose = false;
    
    public MainWindow()
    {
        InitializeComponent();
        this.Closing += (sender, args) =>
        {
            args.Cancel = !allowClose;

            if (!args.Cancel)
            {
                ProtectorClient.ReplaceProtectList(Array.Empty<string>());
                ProtectorClient.ReplaceRejectList(Array.Empty<string>());
                MiniFilterClient.CloseConnection();
                MiniFilterClient.DriverFilter -= DriverClientOnDriverFilter;
            }
        };
        
        MiniFilterClient.DriverFilter += DriverClientOnDriverFilter;
        
        if (MiniFilterClient.Connect())
        {
            ProtectorClient.ReplaceProtectList(new[] { $"PID:{Process.GetCurrentProcess().Id}" });
            ProtectorClient.ReplaceRejectList(new[] {  "*cmd.exe" });
            
            Log_TextBox.Text += "Added current process to protection list." + Environment.NewLine;
            Log_TextBox.Text += "Added cmd.exe to reject list." + Environment.NewLine;
        }
        else
        {
            Log_TextBox.Text += "Connection to driver failed." + Environment.NewLine;
            MiniFilterClient.DriverFilter -= DriverClientOnDriverFilter;
        }
    }

    private void DriverClientOnDriverFilter(MinifilterEventArgs e)
    {
        Dispatcher.UIThread.Invoke(() =>
        {
            if (e.Path.Contains("test.txt"))
            {
                if (!Process.GetProcessById((int)e.ProcessId).ProcessName.ToLower().Contains("notepad"))
                {
                    e.SetHandled(true);
                    Log_TextBox.Text += "Minifilter: test.txt blocked" + Environment.NewLine;
                }
                else
                {
                    e.SetHandled(false);
                    Log_TextBox.Text += "Minifilter: test.txt not blocked for notepad.exe" + Environment.NewLine;
                }
            }
        });
    }

    private void Button_OnClick(object? sender, RoutedEventArgs e)
    {
        allowClose = true;
        this.Close();
    }
}

Бонусом - создание .cab файла для отправки в Microsoft на сертификацию при Release сборке.

Ссылка на репозиторий.

P.S. Если вам будет интересно, а у меня силы и карма - то расскажу, что там и как в отдельной статье. А теперь и ответ на всех мучающий вопрос: "Почему пингвин пошёл в горы?"

Теги:
Всего голосов 1: ↑0 и ↓1-1
Комментарии2

Отправка уведомления от имени другого приложения

Результат
Результат

В продолжение этого поста

Когда у вас AOT приложение, которое запускается от администратора - 99% библиотек для работы с COM не работают, плюс для Windows App SDK отдельно указано "Notifications for an elevated (admin) app is currently not supported.", а issue на github висит с 2023 года и поэтому для отправки системных уведомлений надо выкручиваться через другое приложение/PowerShell.

Пример как отправлять уведомления:

using System.Diagnostics;
using Windows.UI.Notifications;
using Microsoft.Toolkit.Uwp.Notifications;
using Vanara.PInvoke;
using Vanara.Windows.Shell;

namespace ConsoleNotifications;

class Program
{
    static async Task Main(string[] args)
    {
        string messageTitle = "Habr";
        string messageText = "Hello Habrahabr!";
        string targetExePath = Environment.SystemDirectory + "\\notepad.exe";
        string appUserModelId = GetAppAumid().First(var=>var.Name.Contains("Chrome")).Aumid;
        await SendNotification(appUserModelId, messageTitle, messageText, targetExePath);
    }

    private static Task SendNotification(string appUserModelId, string title, string content, string targetPath)
    {
        var tcs = new TaskCompletionSource();
        var notification = new ToastNotification(new ToastContentBuilder().AddText(title)
            .AddText(content).Content.GetXml());
        notification.Priority = ToastNotificationPriority.High;
        notification.Activated += (s, e) =>
        {
            Process.Start(new ProcessStartInfo(targetPath));
            tcs.SetResult();
        };
        notification.Failed += (s, e) => tcs.SetResult();
        notification.Dismissed += (s, e) => tcs.SetResult();
        ToastNotificationManager.CreateToastNotifier(appUserModelId).Show(notification);
        return tcs.Task;
    }
    
    public sealed record AppAumidInfo(string Name, string Aumid);
    
    public static List<AppAumidInfo> GetAppAumids()
    {
        var results = new List<AppAumidInfo>();
        var f = new ShellFolder(Shell32.KNOWNFOLDERID.FOLDERID_AppsFolder);
        foreach (ShellItem i in f.EnumerateChildren(FolderItemFilter.NonFolders | FolderItemFilter.Folders))
            results.Add(new AppAumidInfo(i.Name, i.ParsingName));
        return results;
    }
}

В вызываемом приложении надо выставить AppUserModelID и предварительно создать ссылку на него

[LibraryImport("shell32.dll", SetLastError=true)]
internal static partial void SetCurrentProcessExplicitAppUserModelID([MarshalAs(UnmanagedType.LPWStr)] string AppID);

Создание .lnk ссылки с параметрами:

var link = new ShellLink()
{
        ToastActivatorId = guid, 
        AppUserModelID = appUserModelId,
        TargetPath = exePath
};
link.Save(shortcutPath);

P.S. Буду рад услышать про другие существующие решения этой проблемы

Теги:
Всего голосов 3: ↑3 и ↓0+3
Комментарии0

Открытый проект CompactGUI оптимизирует дисковое пространство, занятое играми. Степень сжатия — до 60%. Это не архивация — игры не запаковываются в ZIP и RAR, тут совершенно другой метод. Игры продолжат работать как обычно — ярлыки и папки будут на месте. Если игра обновилась в Steam, то решение само досожмёт обновление. Проект использует встроенные алгоритмы Windows.

Теги:
Всего голосов 4: ↑1 и ↓30
Комментарии0
1
23 ...