Статьи с тегом «Windows»
Статьи с тегом «Windows» (87 шт.), от новых к старым.
-
Внутреннее устройство виртуализации Windows (часть 3) — виртуальные машины, которые стартуют за секунды: почему WSL2, Windows Sandbox и контейнеры такие лёгкие
Почему WSL2 и Windows Sandbox стартуют за секунды и остаются лёгкими. Разбираем динамический базовый образ, direct map, динамическое распределение памяти и к...
-
Внутреннее устройство виртуализации Windows (часть 2) — память, которую не видит даже ядро: как устроены VBS, HVCI и Credential Guard
На совместимом оборудовании при чистой установке VBS включена по умолчанию: гипервизор и SLAT создают изоляцию сильнее ядра. Разбираем устройство VTL, Secure...
-
Внутреннее устройство виртуализации Windows (часть 1) — где работает ваш Windows: гипервизор и разделы
Если включить Hyper-V, хостовый Windows сам работает поверх гипервизора как корневой раздел. Разбираем основу виртуализации: роли VT-x, SLAT и VMBus.
-
Пул потоков Win32 — параллелизм через CreateThreadpoolWork без своих потоков
Не плодите ли вы CreateThread по всему нативному коду? Разбираем API пула потоков Win32, переработанный в Vista: четыре объекта work, timer, wait и io, групп...
-
Именованные каналы на практике — от проектирования до безопасности IPC в Windows
Практический разбор именованных каналов — стандартного IPC в Windows. По первоисточникам: выбор байтового режима и режима сообщений, сервер на несколько клие...
-
Приложение ломается после спящего режима — события питания Windows и устойчивое восстановление
Открыли ноутбук — соединения бизнес-приложения уже мертвы. Так бывает, когда логика не рассчитана на спящий режим. Разбираем цепочку уведомлений WM_POWERBROA...
-
DllMain и блокировка загрузчика — почему говорят «ничего не делайте при инициализации DLL»
Почему из DllMain нельзя вызывать LoadLibrary и синхронизироваться с другими потоками. По первоисточникам: как блокировка загрузчика сериализует все уведомле...
-
«Не отвечает»: как Windows определяет зависание и как проектировать так, чтобы оно не возникало
«Не отвечает» в Windows — это решение ОС: окно 5 секунд не извлекает сообщения, и система подменяет его фантомным окном. Разбираем критерий, типичные причины...
-
Ложное пробуждение: почему wait на условной переменной возвращается без уведомления и как ждать в Windows
wait на условной переменной может вернуться и без уведомления (ложное пробуждение). Разбираем по реализации Windows, почему спецификация это допускает, и пок...
-
Буфер обмена и перетаскивание: OLE-передача данных в бизнес-приложениях
Таблица из Excel вставляется «криво», а после закрытия исходного приложения вставить уже нельзя — оба случая объясняются тем, что буфер обмена держит одно и ...
-
WPR/WPA на практике: как разбирать «весь ПК тормозит» по всей системе
«Весь ПК тормозит» и «долго загружается» — проблемы, которые Диспетчер задач не объясняет. Их разбирают по общесистемной ETW-трассировке: записывают через WP...
-
Завершение работы Windows со стороны приложения — уведомления, перезагрузка и отключение питания
Ночная перезагрузка Windows Update повредила данные измерений — такую аварию можно предотвратить на этапе проектирования. По первичным источникам: как приним...
-
Доступность приложений Windows: UI Automation и разумное приспособление
На фоне поправки к Закону Японии об устранении дискриминации в отношении инвалидов, вступившей в силу в апреле 2024 года, статья на практике разбирает UI Aut...
-
Японские шрифты в бизнес-приложениях: JIS2004, IVS и пользовательские символы
«На экране и в печатной форме 葛 выглядит по-разному.» «Иероглиф в имени не отображается.» Такие сбои в бизнес-системах становятся понятными, если разделить с...
-
От групповой политики к Intune — руководство по миграции для малого и среднего бизнеса
Когда подходит срок замены сервера AD, продолжать групповую политику или перейти на Entra ID и Intune? Для малого и среднего бизнеса разбираем, чем отличаютс...
-
Учётные записи служб Windows: LocalSystem, виртуальные учётные записи и gMSA
Службы Windows всё ещё запускают от LocalSystem? Статья сравнивает права и то, кем служба выглядит в сети, у LocalService, NetworkService, виртуальных учётны...
-
OneDrive «Файлы по запросу» и бизнес-приложения — какие предпосылки ломают заполнители и что с этим делать
CSV с рабочего стола не читается, импорт падает с «файл не найден» — причина может быть в KFM и «Файлах по запросу» OneDrive. Разбираем заполнители, как опре...
-
Как продлить работу старых приложений в Windows: режим совместимости, шимы и Compatibility Administrator
Почему после включения режима совместимости снова запускается старое приложение. Разбираем шимы (перехват API), типичные исправления, развёртывание через Com...
-
Глубины памяти Windows (часть 3) — объекты секций и копирование при записи: как устроены DLL и проецирование файлов
Разбираем объекты секций, проецирование образа и данных, общий кэш и копирование при записи: как DLL и общая память делят одни и те же физические страницы.
-
Интеграция с оболочкой Windows ── контекстное меню, сопоставление файлов и изменения в Windows 11
Почему в Windows 11 пункты контекстного меню оказываются за «Показать дополнительные параметры»: разбираем цепочку расширение → ProgID → verb, ограничения кл...
-
Корпоративный прокси и приложения Windows — как WinINET, WinHTTP и .NET выбирают прокси
Браузер выходит в интернет, а бизнес-приложение не проходит корпоративный прокси. Чаще всего WinINET, WinHTTP, переменные окружения и .NET читают разные пара...
-
Глубины памяти Windows (часть 2) — жизненный цикл физической страницы: пять списков и файл подкачки
Разбираем, как связаны база данных PFN, Standby, Modified, сжатие памяти и файл подкачки, и куда уходит физическая страница, когда её убирают из Working Set.
-
Захват пакетов в Windows на практике — pktmon, netsh trace и Wireshark
Сбой связи, в журнале приложения которого остаётся только «timeout», разбирают по пакетам, которые реально прошли по проводу. Даже на сервере без Wireshark з...
-
Глубины памяти Windows (часть 1) — момент, когда виртуальный адрес становится физической ОЗУ: ошибка страницы от начала до конца
Связываем VirtualAlloc, VAD, таблицы страниц, TLB, demand-zero и жёсткие ошибки страниц и разбираем момент, когда виртуальному адресу назначается физическая ...
-
Как читать коды ошибок Windows — Win32, HRESULT и NTSTATUS
Если появился 0x80004005, сначала разберите код, а не ищите его вслепую. Три системы Win32, HRESULT и NTSTATUS, шаблон 0x8007xxxx как упакованная ошибка Win3...
-
Как читать «использование памяти» в Windows: Working Set, Private Bytes, Commit и файл подкачки
Столбец «Память» в диспетчере задач, Working Set, Private Bytes и Commit — это разные величины. Разбираем связь виртуальной и физической памяти Windows, роль...
-
Многопоточность на C: практические рекомендации — безопасно по правилам Win32 API
На C с Win32 потоки создают через _beginthreadex, внутри процесса берут SRW-блокировку и условные переменные, одиночные переменные обновляют Interlocked, ост...
-
Практические приёмы многопоточности в C++: как RAII и jthread убирают аварии из конструкции
В C++ гонка данных — это неопределённое поведение. Разбираем ловушку деструктора std::thread, остановку через jthread и stop_token, предотвращение взаимных б...
-
Практические рекомендации по многопоточности: .NET — что решить до добавления потоков
Проверенные приёмы проектирования на .NET/C#, чтобы код не «иногда падал или зависал»: не создавать потоки вручную и опираться на Task, сокращать разделяемое...
-
Служба теневого копирования тома (VSS): как снимают резервную копию занятого файла
Занятый файл обычно нельзя скопировать из‑за нарушения совместного доступа — почему тогда это удаётся программам резервного копирования? Разбираем роли запра...
-
WMI/CIM из C# и PowerShell — практическое руководство по сведениям об оборудовании, мониторингу процессов и удалённым запросам
WMI/CIM — стандартный способ получить серийный номер ПК, следить за свободным местом на диске и ловить запуск процессов. Разбираем командлеты CIM вроде Get-C...
-
Групповая политика (GPO) на практике: как применяется, как проверить и когда брать Intune
Работаете в AD и не до конца понимаете, что значит «это настроено через GPO»? Разбираем устройство групповой политики и порядок LSDOU, как проверить применен...
-
Политика аудита безопасности Windows и расследование журнала событий на практике — как стать ИТ-службой, которая умеет читать 4625
Практическое руководство, чтобы ответить на просьбу «посмотрите журналы неудачных входов». Разбирает связь базовой и расширенной политики аудита, минимально ...
-
Windows LAPS на практике — больше не используем один локальный пароль администратора на всех ПК
Один локальный пароль администратора на всех ПК — благодатная почва для Pass-the-Hash: компрометация одной машины открывает остальные. Разбираем автоматическ...
-
Хранилище сертификатов Windows на практике — пользователь или компьютер
Куда помещать клиентский сертификат — в хранилище пользователя или компьютера. Практическое руководство закрывает типичные сбои: разница certmgr.msc и certlm...
-
Брандмауэр Windows и бизнес-приложения — входящие правила регистрирует установщик
«На машине разработчика работает, у заказчика не соединяется» почти всегда упирается в брандмауэр Windows. Разбираем блокировку входящих по умолчанию и профи...
-
BitLocker на практике — шифрование диска начинается с ключа восстановления
Начиная с Windows 11 24H2 при чистой установке шифрование устройства включено по умолчанию, и случаи «обнаружили уже зашифрованным» уже происходят. По таблиц...
-
Глубины ввода-вывода Windows (часть 6, финал) — фильтры и минифильтры: почему Procmon и антивирусное сканирование могут перехватывать I/O
Финал серии со схемами драйверов фильтров и минифильтров Windows. Диспетчер фильтров и высота (altitude), обратные вызовы pre/post, как Procmon и антивирус п...
-
Глубины ввода-вывода Windows (часть 5) — внутреннее устройство NTFS: файловая система через MFT
Часть 5 серии со схемами внутреннего устройства NTFS. MFT и записи файлов, несколько потоков данных (Zone.Identifier), жёсткие ссылки и имена 8.3, точки повт...
-
Глубины ввода-вывода Windows (часть 4) — диспетчер кэша: когда WriteFile оказывается на диске
Четвёртая часть серии со схемами диспетчера кэша Windows. Разбираем кэш как проекцию файла, упреждающее чтение и отложенную запись, когда применять FlushFile...
-
Обработка ошибок и retry в PowerShell — от ловушки нерабочего try/catch до exit code и типовых схем повтора
На практике разбираем различие завершающих и незавершающих ошибок PowerShell, ловушку, из-за которой не срабатывает try/catch, стандартный приём -ErrorAction...
-
Политика выполнения PowerShell и подпись скриптов — как отказаться от Bypass в роли постоянной заглушки
Политика выполнения PowerShell — не граница безопасности, а защитный механизм. В статье разобраны различия RemoteSigned и других политик, приоритет областей ...
-
Как устроена изоляция сеансов Windows — Session 0, RDP и одновременная работа нескольких пользователей
Разбираем понятие «сеанса», которое часто путает разработчиков Windows-приложений. С практической стороны объясняем, почему изоляция Session 0 не даёт службе...
-
Защита Windows-приложения от повторного запуска — именованный Mutex и активация окна при втором старте
Разбираем, как в бизнес-приложении Windows запретить повторный запуск через именованный Mutex. Разберём ловушку RDP из-за разницы Global\ и Local\, Abandoned...
-
Аутентификация Entra ID в WinForms и WPF: MSAL.NET и брокер WAM
Как добавить вход через Entra ID в десктопное приложение WinForms или WPF: общедоступный клиент, регистрация приложения, AcquireTokenSilent в MSAL.NET, броке...
-
Дата, время и часовые пояса в бизнес-приложениях — ловушки DateTime, хранение в UTC и тесты
После переноса сервера время сдвигается на 9 часов. Разбираем, откуда берутся такие сбои: Kind у DateTime и неявные преобразования. Дальше — когда брать Date...
-
UI-автотесты десктопных приложений Windows — UI Automation и устойчивые тесты на FlaUI
Разбираем UI-автотесты WinForms и WPF с устройства Windows UI Automation. Минимальная реализация на FlaUI, AutomationId и ожидание по условию, чтобы тесты не...
-
Высокий DPI в WPF — почему «к DPI должен быть готов», а на деле всё размывается
WPF по умолчанию System DPI Aware, но при переносе окна на монитор с другим DPI всё изображение размывается, а растр теряет резкость. Разбираем диагностику, ...
-
Поддержка высокого DPI в WinForms — почему на 4K размывается или ломается макет
Разбираем, почему WinForms-приложение на 4K-мониторе размывается или ломается: виртуализация DPI и режимы осведомлённости о DPI (System Aware / Per-Monitor V...
-
Как выбрать межпроцессное взаимодействие в Windows — таблица: именованные каналы, TCP, gRPC, разделяемая память, COM
Как выбрать способ связи между Windows-приложениями. В таблице решений разобраны сильные стороны и типичные ошибки именованных каналов, локального TCP, gRPC,...
-
SQLite в бизнес-приложениях на C# — режим WAL, блокировки записи, защита от повреждений и выбор EF Core
Практические сведения о встраивании SQLite в бизнес-приложение через Microsoft.Data.Sqlite: режим WAL, SQLITE_BUSY и сведение записи к одному пути, ловушки с...
-
Как создать и эксплуатировать службу Windows — от выбора между Планировщиком заданий и службой до превращения BackgroundService в службу
Стоит ли держать постоянно работающую обработку как службу Windows или хватит Планировщика заданий. Практический разбор: таблица выбора, создание службы на ....
-
После режима IE — подойдёт ли WebView2? Ограничение ActiveX и реалистичный план миграции
С точки зрения внутренних корпоративных систем разбираем устройство WebView2, стратегии распространения Evergreen и Fixed Version, типичную ошибку с папкой п...
-
Где хранить данные Windows-приложения: таблица решений SQLite / JSON / реестр / Access
Куда и в каком виде хранить данные настольного Windows-приложения. Разбираем выбор между AppData и ProgramData, сильные стороны и ловушки SQLite, JSON-файлов...
-
Планировщик заданий не запускается или завершается с 0x1 — диагностика и надёжная эксплуатация
Разбираем, как вывести периодические задания Windows в стабильную эксплуатацию: учётная запись выполнения и тип входа, типичные причины завершения с 0x1, вкл...
-
Что такое MFC в Windows: основы для сопровождения существующих приложений
Разбираем обзор Microsoft Foundation Classes (MFC): связь с Win32, структуру приложения, карты сообщений, архитектуру Document/View, DDX/DDV и нюансы, важные...
-
Что сделать перед утилизацией Windows PC — практический чек-лист по стиранию данных, отвязке учётных записей и резервному копированию
Что стоит сделать перед утилизацией, передачей, продажей или возвратом лизингового ПК с Windows: резервное копирование, стирание данных, BitLocker, учётная з...
-
Что продумать перед заказом разработки Windows-приложения
Перед заказом разработки Windows-приложения разберём, что стоит прояснить: доработка существующего ПО, интеграция с оборудованием, COM/ActiveX, развёртывание...
-
Как работать с токенами олицетворения Windows — олицетворение на уровне потока и безопасный откат
В статье собраны практические правила безопасной работы с токенами олицетворения Windows: токен доступа, первичный токен, токен потока, уровни олицетворения,...
-
Как запустить PowerShell из C# (CSharp) и получить результат в виде объектов
Разбираем, как запустить PowerShell из C# и получить результат не строкой, а как PSObject: PowerShell SDK, AddCommand, AddParameter, BaseObject, Properties и...
-
Тесты PowerShell на Pester — практическая схема, которая делает эксплуатационные скрипты устойчивее к поломкам
Практические шаги, как тестировать PowerShell-скрипты на Pester v5: даты, файловые операции, удаление, Mock и запуск в CI выстраиваем безопасно.
-
Почему Windows стала такой: эволюция глазами разработчика
Прослеживаем изменения от Windows 95 до Windows 11 не как хронику внешнего вида, а глазами разработчика Windows-приложений: совместимость, стабильность, прав...
-
Настройка CPU для разработчика Windows-приложений: приоритет, affinity, P-ядра и E-ядра
Для разработчиков Windows-приложений: как связаны приоритет CPU, affinity, P-ядра и E-ядра, настройки питания и EcoQoS/Efficiency Mode, и как измерять произв...
-
Странная любовь разработчика, или Как я перестал беспокоиться и полюбил Windows
Windows — штука хлопотная. Но эти хлопоты — как раз от того, что это ОС, которая тащила на себе реальную работу.
-
Практические команды PowerShell — мелкие приёмы для повседневной работы
Разбираем практические команды PowerShell для повседневной работы: где применять Measure-Object, Group-Object, Select-String, Compare-Object, Tee-Object, Sta...
-
PowerShell на практике — безопасная автоматизация анализа логов, архивирования и отчётов
Разбираем практический порядок безопасной работы со скриптами PowerShell: анализ логов, CSV-отчёты, архивирование старых логов, сохранение артефактов запуска...
-
Основы команд PowerShell — операции, которые стоит выучить первыми, и как использовать их безопасно
Чтобы в реальной работе не теряться с PowerShell, разбираем поиск командлетов, конвейер, операции с файлами, обработку CSV, политику выполнения и порядок про...
-
Почему Windows показывает сообщение «Windows защитил ваш компьютер»
Разбираем на практике, почему при распространении Windows-приложения появляется предупреждение SmartScreen: подпись кода, сертификаты EV/OV, Azure Artifact S...
-
Как избавиться от зависимости внутренних веб-систем от режима IE
Практические шаги, как безопасно продлить жизнь внутренних веб-систем, зависящих от режима IE в Microsoft Edge, и одновременно выйти из этой зависимости. Раз...
-
Office 2024/Microsoft 365: почему не работает ActiveX и как это диагностировать
Когда ActiveX не работает в Office 2024/Microsoft 365, разбираем порядок диагностики: отключение по умолчанию, 32-бит/64-бит, регистрация COM, зависимые DLL,...
-
Гид по подготовке VBA и внутренних инструментов к отказу от VBScript
Готовимся к поэтапному отказу от VBScript: инвентаризация VBA, макросов Excel и внутренних инструментов, статическое обнаружение, сбор логов выполнения, выбо...
-
Что такое GCPW — вход в Windows через аутентификацию Google
Разбираем устройство Google Credential Provider for Windows (GCPW): совместную работу с Windows device management, существующие профили, первый вход, офлайн-...
-
Кодировки текста и переводы строк в Windows — основы искажения текста и CRLF/LF
Разбираем часто путаемые в Windows Shift_JIS / UTF-8 / UTF-16, искажение кодировки и разницу между CRLF и LF так, чтобы по ним можно было принимать решения н...
-
Что такое ClickOnce — как устроен, как обновляется, где подходит и где нет
Разбираем ClickOnce — технологию распространения десктопных .NET-приложений для Windows: манифесты, обновления, кэш, подпись, а также случаи, где он подходит...
-
Как ускорить проверку приложений в Windows Sandbox
Разбираем, как с помощью Windows Sandbox быстрее локализовать проблемы с правами администратора, воспроизводить сценарии в чистом окружении и имитировать нех...
-
Как работает разрешение имён DLL в Windows — порядок поиска и SxS
Разбираем разрешение имён DLL в Windows с практической стороны: DLL search order, Known DLLs, loaded-module list, API set, SxS manifest и влияние API семейст...
-
Когда в Windows нужны права администратора — UAC, защищённые области и как это отличить на этапе проектирования
Разбираем на практике, когда в Windows нужны права администратора: UAC, защищённые области, службы, драйверы и проектирование per-user / per-machine.
-
Кодировки текста в Windows: кракозябры при обмене с Linux
Почему в Windows появляются кракозябры: на практике разбираем различия CP932, UTF-8, UTF-16, BOM, кодовых страниц, PowerShell и локали Linux.
-
Лучшие практики проверки и отображения состояния внешних устройств — не сводите всё к одному «Подключено»
В приложениях, работающих с внешними устройствами, сведение состояния к одному «Подключено» легко даёт неверные подсказки. Разбираем обнаружение, проверку от...
-
Чек-лист безопасной работы с дочерними процессами в Windows-приложении
Чтобы безопасно работать с дочерними процессами в Windows-приложении, важнее не API запуска, а владение деревом процессов и процедура завершения. Разбираем J...
-
Как выбрать способ распространения Windows-приложения — MSI/MSIX/ClickOnce/xcopy/свой updater
Способ распространения Windows-приложения — это не предпочтение формата установщика, а выбор глубины интеграции с ОС и того, кто отвечает за обновления. Разб...
-
Распространение Windows-приложения одним файлом — single binary и пределы зависимости от ОС
Когда хочется свести Windows-приложение к одному EXE, важно различать «сделать один файл поставки» и «убрать зависимость от ОС». Разбираем это на примере .NE...
-
Правила инструкций, которые уменьшают кракозябры Codex в Windows
Практические правила инструкций для Codex в Windows: не сохранять японские файлы наугад, сохранять исходную кодировку существующих файлов и проверять результ...
-
Введение в профили пользователей Windows — AppData и NTUSER.DAT
Базовое устройство профиля пользователя Windows: как разделять AppData, локальный / перемещаемый / Mandatory / Temporary, Folder Redirection, FSLogix и с чег...
-
Планирование процессора в Windows: «Фоновые службы» и P-/E-ядра
Что реально меняет параметр «Фоновые службы» в Windows: квант времени, предпочтение foreground, срывы звука и QoS на CPU с P- и E-ядрами.
-
Как правильно сравнивать скорость разных версий программы в Windows
Когда в Windows сравнивают версии программы, разбираем воспроизводимую методику: Power mode, Power plan, тепловой режим, фоновый шум, метрики измерения и раз...
-
Расширенные настройки NIC в Windows: RSS, LSO, EEE и Wake on LAN
Практический разбор расширенных настроек NIC в Windows. Что меняется, если трогать Jumbo Packet, Speed & Duplex, RSS, RSC, LSO, Flow Control, EEE, Wake on LA...