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 ответа2

2

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

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

CD \
DIR P* /X

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

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

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

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .