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

Чат: @winsiders
Блог: outsidethebox.ms
ЛС: @vsterkin
Донаты ₽: boosty.to/sterkin
РКН: https://clck.ru/3LBugC
Download Telegram
🔐 О состоянии шифрования BitLocker по умолчанию в Windows

Второй день из каждого утюга вещают, что в Windows 11 Pro по умолчанию включено шифрование BitLocker, что влечет снижение производительности SSD до 45%. Первоисточник - Tom's Hardware, а дальше уже может зависеть от фантазии переводчика.

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

Эти утверждения в совокупности вводят в заблуждение:

• Windows 11 Pro форсирует включение шифрования, а на Windows 10 Pro шифрование скорее всего не включено.

• Если у вас [в Windows 11] локальный аккаунт нежели учетная запись Microsoft (MSA), шифрование не включается.

• Windows 11 Home не поддерживает BitLocker, поэтому там шифрование не включается. (Однако автор тут же оговаривается: кажется, на некоторых ноутбуках включено :)

👉 У меня есть подробная #классика блога на эту тему: Автоматическое шифрование BitLocker в Windows. И подзаголовок там в самый раз :) Рекомендую вам прочесть рассказ целиком, а здесь задействую некоторые моменты.

ℹ️ На самом деле шифрование устройств с помощью BitLocker автоматически включается начиная с Windows 8.1 во всех изданиях. Но происходит это только на устройствах, соответствующих определенным требованиям, которые со временем слегка ослабили. Поддержка автоматического шифрования проверяется элементарно.

🔓 Если устройство подходит, BitLocker включается во время установки с незащищенным ключом и приостанавливается. В английской терминологии это состояние называется Suspended, и задать его можно командлетом #PowerShell Suspend-Bitlocker. На картинке↓ шифрование включено, но приостановлено - диск зашифрован, но не защищен. Поэтому неверно заявление автора тестов, что с локальным аккаунтом диск не шифруется.

🔑 Когда первый вход выполняет администратор с MSA или компьютер вводится в домен, шифрование активируется и защищается TPM. Одновременно 48-значный пароль восстановления сохраняется в облачных настройках MSA, а в домене – в Entra ID или AD DS при включенной политике.

Проверка заявлений, касающихся производительности, тоже не помешала бы. Но я оставляю ее вам. С помощью CrystalDiskMark можно относительно быстро прикинуть влияние любого программного шифрования на свою систему. Только, пожалуйста, тестируйте производительность диска, а не его кэша ✌️
▶️ Как массово удалить папки, распакованные из архивов

В чате участник Павел задал такой вопрос:
В папке ~450 разных файлов, папок и архивов *.rar. Периодически рары разархивируются, и получается папка с тем же именем, что и rar. Стоит задача удалить эти папки, оставив при этом архивы. Как отсортировать, чтобы снизу папки сразу был её родительский архив?

Очевидно, он рассматривал вариант сортировки в файловом менеджере. Хотя надо сразу смотреть в сторону #PowerShell. Для начинающих это отличное практическое упражнение! Впрочем, этому унылому занятию Павел предпочел ожидание поста в канале 😎

Я бы решал задачу в лоб:
1. Отбираем только папки.
2. Для каждой проверяем наличие архива с таким же именем, "приклеивая" к имени папки расширение.
3. При совпадении удаляем.

$folders = Get-ChildItem -Path "C:\test" -Directory
foreach ($folder in $folders) {
if (Test-Path "$($folder.FullName).rar")
{Remove-Item $folder -Recurse -WhatIf}
}


Василий Гусев предложил нестандартное решение - группировка! 🤔 Мне оно в голову не пришло, хотя я трижды показывал Group-Object в блоге:
поиск дубликатов драйверов
выборка уникальных ссылок с веб-страниц
замена дубликатов файлов на жесткие ссылки

Доработав идею, я получил такой конвейер:
1. Группируем по имени папки и файлы без расширения с помощью свойства BaseName.
2. Отбираем группы, где с одинаковыми именами ровно два объекта - файл и папка!
3. Из каждой группы выбираем папки и удаляем их.

Get-ChildItem -Path "C:\test" | Group-Object -Property BaseName |
Where-Object {$_.Count -eq '2'} | ForEach-Object {$_.group} |
Where-Object {$_.Attributes -eq 'Directory'} | Remove-Item -Recurse -WhatIf


⌛️ Примечательно, что с обоими способами перекликается #классика блога Как массово переименовать файлы по маске в PowerShell. Там я склеивал имя файла из фрагментов, одним из которых было свойство BaseName.

🤖 И неудивительно, что ChatGPT тоже задействовал это свойство, когда я поставил задачу перед ним. Он пошел тем же путем что и я, но выбрал перебор архивов нежели папок и создал побольше переменных. В свою очередь чат-бот Bing практически повторил мой способ. Но для определения папки он использовал старое свойство объекта PSIsContainer (параметр -Directory у dir доступен более 10 лет, с версии 3.0).

Короче, получив направление в PowerShell, Павел мог сразу спросить чат-бота. И не дожидаться, пока кожаный мешок опубликует решение его простенькой задачи в канале ✌️