Windows 11, 10, etc - Вадим Стеркин
14.6K subscribers
281 photos
6 videos
8 files
1.08K links
Авторский канал. Windows, безопасность, мобильный мир:
• тайное знание
• мощный ликбез
• гадание по логам
• срыв покровов
• доставка пруфов

Чат: @winsiders
Блог: outsidethebox.ms
ЛС: @vsterkin
Донаты ₽: boosty.to/sterkin
РКН: https://clck.ru/3LBugC
Download Telegram
⚙️ Как предотвратить обновление Teams до новой версии

У коллег, использующих Teams на VDI, возникла проблема - в последних версиях Teams на совещаниях не видно расшаренный экран 📺 В старых версиях все ок, но они быстро обновляются автоматически. Задача: "заморозить" версию пока чинят баг.

ℹ️ У Microsoft нашлась документация как раз под VDI. Идея в том, что приложение Teams должно обновляться только вместе с образом VDI. В том числе и потому что ставится оно в Program Files, а у пользователя может не быть прав на обновление.

👉 Применять этот способ можно не только на VDI.

Вкратце:
1. В реестр прописывается параметр IsWVDEnvironment. По нему Teams определяет, что установлено на виртуальный десктоп.
2. Установка пакета MSI выполняется из командной строки с любопытными свойствами (по ссылке раритетная, но годная статья с OSZone).
🔹 ALLUSERS давно известно и даже фигурировало в блоге в контексте per machine установки OneDrive.
🔹 ALLUSER выглядит как кастомное свойство для пакета Teams, которое форсирует такой тип установки↑ на VDI.

После установки MSI у Teams нет опции обновления вручную - пункта Check for updates 👌

Грабли:
• войти в Teams можно будет только с учетной записью организации
• сначала нужно удалить обычную версию и Teams Machine Wide Installer, если установлены
• удалять MSI надо тоже из командной строки, следуя руководству
✌️
📅 О переходе на трехлетний цикл разработки Windows

На прошлой неделе слух вбросил портал Windows Central. В двух словах: крупные обновления #Windows11 будут выходить раз в три года, мелкие - несколько раз в год, но не больше четырех.

Думаю, в общей массе это будет воспринято как "ура, стабильность!" 💪 Не случайно первый же комментарий к новости на Community был именно таким. Эти же люди охотно верят в миф 7 о стабильности LTSC 🌈 Его тезисы применимы к новости, не буду копировать сюда.

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

⌛️ В 2015 году особо увлеченные маркетологи Microsoft в экстазе новой концепции WaaS (Windows as a Service) вещали чуть ли не про ежеквартальные обновления Windows 10. В документации больше двух не озвучивали, но даже от этого испуганный бизнес массово побежал в LTSC, откуда его потом с трудом выковыривали слезными призывами. Теперь же вроде никто не боится и даже радуются. Наверное, пока не осознали, что условно новая кнопка шмиджетов на панели задач в понедельник с утра может порождать массовые обращения в техподдержку 🤔 А если это четыре раза в год? ;)

Семь лет назад обновление до новой версии Windows осуществлялось путем установки поверх старой. Это было большим делом, к нему надо было тщательно готовиться, тестировать совместимость железа и ПО. Теперь у Microsoft масса способов доставки весьма существенных фич в рамках текущей версии: накопительные обновления, магазин, а также когорта experience packs на все случаи жизни - FEXP, WWEP, OSEP. И сейчас WaaS будет куда больше похожа на правду, чем при первом выпуске Windows 10! 👈

Для потребителей же ежеквартальные обновления - отличная новость! 🎉 Теперь не нужно будет ждать год, пока исправят очередную пачку огрехов UX или добавят фичу, давным-давно доставленную в инсайдерские сборки. Чтобы не пропустить новинки, надо будет заглядывать в описания накопительных обновлений (можно предварительных) и следить за новостями профильных ресурсов - рекомендую Community.

Я тоже не останусь в стороне от самых любопытных изменений Windows 11. Не переключайте каналы✌️
😎 Простой способ запуска Internet Explorer в Windows 11

Месяц назад IE хоронили в Windows 10, а в #Windows11 его как бы и не было - все точки входа скрыли сразу. Но еще прячется по углам недобитый враг, еще крадется ©

CreateObject("InternetExplorer.Application").Visible=true

и сохранить как .vbs 😂
⚙️ О совместимости 7-Zip с Windows 11 и альтернативах

В чате время от времени возникают дискуссии об опенсорсных разработчиках, которым интереснее кодить, чем делать удобную программу. Например, создатель отличного торрент-клиента qBittorrent регулярно выпускает минорные релизы, но отрицает магазин Windows. Поэтому next-next-next наше все... ну, или отключение обновлений программы 🙄

7-Zip - замечательный архиватор, но Игорь Павлов не считает нужным подписывать свой код. В Windows 11 неподписанное приложение нельзя интегрировать в новое контекстное меню. Поэтому пункты архиватора навсегда останутся в старом меню, для вызова которого нужно дополнительное телодвижение 🤷‍♂️ Даже если это вызов меню с Shift в 22H2.

👉 Есть не менее опенсорсный форк 7-Zip - приложение NanaZip (GitHub, Магазин):
- автоматическое обновление
- поддержка высоких разрешений и масштабирования
- автоматическая регистрация с типами файлов (архивами)
- интеграция в контекстные меню

Установка магазинной версии из командной строки:
winget install nanazip -s msstore
Для полной автоматизации можно добавить ключи принятия соглашений магазина и пакета:
--accept-source-agreements --accept-package-agreements

Для появления пункта NanaZip в контекстном меню может понадобиться перезапуск проводника. Enjoy ✌️
😎 Про установку #Windows11 с локальной учетной записью методом BypassNRO

Прием не новый, но раньше мне на глаза не попадался. Встретился он в таинственной формулировке, примерно такой: во время установки не подключайтесь к сети, на первом экране OOBE нажмите Shift+F10 и введите oobe\bypassnro. Магия! 🪄

Ларчик открывается просто. Сочетание клавиш запускает командную строку в папке C:\Windows\System32. В подпапку oobe разработчики заботливо положили файл bypassnro.cmd. Именно он и запускается командой, ибо расширение исполняемого файла указывать необязательно.

В файле две команды - внесение в реестр параметра BypassNRO и перезагрузка, после которой снова OOBE. Похоже, NRO означает - Network Requirement Oobe, т.к. параметр отменяет требование к наличию сети при установке. Маркетинг - маркетингом, а соломку для нестандартных бизнес-сценариев надо подстелить 🥊 Перезагрузка же нужна для вступления изменения в силу.

⚙️ С целью автоматизации этот параметр можно внести в реестр из файла ответов синхронной командой на этапе specialize. Но разве что на случай, когда выбор имени локальной учетной записи делегируется пользователю. Иначе аккаунт прописывается сразу в ФО - #классика блога в помощь.

Что ж, еще один коллекционный костыль от создателей Windows для обхода системных требований, заложенных в программу установки. Впрочем, способ 1@1.ru все равно легче запомнить✌️
🐞 О багах на стыке разных компаний

В моей статье про белок-истеричек времен 1809 в фокус попал баг с iCloud 🐿 Тогда сообщество активно возлагало вину на Microsoft. Я написал: В итоге, кто выпустит патч, тот и виноват. Спустя 5 дней это сделала Apple 🍏 Но в отличие от бага горячей новостью это не стало, как вы понимаете.

Об этой истории я вспомнил, когда разбирался с проблемой расшаривания экрана в Teams. Поставщики решений для VDI оптимизируют Teams (в первую очередь - видеоконференции), перекладывая работу по обработке медиапотока с виртуального десктопа на хост. VMWare Horizon - не исключение.

Я не нашел упоминаний о проблеме на сайте VMWare, но в форуме поддержки всплыла ссылка на любопытную и свежую статью в базе знаний NVIDIA о чем-то похожей неполадке. Там прекрасно все:

🔹 Заголовок начинается со слов невидимая панель управления Teams на VDI 👀
🔹 Причина: VMWare подтверждает, что это баг Microsoft (напомню, это висит на сайте NVIDIA :)
🔹 VMWare и Citrix в качестве обходного пути предлагают вносить в реестр параметры с именами типа PixelProviderForceViddCapture 🤷‍♂️

Видимо, клиенты катили бочку на NVIDIA (что было не лишено смысла, кстати). А ее поддержка достучалась до Citrix и VMWare за обходными путями.

Похоже, у этих двух проблем ноги растут из одного места. В смысле Microsoft. Ее вклад в статье не озвучен, только номер тикета 2204110010001327. Может быть, читающие меня сотрудники компании расскажут, что с ним стало ✌️
🌺 Что нового в #Windows11 22H2

Выпуск пока проходит обкатку в каналах Beta и RP. Однако известен номер финальной сборки (22622) и в целом понятен набор новых фич.

➡️ https://winreviewer.com/chto-novogo-v-windows-11-versii-22h2/

От создателей Winaero.com ✌️
▶️ О запуске скриптов сочетанием клавиш

Я часто вижу людей, которые хотят что-то немножко изменить в оболочке Windows или даже в стороннем ПО для решения своей узкой задачи. В начале августа в чате был всплеск.

Так, один участник хотел, чтобы сторонняя программа всегда предлагала сохранять файл с определенным именем. А второй - чтобы контекстное меню обрело волшебные пункты, но только в конкретной папке, да еще чтобы не править реестр 🤔

Все эти запросы зачастую объединяет ошибка номер 1. Что характерно, из второго участника даже этой ссылкой и наводящими вопросами не удалось вытащить описание задачи 😡 Он как заклинание повторял хотелку - пункты в меню. Третий же участник заметил, что тоже не отказался бы от такого пункта меню. Однако он сразу выдал задачу - создаю новый файл, туда вставляю содержимое другого файла (рыбы).

👉 Но это же легко скриптуется! А для скрипта можно создать ярлык и вызывать его сочетанием клавиш. Ровно ноль кликов. И не надо лезть в контекстное меню, что стало еще неудобнее в Windows 11.

Такой подход решает задачу и первого участника. Неважно с каким именем сохранять файл из программы. Важно, каким оно должно быть на диске! Сохрани с любым и запусти хоткеем скрипт #PowerShell, который переименует нужный файл в папке.

И да, я сам использую этот подход 💪 На работе так запускаю пару скриптов, а дома меняю заголовки в MKV и объединяю треки GPS. Я мог бы переходить в папку со скриптами в файловом менеджере или запускать их из консоли. Но мне лень, сочетание клавиш быстрее 🚀

Конечно, скрипт или его запуск сочетанием клавиш - не панацея 🤷‍♂️ В отличие от меню, скрипт не имеет контекста, т.е. путь к выделенному файлу не передается скрипту в качестве параметра. С другой стороны, редко используемое сочетание клавиш забывается. Это отчасти компенсируется указанием сочетания в имени ярлыка и мнемоникой (GPS↑ - Ctrl+Shift+G)

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

Да, еще нужно избавиться от туннельного зрения - научиться формулировать задачу и отличать ее от хотелки. С этим помогает справиться канал @sterkin_ru, он лечебный. Ведь у него тот же девиз, что и у блога: think outside the box!✌️
⚙️ Как определить приложение, захватившее сочетание клавиш

Читатель Роман прочел пост о запуске скриптов сочетанием клавиш и поинтересовался в личке вынесенным в заголовок вопросом.

⚙️ Приложения вычисляются без сторонних средств - методом половинного деления с помощью безопасного режима. Возможно, в каких-то случаях это не сработает. И такой подход точно не поможет, когда хоткей прописан в ярлыке.

Идеальной программы для решения задачи мне не попадалось. Напишите в чате, если знаете такую 📣 Впрочем, неплохо выглядит OpenArk с открытым исходным кодом, но неподписанным приложением.

ℹ️ Нужно войти в "режим ядра" и смотреть в System Hotkey. Приложения бросаются в глаза сразу. А если на explorer висит хоткей с двумя из трех модификаторов Ctrl/Shift/Alt и буквой, это наверняка ярлык.

Виновный ярлык несложно найти вручную, поскольку быстрый вызов работает только (?) на рабочем столе и вложенных в него папках. Но допустим, что вы наплодили 100500 ярлыков и не хотите руками просматривать свойства.

▶️ Для #PowerShell можно взять готовую функцию Get-Shortcut из модуля PoshFunctions. В ее основе объект COM и старый добрый WScript.Shell, так что мог быть и VBS. Но в PowerShell очень удобно передавать по конвейеру список ярлыков.

Get-ChildItem -Path $env:userprofile\desktop -Recurse *.lnk |
Foreach-Object {Get-Shortcut $_} | fl LinkPath,Hotkey

LinkPath : C:\Users\Vadim\Desktop\gpx-merge (Ctrl Shift G).ps1.lnk
Hotkey : Ctrl+Shift+G

LinkPath : C:\Users\Vadim\Desktop\LG - ctrl shift a.lnk
Hotkey : Ctrl+Shift+A

LinkPath : C:\Users\Vadim\Desktop\UpdateMKV ctrl shift n.lnk
Hotkey : Ctrl+Shift+N

✌️
🧩 Как запустить приложение с обычными правами из скрипта, выполняющегося с правами администратора

Это может понадобиться, когда в одном скрипте объединены задачи, требующие разного уровня прав. Вы же, надеюсь, не запускаете все приложения от имени администратора? Вот и здесь это не нужно. Конкретную задачу сейчас озвучивать не хочу, чтобы не спойлерить грядущую статью блога 😎 Пока просто показываю прием.

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

👉 Однако можно привлечь в качестве посредника оболочку, а точнее - приложение explorer. Оно может принимать в качестве параметра полный путь к программе. При таком запуске повышения прав программы не происходит!

Помните завещание мистера Гейтса? ⌛️ Нельзя просто взять и запустить проводник с полными правами! И его дочерние процессы как следствие.

Для демонстрации в качестве подопытного приложения идеально подойдет командная строка. Когда она запущена с полными правами, в заголовке написано "Администратор".

👍 - о, что-то новенькое!
👌 - я все это знаю
🙄 Как скачать Windows с сайта Microsoft в 202х году

Эх, не думал, что придется писать такую инструкцию... В связи с политической обстановкой Microsoft ограничила скачивание помощника по обновлению, Media Creation Tool и образов ISO со своего сайта. Но похоже реализацию поручили сотрудникам с ограниченными умственными возможностями 🤡

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

💩 Описание проблемы
Для примера я возьму страницу https://www.microsoft.com/ru-ru/software-download/home. Это - точка входа на все страницы загрузки Windows, которые тоже откроются на русском языке (в адресе ru-ru).

При скачивании с таких страниц возникает ошибка вне зависимости от вашего географического расположения или наличия VPN 🤦‍♂️ Более того, если вы уже получили эту ошибку, переход на английскую страницу https://www.microsoft.com/en-us/software-download/home и последующая закачка все равно завершится ошибкой.

В РФ свою лепту могут вносить провайдеры, блокируя те или иные ресурсы, необходимые для отображения страниц на сайте Microsoft. Поэтому они вообще могут загружаться пустыми.

Решение проблемы
Если у вас российский провайдер, сначала включите прокси или VPN.

1. Если вы уже столкнулись с ошибкой, воспользуйтесь приватным режимом / инкогнито любого другого браузера, в котором не получали ошибку.

2. В нем перейдите на страницу https://www.microsoft.com/en-us/software-download/home и выберите ОС.

3. Помощник по обновлению и MCT скачиваются без затей.
Для скачивания ISO выберите образ и язык (например, Russian) и нажмите Confirm. Будет создана ссылка на загрузку, которая живет 24 часа. По ней можно скачать без прокси/VPN.

4. PROFIT!

Решение сформулировано таким образом, чтобы как можно короче покрыть большинство проблемных сценариев на сегодня. Ошибка может не воспроизводиться лично у вас. Тогда просто поверьте, что она есть у других. Если же вам не удается добиться успеха, для загрузки ISO есть торренты и UUP 👌

🥊 Мнение
Я свободно владею английским языком. При этом 20 лет вношу вклад в сообщество русскоязычных пользователей продукции Microsoft. В прошлом году 38% посетителей моего блога проживали за пределами РФ. Большинство этих людей пользуются сайтом Microsoft на русском языке.

Раз уж решили ограничить, простой гео-блокировки российских провайдеров с внятным сообщением о причине было достаточно. Но компания устроила цирк, наказав при этом всех русскоязычных клиентов. В своих публикациях я нередко стараюсь разъяснять, почему Microsoft поступает так, а не иначе. Но на сей раз в голове крутится только Задорнов: "Ну тупые!" 😡
🕒 Новое в блоге: Нюансы настройки запланированного задания или как запустить невидимое приложение

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

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

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

➡️ Читайте в блоге https://www.outsidethebox.ms/21628/
📝 Скрытая возможность OCR в OneNote

У меня на проекте есть внутренняя база знаний в виде книги #OneNote. На днях коллега скопировал в заметку скриншот ошибки. Я заметил, что в таких случаях лучше вставлять текст, чтобы поиск работал. Но зная простой трюк, вы найдете текст и на картинке!

👉 В десктопном приложении OneNote можно активировать #OCR - распознавание текста на картинке. И тогда текст с нее можно будет найти поиском! Причем в мобильном и веб приложениях OneNote тоже найдется.

📱 На смартфоне для прикрепления изображений к странице привлекается Microsoft Lens. Поэтому можно на лету извлечь текст из картинки. Однако в этом случае на страницу вставляется только текст, но не изображение.

Lens тоже годная штука, кстати. Тут описание для Windows, а внизу статьи ссылки на мобильные приложения.

👍 - о, что-то новенькое
👌 - я все это знаю
▶️ Как быстро посмотреть, записывается ли в журнал событий результат некоего действия

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

Да, в четыре журнала Windows (Приложения, Система, Установка, Безопасность) можно и вручную быстро потыкать. Но есть еще десятки журналов приложений и служб...

👉 Конечно, решает #PowerShell, и в данном случае удобно задействовать хэш-таблицу.

Upd. Если этот код не сработал, читайте продолжение.

Get-WinEvent -ErrorAction 0 -FilterHashTable @{
LogName='*'
StartTime=(Get-Date).AddMinutes(-2)
}


🔸 -FilterHashTable создает хэш-таблицу, а главное - фильтрует содержимое журнала. Василий Гусев напоминает, что фильтр намного быстрее, чем Get-WinEvent | Where-Object ...

🔸 LogName='*' ищет во всех журналах, но можно смотреть в конкретных, перечисляя их через запятую:
LogName='Application','Microsoft-Windows-Diagnostics-Performance/Operational'

🔸 StartTime=(Get-Date).AddMinutes(-2) отбирает события, созданные в течение последних двух минут. И да, иногда надо немного подождать, чтобы событие зарегистрировалось.

ℹ️ С хэш-таблицей очень просто делать выборку по ID и уровню события, его поставщику, ключевым словам и т.д. Примеры в документации, хотя по факту это пост из блога Scripting Guys.

Кстати, с поставщиком легко наступить на грабли, потому что в общих сведениях о событии имя источника часто не соответствует провайдеру. Опирайтесь на XML✌️
⚙️ OCR в PowerToys

Так совпало, что в день публикации поста про #OCR в OneNote в #PowerToys добавили три утилиты. Одна из них, Text Extractor, как раз служит для распознавания текста!

ℹ️ Работает элементарно: нажимаете сочетание клавиш - выделяете область - вставляете извлеченный текст из буфера обмена.

Установить PowerToys вы можете из магазина вручную или в командной строке:
winget install --name 'Microsoft PowerToys'
✌️
🪄 Про магию устранения неполадок в Windows

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

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

В бот поддержки прислали такую проблему:
Появилась вторая учётка при входе - первая теперь требует пин-код
Пытался на приложении Mail добавить учётку Яндекса, ничего не получилось. Теперь при каждой перезагрузке появляется уведомление о неверном пароле и предложение выбрать из двух учёток с одинаковым именем.

Всегда полезно знать, что привело к проблеме. Но важно сфокусироваться на главном: две учетные записи (УЗ), ошибка при каждом старте ОС, неверный пароль.

Я запросил вывод Get-LocalUser и оказалось, что УЗ все-таки одна, если не считать служебные. Решение уже стало понятно 😎 Но я все-таки запросил фото проблемы↓ - хотелось убедиться, что автор все верно описал, а я - правильно понял. Дальше - внимание к деталями и простая логика.

#PowerShell можно верить - УЗ точно одна. При старте системы появляется ошибка - неправильные учетные данные. Получается, была попытка входа. Пользователь входить не пытался. Значит...

вход выполняет сама ОС...
при запуске...
автоматически...

💡 Автоматический вход не срабатывает! Для него задана неверная УЗ или пароль. И да, это написано на экране :)

Для устранения проблемы надо отключить автовход любым способом. Например, удалить параметр DefaultUserName в разделе
HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon

Вы же, наверное, настраивали автоматический вход в Windows. Думаете ОС проверяет имя УЗ и пароль? Нет, она просто сохраняет их, а потом при запуске ломится как лось 🦌

Кстати, прошлым летом была #классика блога об отключении автовхода последнего пользователя, если на УЗ нет пароля. Я тогда предложил нестандартное решение - задать юзеру неверный пароль.

Картинка в статье как две капли воды похожа на скриншот автора вопроса! Знанием этим я с вами делился. А опыт - дело наживное 👌

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

«Посмотрел по ссылкам [ваши статьи], там одно широко распространённое заблуждение в очередной раз резануло глаз. А откуда, собственно говоря, вы (именно вы) его взяли?», поприветствовал меня в почте читатель Serge.

Его зацепила #классика блога Практические советы по переходу с MBR на GPT с фразой «В Windows для нативного UEFI требуется загрузочный том в разметке GPT».

Я в свою очередь запросил конкретики, подспудно ожидая спецификацию UEFI в ответ.

➡️ Читайте дальше в блоге: https://www.outsidethebox.ms/21649/
Подборка ссылок по случаю выхода #Windows11 22H2

🌺 Что нового
В изложении:
Community
Winreviewer

⚙️ Загрузка и установка
Как скачать Windows с сайта Microsoft в 2022 году
• Обход системных требований при:
• чистой установке из командной строки или файлом ответов
• обновлении с Windows 10 при наличии TPM 1.2 или без оного
• Установка с локальной учетной записью
• Откат к предыдущей версии до 60 дней

Инструменты и диагностика
• Windows ADK и SDK
Диагностика ошибок при обновлении до новой версии
• Почему новая версия не приходит в Windows Update и как снять блок, если он есть
⚙️ О разделах реестра RunOnce и RunOnceEx, а также Run

RunOnce и RunOnceEx - очень и очень древние разделы реестра для однократного запуска команд при входе в систему. Другими словами, прописанные там команды удаляются после выполнения. Когда-то эти разделы были популярным способом установки программ и даже драйверов. Каждый раздел предусмотрен в HKLM и HKCU - всего четыре расположения. Однако из коробки в реестре имеется только RunOnce в HKLM.

Недавно волею случая я смотрел документацию и обнаружил пару любопытных статей: RunOnce Registry Key и KB2021405. Из первой следует, что поведение этих разделов изменилось еще в Windows Vista. Вторая была срочно опубликована в 2010 году, когда пропустившие Vista клиенты стали наступать на грабли в Windows 7 :)

KB202140 несколько коряво гласит, что выполнение команд из этих разделов не работает в обычной учетной записи. Мол, так задумано. Действительно, если у пользователя нет прав администратора, логично улучшить UX и запретить ему напрочь эти команды... в HKLM! А в HKCU обычный пользователь обладает правами на запись. Зачем же лишать его возможности выполнять свои задачи однократно при входе?

👉 Я проверил работу обоих параметров при входе в систему на чистой Windows 11. Тестирование подтвердило мое предположение об HKCU и высветило две ошибки в статье:

1. RunOnce все-таки работает из HKCU обычного пользователя. Более того, клиент OneDrive с первого выпуска Windows 10 и по сей день использует этот раздел для самообслуживания 😎

2. RunOnceEx не работает в HKCU у администратора. Возможно, так было всегда, не помню уже.

Похоже, при публикации статьи MSKB не разобрались и причесали все варианты под одну гребенку. Но тогда неточность в документации перевела вполне рабочий сценарий в разряд неподдерживаемых решений 🤷‍♂️

Ладно, допустим, вам требуется однократно запускать команды в рамках официально поддерживаемого решения. Нет проблем - создайте параметры с запуском команд в разделе Run (myCommand1, myCommand2) и добавьте их удаление в конце своей команды или скрипта.
Remove-ItemProperty -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Run" -Name *myCommand*
✌️
⚙️ Групповые политики #Windows11 22H2

🔷 ADMX Windows 11 22H2 - административные шаблоны.

🔷 XLSX Windows 11 22H2 - все параметры реестра групповых политик. Незаменимая штука для домашних изданий. Если, конечно, политика срабатывает

🔷 Веб: https://gpsearch.azurewebsites.net/ - новейшие политики появляются не моментально, зато удобно ссылаться.
✌️