Что такое короткий путь для C:\Program Files? Как я могу добавить его обратно?

Windows 7 (32-разрядная версия)

У меня есть приложение, которое требует синтаксиса короткого пути для подкаталога в Program Files (c:\Program Files\Foo Example\Foo Example2).

На большинстве моих пользовательских систем он включен по умолчанию и работает нормально. Однако в избранном подмножестве пользователей он отключен (я не уверен, почему, поскольку все используют общее изображение).

Я пытался включить его через fsutil 8dot3name set 0 (из командной строки, используя права администратора). Эта команда, кажется, работает нормально (без ошибок). Но когда я пытаюсь создать короткое имя, я получаю:

C:\>fsutil file setshortname "Program Files" PROGRA~1
Error: Access is denied.

Любые мысли о том, как отладить это и определить, почему Windows не позволяет мне добавить это? Есть ли журнал ошибок, который я могу проверить где-нибудь?

Обновить

Согласно запросу, вот что я вижу при наборе DIR P* /X

C:\>DIR P* /X
Volume in drive C has no label.
Volume Serial Number is XXXX-XXXX

Directory of C:\

07/13/2009  10:20 PM    <DIR>                       PerfLogs
03/13/2014  02:47 PM    <DIR>                       Program Files
03/13/2014  02:48 PM    <DIR>                       Program Files (x86)

              0 File(s)        0 bytes
              3 Dir(s)  412,723,027,968 bytes free

2 ответа

Вам не нужно создавать короткое имя; это уже там.

Чтобы убедиться, что это "PROGRA~1" или определить, что это такое, используйте команду DIR, т.е.

CD \
DIR P* /X

который покажет вам короткие имена, связанные с каждым именем папки верхнего уровня, начинающимся с "P".

Поскольку "Program Files" и "Program Files (X86)" являются защищенными расположениями, система не позволит вам изменить короткое имя, связанное с этими папками, но нет причины, по которой вы не можете использовать короткие имена, уже определенные Сама система.

Кроме того, ваша команда предназначена для файлов, и вы управляете каталогами (которые в некотором смысле являются файлами, но не FSUTIL.)

  1. Запустите Windows в безопасном режиме с командной строкой, чтобы убедиться, что Windows не использует Program Files
  2. cd C:\
  3. fsutil file setshortname "Program Files" PROGRA~1
Другие вопросы по тегам