⚙️ О настройках разработчика и создании ссылок NTFS
В позавчерашней викторине было много вариантов ответа и ложных следов соответственно. Поскольку на объяснение дается лишь 200 символов, я решил подробно разобрать вопрос в канале.
Напомню команду в задаче:
mklink f:\notepad.exe %windir%\notepad.exe
и разберу варианты ответа по порядку.
❌ Ярлык на блокнот
В Windows нет специальных утилит или команд для создания ярлыков, хотя можно задействовать WSH. Из сторонних утилит первой на ум приходит nircmd, конечно.
❌ Жесткая ссылка на блокнот
Жесткая ссылка создается с параметром /h, которого в команде нет. Но даже если б он был, жесткие ссылки возможны только в пределах одного тома. А у нас разные диски, которые в один том не объединены по условию задачи.
✅ Символическая ссылка на блокнот
Это - правильный ответ. Следующие четыре варианта для отвода глаз. Их выбрали в совокупности более половины участников викторины.
❌ Ничего, нет прав на выполнение mklink
Команда выполняется с обычными правами, но по условиям задачи также включены настройки разработчика. Начиная с Windows 10 1703 это помимо прочего позволяет создавать ссылки NTFS без прав администратора. То есть mklink при запуске с обычными правами отработает нормально. Я рассказывал об этом в блоге, кстати.
Вернемся к жесткой ссылке. Допустим, она создается на блокнот в пределах тома "C":
mklink /h c:\temp\notepad.exe %windir%\notepad.exe
Права на запуск есть, но результатом будет "отказано в доступе", потому что владельцем блокнота является TrustedInstaller! Команда сработает только при запуске от имени TI.
❌ Ничего, со съемными дисками это не работает
Пожалуй, это можно выяснить только эмпирически. И да, я перепроверил прежде чем включать этот вариант :)
❌ Ничего, нет прав на запись в корень диска
Это - отсылка к одной из прошлых викторин. Там действительно запись в корень не сработала, потому что в задаче был раздел с ОС. У съемных дисков разрешения NTFS по умолчанию другие.
❌ Ничего, неверный синтаксис команды
Я сам долго путал порядок параметров, но после многократного вызова справки mklink выучил его: Link Target. В команде все верно: f:\notepad.exe - это ссылка, а %windir%\notepad.exe - ее назначение.
Бонус: статьи про ссылки NTFS в блоге ✌️