Не вдається створити ярлики для .com файлів


3

Я хотів створити ярлик для c:\windows\system32\more.comфайлу в Desktop за допомогою ctrl+ shiftі перетягування, і це мовчки ігнорував, не створюючи нічого, тоді я вирішив перетягнути його в папку на робочому столі і отримав це сповіщення:

Windows не вдалося створити ярлик. перевірте, чи не заповнений диск.

У мене є 157 ГБ вільного місця на диску , і я відчув його на інші .comфайли ( format.com, і tree.comт.д.), а також , і результат був той самий. Тоді я mklinkзамість цього створив симпосилання, і воно спрацювало, тому мені цікаво, чому неможливо створити ярлики для .comфайлів у Windows?

PS:

Я використовую Windows 8.1 64-бітну операційну систему.


Те, що ви намагаєтеся, не має сенсу: more.com - це 16-бітова програма, яка читає з stdin і записує в stdout, призупиняючись після кожного повного екрану. Якщо запустити його з ярлика, це не дасть йому ніякого вкладу, тому нічого не робити.
psusi

Відповіді:


3

Думаю, ви спровокували проблему, можливо. Оскільки розширення * .COM походить від MS-DOS і тільки для 16-бітових бінарних файлів, 32-бітова Windows створила ярлик PIF для тих файлів, який би викликав рівень сумісності для налаштування 16-бітного середовища. Однак цієї частини не існує у 64-бітовій Windows, оскільки 16-бітні виконувані файли досить старі, і існує багато альтернатив для їх запуску; DOSBOX, наприклад.

Однак, здається, що звичайна процедура виявлення такої ситуації все ще існує у Windows 64 і розпочинається націленням на файл * .COM, тоді як шари сумісності зникли!

Ви можете самостійно перевірити, що спроба створити ярлик до файлу COM все ще створює файл PIF:

  1. Створіть нову порожню папку.
  2. Скопіюйте будь-який COM-файл, який ви хочете протестувати. Навіть ви можете перейменувати будь-який файл у * .COM.
  3. У папці клацніть правою кнопкою миші та виберіть новий ярлик.
  4. Введіть повний шлях вашого тестового COM-файлу та натисніть «закінчити»
  5. Він скаже, що "не вдається створити ярлик", але ярлик насправді зроблено.
  6. Подивіться властивості нового ярлика - це PIF.

Однак, оскільки x64 Windows вже не має 16-бітового рівня сумісності, PIF не може працювати і не може бути налаштований правильно. Природно вважається, що логіку створення файлів PIF до COM також слід усунути, але з якихось причин це ще не зроблено. Що я можу здогадатися про причину - це так, оскільки використовувати COM-файл у x64 Windows дуже рідко, він мав дуже низький пріоритет для виправлення.

Отже, що це за файли * .COM у папці Windows? Насправді вони виконують 64-бітові файли формату EXE, але перейменовані на * .COM для старих пакетних сценаріїв.

Правда також, що ярлик до файлу COM може обдурити користувачів, щоб запустити шкідливе програмне забезпечення, щоб MS навмисно заблокувала це, але все-таки можна приєднати перейменований файл COM (який спочатку є файлом EXE) безпосередньо на електронну пошту чи щось таке , а ще можна створити ярлик до звичайного файлу EXE, а потім перейменувати його на * .COM. Тому я не думаю, що проблема безпеки була основною причиною змусити Windows зробити таке дивне поведінку. Якщо це стосується проблеми безпеки та навмисно, воно відображатиме правильне повідомлення про помилку / попередження.


-1

Я б здогадався, що це міра безпеки, оскільки маскування файлів .com є загальною тактикою творців шкідливих програм. Ярлик можна замаскувати, щоб він виглядав як текст слова, щоб змусити користувача натискати на нього та виконувати зловмисний код.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.