6

Я пытаюсь запустить исполняемый файл с сетевого диска в Windows 7 Professional (64-разрядная версия), чтобы установить программу, но при каждой попытке она не запускается и появляется следующее сообщение:

{path-name}
The specified path does not exist.
Check the path, and then try again.

Я определенно подключен к сетевому диску, так как вижу все каталоги и файлы и даже могу открывать неисполняемые типы файлов. Кроме того, я вполне уверен, что это не проблема с брандмауэром и разрешениями.

9 ответов9

6

Кажется маловероятным, что OP когда-либо вернется, поэтому я рассмотрю два конкретных случая, которые могли бы вызвать это:

Когда вам необходимо ввести учетные данные для доступа к сетевому ресурсу или если вы работаете на подключенном диске, повышение уровня процесса может завершиться неудачей из-за UAC.

Это связано с тем, что с помощью UAC вы фактически вошли в систему с двумя сеансами: один с административным доступом, а другой без. Эти сеансы в основном являются отдельными, они не разделяют подключенные диски или токены входа в сеть.

Ваш сеанс без прав администратора имеет свои подключенные диски и все токены входа в сеть. После подтверждения диалогового окна UAC Windows пытается загрузить программу в сеансе администратора. У него нет ни токенов сетевого входа, ни подключенных дисков. Таким образом, произойдет сбой либо «файл не найден», либо «доступ запрещен».

Microsoft описывает это поведение более подробно в этой статье на TechNet.

К счастью, существует обходной путь, включающий «Связанные соединения» (описанный в статье, упомянутой выше). Следующий файл .reg сделает это:

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System]
"EnableLinkedConnections"=dword:00000001
2

Если на сервере запущена Samba, вам может потребоваться добавить эту опцию в раздел [global] smb.conf:

acl allow execute always = True

Источник: Выполнить .exe на общей папке samba - unix.stackexchange

Это скажет Windows, что все файлы могут быть выполнены, и превосходит команду chmod a+x * для всех файлов в общей папке, что также работает.

2

Существует множество причин, по которым вы можете увидеть это:

Я хотел бы начать с отключения UAC и проверить, решает ли это проблему. Тогда вы знаете, что это проблема с разрешениями, и вам нужно будет "только" решить эту проблему.

Я не помню, можно ли подключить сетевые диски Windows без возможности запуска файлов.

Кроме того, было бы полезно проверить тот же файл на другом компьютере (виртуальный с другой ОС Windows, например)

Для более глубоких шагов:

Цитата из поддержки Microsoft:

Эта проблема может возникнуть, если на вашем ПК существует какой-либо из следующих сценариев.

  • У вас нет прав доступа к файлу или местоположению файла.
  • Файл находится в месте, которое в данный момент недоступно, например в сети или на внешнем диске, который в данный момент не подключен к ПК.
  • Файл был перемещен или удален.
  • Файл или ярлык повреждены.
  • Файл может быть заблокирован Windows.
  • Ваше антивирусное программное обеспечение может блокировать файл.
2

Вы можете проверить у разработчика, является ли исполняемый файл, который вы запускаете, просто оболочкой для одного или нескольких вторичных исполняемых файлов, которые также имеют особые требования к пути.

Возможно, вам потребуется сопоставить определенную букву диска (например, вы запускаете из G: но упакованный исполняемый файл ожидает H:), либо для аутентификации на другом компьютере, либо просто для отсутствующего компонента.

Инструменты, которые вы можете использовать:

  1. Dependency Walker Этот инструмент скажет вам, если ваш исполняемый файл не может найти какой-либо компонент.
  2. Strings.exe. Запустите его против вашего исполняемого файла. Этот инструмент даст вам символы ascii, которые читаются человеком. Вам решать, актуальны ли они.
  3. Разговор с разработчиком или системным интегратором может иметь большое значение для решения проблемы пропущенного пути.
1

Когда я столкнулся с этим, это произошло потому, что для общего ресурса не были правильно установлены разрешения. Попробуйте разрешить "Пользователям домена" и "Доменным компьютерам" доступ к общему ресурсу.

0

Мне удалось решить эту проблему, удалив объект компьютера из домена, воссоздав его и снова подключив к компьютеру. Теперь он запускает исполняемый файл напрямую с общего ресурса без проблем.

Разделяемые и NTFS-разрешения. NTFS имеет наследование. Вот почему exe работал из подпапки, а не из родительской папки. Разрешения общего ресурса для этого компьютера были повреждены. Присоединение и повторное подключение компьютера к сети решило проблему с общим ресурсом.

0

Я видел это много раз.

Не уверен, с чем это связано, но если вы скопируете файл на локальный жесткий диск, а затем запустите EXE, он должен работать.

0

Некоторые (особенно старые) exe-файлы не могут запускаться напрямую с сетевого ресурса, но они могут запускаться с сетевого ресурса, если вы смонтируете общий ресурс с буквой диска.

-2

Я нашел ответ. Это было в панели управления -> Свойства обозревателя -> вкладка «Безопасность».

  • Этот тип вещей связан с настройкой, как я помню.

  • Я не уверен, какой именно это был вариант. Кажется, это связано с открытием загрузки и предложением "запустить", поскольку она была загружена.

  • Я установил на всех компьютерах самый низкий уровень безопасности. На компьютере с Vista/7 я настроился на еще более низкий уровень. Может быть, достаточно просто использовать ползунковый переключатель. Я также выключил все брандмауэры Windows. Я не думаю, что все это окажется необходимым, если присмотреться.

  • Кстати, раньше я должен был выяснить, что для Windows Vista нужно щелкнуть правой кнопкой мыши и поставить галочку на опции "Завершить блок", чтобы начать загрузку. Это было так же, как с этим.

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