Windows 11, 10, etc - Вадим Стеркин (@sterkin_ru) के नवीनतम पोस्ट टेलीग्राम पर

Windows 11, 10, etc - Вадим Стеркин टेलीग्राम पोस्ट

Windows 11, 10, etc - Вадим Стеркин
Авторский канал. Windows, безопасность, мобильный мир:
• тайное знание
• профессиональный ликбез
• гадание по логам
• срыв покровов
• доставка пруфов

Чат: @winsiders
Блог: outsidethebox.ms
Oбратная связь: @vsterkin
Поддержать ₽: boosty.to/sterkin
14,506 सदस्य
282 तस्वीरें
5 वीडियो
अंतिम अपडेट 11.03.2025 07:47

समान चैनल

Telegram Info
68,222 सदस्य
Open Source
50,652 सदस्य

Windows 11, 10, etc - Вадим Стеркин द्वारा टेलीग्राम पर साझा की गई नवीनतम सामग्री

Windows 11, 10, etc - Вадим Стеркин

10 Mar, 06:15

2,807

🔍 Расследование: кто перезагрузил Windows

В чате участник A S. сообщил, что в Windows 11 политика NoAutoRebootWithLoggedOnUsers не предотвращает перезагрузку после установки обновлений. Статью про это я написал в 2018 году и с тех пор не перепроверял. Причем 4 года спустя эту политику наряду с другими объявили устаревшей и не поддерживаемой в Windows 11. И пообещали в будущем выпилить.

У ТС все подробности свелись к "отхожу на несколько часов". Обычно, так быстро сразу после установки обновлений перезагрузка не происходит. Стандартно - в 3 часа ночи, но дальше может в любой момент вне активных часов 🕒

Проще проверить всё самому, и я зарядил виртуалку. За несколько часов ничего не произошло, как и с утра. Однако ночью я сплю, и моя основная ОС тоже, т.е. ВМ в ней неактивны. Поэтому наутро я изменил часовой пояс ВМ и продолжил тест.

👉 Перезагрузка произошла! Но чтобы обвинить в ней обновление Windows, надо ответить на второй по важности вопрос всех времен и народов: какие ваши доказательства?

Они собраны в журнале событий, поэтому пост публикуется в рубрике "Гадание по логам" с помощью #PowerShell.

1️⃣ Смотрим время загрузки ОС - сразу после 3 часов ночи. Уже горячо!

(Get-CimInstance Win32_OperatingSystem).LastBootUpTime

Sunday, February 2, 2025 3:01:46 AM


2️⃣ Выясняем, какие процессы это вызвали - событие 1074 в журнале Система:

Get-WinEvent -FilterHashtable @{LogName='System'; Id=1074} | 
Select-Object TimeCreated, Message | Format-List

TimeCreated : 2/2/2025 3:00:03 AM
Message :
The process C:\WINDOWS\uus\AMD64\MoUsoCoreWorker.exe (DESKTOP-GQKOJ6B)
has initiated the restart of computer DESKTOP-GQKOJ6B on behalf of
user NT AUTHORITY\SYSTEM for the following reason:
Operating System: Service pack (Planned)
Reason Code: 0x80020010
Shutdown Type: restart.


3️⃣ Проверяем связь с планировщиком - поиском по части имени файла MoUsoCoreWorker. Время совпадает!

Get-ScheduledTask | where TaskName -match 'Uso' | Get-ScheduledTaskInfo

LastRunTime : 2/2/2025 3:00:05 AM
LastTaskResult : 2147942402
NextRunTime : 2/3/2025 10:48:35 PM
NumberOfMissedRuns : 0
TaskName : USO_UxBroker
TaskPath : \Microsoft\Windows\UpdateOrchestrator\


4️⃣ Но это еще не всё! Надо определить, был ли в это время выполнен вход пользователя в систему. Ведь политика должна предотвращать перезагрузку только в этом случае.

Здесь фильтруем события входа и выхода, затем ищем нужные по части SID - 1001 в конце у администраторов.

Get-WinEvent -FilterHashtable @{LogName='Security'; Id=4624,4634,4647} | 
where message -match '1001' | Select-Object Id, TimeCreated, Message -First 15 |
ft -AutoSize

Id TimeCreated Message
-- ----------- -------
4634 2/2/2025 3:20:10 AM An account was logged off....
4624 2/2/2025 3:03:05 AM An account was successfully logged on....
4647 2/2/2025 3:00:05 AM User initiated logoff:...
4624 2/1/2025 11:33:32 PM An account was successfully logged on....

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

////

☑️ Итак, мы однозначно определили, что перезагрузку выполнил оркестратор обновлений, проигнорировав групповую политику и завершив пользовательский сеанс.

В Windows 10 политика NoAutoRebootWithLoggedOnUsers продолжает выполнять свою функцию. А в Windows 11 уже нет поддерживаемого способа предотвратить форсированный перезапуск после установки обновлений. Единственный обходной путь - ручное планирование перезагрузки, что позволяет отложить ее максимум на неделю ✌️
Windows 11, 10, etc - Вадим Стеркин

06 Mar, 08:15

5,221

🚀 Ускорение загрузки файлов в PowerShell

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

1️⃣ Отключение прогресса
$ProgressPreference = 'SilentlyContinue'

В принципе, эта переменная может слегка ускорить процесс и снизить нагрузку на ЦП не только при скачивании файлов. Но конкретно для командлета Invoke-WebRequest (псевдоним iwr) разница значительная! Один и тот же файл размером 175 мегабайт без прогресса у меня на разных системах скачивался от 16 до 42 секунд, а с прогрессом - от 3 до 13 минут! 🤔

У этого командлета проблема наблюдается только в Windows PowerShell 5.1, но не в PowerShell Core. Я писал об этом в канале 7 лет назад :) И недавно краем глаза где-то видел, что якобы в 5.1 уже починили. Мои тесты это не подтверждают.

2️⃣ Подстановка юзер-агента
На самом деле даже без прогресса у меня Invoke-WebRequest качал слишком долго. Я предположил, что сайт специально притормаживает отдачу, и решил прикинуться браузером.

-UserAgent "Mozilla/5.0 (Windows NT 10.0; Win64; x64)"

После этого скорость окончательно наладилась!

3️⃣ Загрузка с помощью BITS
В Windows помимо командлетов Invoke-WebRequest и Invoke-RestMethod также можно скачивать файлы с помощью Start-BitsTransfer. Этот командлет запускает джоб с помощью службы BITS (фоновая интеллектуальная служба передачи данных). Именно ее использует центр обновления Windows.

Это не совсем про ускорение, а про альтернативы. Но в моем случае был сайт Microsoft, и родную BITS он не тормозил в отличие от iwr без юзер-агента.

////

▶️ Скрипт для экспериментов:

$file = "$env:temp\mpam-fe.exe"
$uri = 'https://go.microsoft.com/fwlink/?LinkID=121721&arch=x64'
$u = 'Mozilla/5.0 (Windows NT 10.0; Win64; x64)'
$ProgressPreference = 'SilentlyContinue'

Measure-Command {
Invoke-WebRequest -Uri $uri -OutFile $file -UserAgent $u
}
Measure-Command {
Start-BitsTransfer -Source $uri -Destination $file
}


Скрипт скачивает актуальный файл сигнатур защитника Windows с этой страницы. Но учтите, что для обновления сигнатур из консоли есть методы получше ✌️
Windows 11, 10, etc - Вадим Стеркин

06 Mar, 06:17

4,631

Бесплатно мигрируй в облако Serverspace 🔄

Мы поможем вам бесплатно мигрировать от другого провайдера и предложим скидку -30% на первый месяц!

VPS, GPU, S3, Удаленный рабочий стол и многое другое - уже в панели управления Serverspace!

▪️ Удобный калькулятор для расчёта стоимости
▪️ 9 дата-центров по миру
▪️ Безлимитный трафик
▪️ Поддержка 24/7

Сделаем переход в Serverspace комфортным:

1️⃣ Рассчитаем затраты и подберем оптимальную конфигурацию под ваш проект
2️⃣ Поможем перенести вашу инфраструктуру в облако бесплатно
3️⃣ Подарим -30% на месяц с промокодом VPS30

Миграция ещё никогда не была такой простой и выгодной!
📲 Начать переход

Erid
Windows 11, 10, etc - Вадим Стеркин

03 Mar, 08:15

6,023

🌐 О приоритете записей в файле hosts

В чате обсуждали использование файла hosts с целью запретить приложению подключение к своим адресам. Речь зашла о возможных дубликатах записей. Один опытный участник заявил:

hosts читается сверху вниз и будет использован последний дубликат

Другой не менее опытный участник это полайкал. Судя по результатам викторины в виде опроса, так думает лишь четверть подписчиков. Правильно же ответили более 40%, что для моих викторин - отличный результат 😎

Я поинтересовался у автора заявления, как бы он его проверял. Тот предложил вписать в файл две строчки и пропинговать.
127.0.0.1 ya.ru
127.0.0.2 ya.ru


Я бы тоже так делал! И вот результат:
gc "C:\Windows\System32\drivers\etc\hosts" -Tail 2; ping ya.ru
127.0.0.1 ya.ru
127.0.0.2 ya.ru

Pinging ya.ru [127.0.0.1] with 32 bytes of data:
Reply from 127.0.0.1: bytes=32 time<1ms TTL=128


👉 Получается, что Windows использует первый адрес. И Linux тоже!

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

📄 Несколько человек поднимали вопрос о влиянии кэша DNS. Однако в соответствии с одной из старейших актуальных статей базы знаний Microsoft, Microsoft TCP/IP Host Name Resolution Order, клиент Windows смотрит в локальный файл hosts прежде чем опрашивать серверы DNS. Кэш DNS в статье явно не упомянут, но это производная от серверов.

Сторонние же программы могут применять свой алгоритм чтения файла hosts либо вообще игнорировать его. Например, разработчикам Firefox пришлось реализовывать свой парсер hosts, чтобы он не игнорировался при использовании встроенного в браузер резолвера DoH (спасибо, dartraiden). А в Linux всегда найдется какой-нибудь дистрибутив с альтернативной реализацией 🐧

Я сам когда-то думал, что выигрывает последняя запись. Пока не столкнулся с этим по работе. У тестовых серверов поменялись IP-адреса, и я добавил новые записи в конец файла hosts. Однако рабочее приложение не смогло подключиться по доменному имени. Так и узнал ✌️
Windows 11, 10, etc - Вадим Стеркин

03 Mar, 06:16

4,232

Математика — фундамент технологического прогресса.

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

На ваш выбор два курса:

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

🔆 Формат курсов:
- 16 лекций и 16 семинаров через Zoom
- обратная связь с преподавателями в Телеграм
- яркие 2D- и 3D-анимации для лучшего восприятия материала

Старт групп: середина марта

По всем вопросам вы можете писать @popmath_support

Реклама. ИП Пясецкая Наталья Игоревна
ИНН 773714262272
erid: 2Vfnxxh86AC
Windows 11, 10, etc - Вадим Стеркин

27 Feb, 10:15

7,624

😎 Коммунальные услуги теперь и в вашем SSD

Говорят, пока только для москвичей ;)

Наверняка в оригинале - utilities. Основное значение слова - организации, осуществляющие поставку газа, воды и электричества потребителям. А не вот этих ваших утилит :)

Спасибо dartraiden и ԤИОНЕР за очередной #автоперевод ✌️
Windows 11, 10, etc - Вадим Стеркин

27 Feb, 06:17

3,298

Сегодня у меня для вас #рекомендация — два полезных канала для системных администраторов:

🔐 infosec — один из самых ламповых каналов для системных администраторов и ИБ специалистов, где говорят об истории ИТ, публикуют актуальные новости и пишут технический материал на разные темы.

👨‍💻 Вакансии в ИБ — актуальные предложения от самых крупных работодателей и лидеров рынка в сфере информационной безопасности.
Windows 11, 10, etc - Вадим Стеркин

24 Feb, 06:15

7,758

⚙️ Нюансы префетчинга приложений в Windows

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

• В 2013 году я разбирал префетчинг в рамках мифов оптимизации SSD
• В 2019 году он снова попал в фокус в статье Нюансы отключения службы SysMain в Windows

Niks спросил, работает ли префетчинг по умолчанию, когда система установлена на SSD. Да, работает, и это легко проверить по мотивам статьи про SysMain:

Get-MMagent

ApplicationLaunchPrefetching : True
ApplicationPreLaunch : True
MaxOperationAPIFiles : 512
MemoryCompression : True
OperationAPI : True
PageCombining : True


Параметр ApplicationLaunchPrefetching - это он. Вообще, этот префетчинг еще времён XP, и по большому счету с тех пор ничего не изменилось. Однако сравнивая вывод наших команд, я заметил, что отличается значение MaxOperationAPIFiles. Это предельное количество файлов в сфере префетчинга.

🔢 В Windows 10 и ранее оно по умолчанию 256, а в Windows 11 — 512 (так же и в серверных ОС). Думаю изменение связано с тем, что сама ОС разрослась с 2006 года и запускает больше своих исполняемых файлов.

Niks интересовался, стоит ли увеличить значение до 2048. Чтобы ответить на этот вопрос, нужно:

1. Понимать, запускаются ли .EXE с жесткого диска
2. Проанализировать файлы в папке C:\Windows\Prefetch\

Я не думаю, что древний префетчинг способен ускорить запуск программ с твердотельных накопителей. Но запуск исполняемых файлов (например, игр) с жесткого диска еще может быть актуален. Для оценки можно посчитать количество файлов в папке и сопоставить с лимитом. В #PowerShell от имени администратора:

(Get-ChildItem "C:\Windows\Prefetch\*.pf" -File).Count

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

Все это оседает в папке Prefetch. По достижении предела старые записи будут вытеснены автоматически, но "одноразовые" установщики и не нужны.

Если в обжитой системе вы запускаете .EXE с HDD, а количество PF-файлов близко к лимиту, может иметь смысл увеличить предельное значение.

Set-MMAgent -MaxOperationAPIFiles 1024

Так, у Niks спустя две недели после очистки и увеличения лимита в папке стало 354 PF-файла. Что превышает стандартный предел в его Windows 10, но далеко от 512 в Windows 11.

Измерить же реальный прирост скорости запуска исполняемых файлов затруднительно. Зато душу будет греть тот факт, что вы оптимизировали свою ОС не случайно найденной в интернетах подборкой твиков, а на основе грамотного анализа ✌️
Windows 11, 10, etc - Вадим Стеркин

17 Feb, 06:16

9,516

😎 Знакомая прислала скриншот веб-редактора аудиофайлов

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

Я уже вижу, как вы прониклись чувством превосходства над неопытным пользователем :) Но в этой истории есть отличная мораль. В любой непонятной ситуации следуйте указаниям на экране! А внимательно читать и анализировать написанное - это высший пилотаж ✌️
Windows 11, 10, etc - Вадим Стеркин

13 Feb, 06:15

10,659

🧹 Удаление временных файлов из служебных профилей

Недавно я анализировал недостаток дискового пространства на одной системе. Помимо прочего утилита dfp выдала такое:

1.6G      527      191 C:\Windows\ServiceProfiles
1.6G 287 81 C:\Windows\ServiceProfiles\NetworkService
1.6G 281 71 C:\Windows\ServiceProfiles\NetworkService\AppData
1.6G 244 39 C:\Windows\ServiceProfiles\NetworkService\AppData\Local
1.6G 243 34 C:\Windows\ServiceProfiles\NetworkService\AppData\Local\Temp


Я натравил её на папку Temp и выяснил, что 1.6 GB занято древней папкой с именем типа E58DAD6F-63DE-461C-AB9F-7F58DDC916D9

ℹ️ NetworkService и LocalService - служебные аккаунты, чьи профили хранятся в папке Windows. Их содержимое аналогично профилям интерактивных пользователей из папки C:\Users.

Удаление временных файлов безвредно, причем ухищрений не требуется. В смысле не надо ломиться в системные папки как лось, меняя на ходу разрешения NTFS. Просто в #PowerShell от имени администратора:

Remove-Item -Force -Recurse -Path 'C:\Windows\ServiceProfiles\NetworkService\AppData\Local\Temp\E58D*'


Total Commander или FАR от админа тоже годятся ✌️