English

Атрибуты Hidden и System в Windows

3 мин 2026-10-01

Описание

В Windows атрибут Hidden (H) помечает файл или папку как скрытые, а System (S) – как системные. Файл с H + S остаётся невидимым в Проводнике даже при включённом показе скрытых файлов, если включено "Скрывать защищенные системные файлы (рекомендуется)".

Примечание

System можно установить у обычного пользовательского файла. Этот атрибут не связан с учётной записью NT AUTHORITY\SYSTEM и не даёт дополнительных прав доступа.

Две настройки Проводника

Чтобы увидеть H + S, откройте Win + R → control.exe folders → вкладка "Вид":

  1. Выберите "Показывать скрытые файлы, папки и диски".
  2. Снимите флажок "Скрывать защищенные системные файлы (рекомендуется)" и подтвердите предупреждение Windows.
  3. Нажмите "Применить"; если список файлов не обновился, нажмите F5 в Проводнике.

Пункт "Скрытые элементы" в меню Проводника ("Просмотреть" → "Показать") управляет только первой настройкой.

hidden-system-01-explorer-options.png

Видимость файлов при разных настройках:

Показ скрытых файлов Флажок "Скрывать защищенные системные файлы" Файл без H и S Файл с H Файл с S Файл с H + S
Выключен Установлен Видим Скрыт Видим Скрыт
Включён Установлен Видим Видим Видим Скрыт
Включён Снят Видим Видим Видим Видим

Практический пример

1. Создание четырёх тестовых файлов

Выполните команды в CMD. Если %TEMP%\system-attribute-demo уже существует, удалите её (см. Удаление тестовой папки) или замените имя папки во всех командах ниже.

mkdir "%TEMP%\system-attribute-demo"
cd /d "%TEMP%\system-attribute-demo"

echo Ordinary file>normal.txt
echo Hidden file>hidden.txt
echo System file>system-only.txt
echo Hidden and system file>hidden-system.txt

attrib +h "hidden.txt"
attrib +s "system-only.txt"
attrib +h +s "hidden-system.txt"

attrib

+ устанавливает атрибут, - снимает. В выводе attrib также может быть Archive (A) – на видимость он не влияет.

hidden-system-02-create-files.png

2. Отображение с настройками по умолчанию

Откройте папку из той же CMD:

explorer .

Выключите показ скрытых файлов и включите скрытие защищённых системных файлов (см. Две настройки Проводника). В списке останутся normal.txt и system-only.txt.

hidden-system-03-default-view.png

3. Включение показа скрытых файлов

Включите "Скрытые элементы" ("Просмотреть" → "Показать" → "Скрытые элементы"), оставив скрытие защищённых системных файлов включённым. Появится hidden.txt, но hidden-system.txt останется скрытым.

hidden-system-04-show-hidden-items.png

4. Отключение скрытия защищённых системных файлов

В параметрах Проводника → "Вид" снимите флажок "Скрывать защищенные системные файлы (рекомендуется)", подтвердите предупреждение Windows и нажмите "Применить". Показ скрытых оставьте включённым. Теперь видны все четыре файла.

Предупреждение говорит о файлах, «помеченных как системные или скрытые», но флажок влияет только на объекты, у которых одновременно установлены H и S: видимостью hidden.txt управляет показ скрытых файлов, а system-only.txt виден при любых настройках.

hidden-system-05-show-protected-files.png

Просмотр без изменения настроек Проводника

Скрытие в Проводнике не меняет права доступа: при наличии прав файл можно прочитать по известному пути.

CMD

Находясь в тестовой папке:

rem Показать все файлы и папки, включая скрытые и системные
dir /a

rem Показать объекты с атрибутом System
dir /a:s

rem Показать объекты, у которых одновременно Hidden и System
dir /a:hs

rem Посмотреть атрибуты конкретного файла
attrib "hidden-system.txt"

rem Прочитать файл по известному пути
type "hidden-system.txt"

hidden-system-06-cmd-dir-a.png

hidden-system-06-cmd-view.png

PowerShell

$demoPath = Join-Path $env:TEMP 'system-attribute-demo'

Get-ChildItem -LiteralPath $demoPath -Force |
    Select-Object Name, Attributes

Для проверки одного объекта:

Get-Item -LiteralPath (Join-Path $demoPath 'hidden-system.txt') -Force |
    Select-Object FullName, Attributes

-Force включает скрытые и системные объекты в результат. У hidden-system.txt поле Attributes содержит Hidden и System.

hidden-system-07-powershell.png

Аналог dir /a:hs – параметр -Attributes, где + означает «и»:

Get-ChildItem -LiteralPath $demoPath -Attributes Hidden+System

Снятие атрибутов

В CMD в тестовой папке выполните:

attrib -s -h "hidden-system.txt"
attrib "hidden-system.txt"

H и S у такого файла снимаются одной командой. По отдельности attrib откажется: attrib -h выведет «Переустановка атрибутов системного файла … не произведена», а attrib -s – «Переустановка атрибутов скрытого файла … не произведена».

hidden-system-08-remove-attributes.png

После снятия H и S верните настройки Проводника по умолчанию: выключите показ скрытых файлов и включите скрытие защищённых системных. hidden-system.txt останется видимым. Его содержимое не изменится.

hidden-system-09-after-removal.png

Для папки атрибуты задаются аналогично:

mkdir "demo-folder"
attrib +s +h "demo-folder"
attrib "demo-folder"
attrib -s -h "demo-folder"
attrib "demo-folder"

Здесь меняются атрибуты самой папки: после +s +h в выводе attrib видно SH, после -s -h поле атрибутов пустое. Для рекурсивной обработки содержимого у attrib есть параметры /S и /D.

hidden-system-10-folder-attributes.png

Удаление тестовой папки

CMD не может удалить папку, в которой находится, поэтому сначала выйдите из неё:

cd /d "%TEMP%"
rd /s /q "%TEMP%\system-attribute-demo"

rd /s удаляет содержимое вместе со скрытыми и системными файлами.

Предупреждение

del без /a молча пропускает файлы с атрибутами H или S. В тестовой папке del *.txt удалил бы только normal.txt и hidden-system.txt (после снятия атрибутов), а hidden.txt и system-only.txt остались бы. Чтобы удалить и их, используйте del /a *.txt.

Использование в атаках

Сочетание H + S – простой способ спрятать файл от пользователя: при настройках по умолчанию и даже при включённых «Скрытых элементах» Проводник его не показывает. В MITRE ATT&CK это техника T1564.001 (Hide Artifacts: Hidden Files and Directories).

Вместо заключения