Почему я не могу перетаскивать программы в окно cmd, если оно запущено с правами администратора?

Вопрос или проблема

Если я запускаю окно CMD с правами администратора, я не могу больше перетаскивать в это окно ничего.

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

Есть какие-нибудь предложения? Я использую Windows 7.

Очевидно, это сделано специально и по соображениям безопасности:

Так работает UAC. Drag-and-Drop – это сообщения. И отправка сообщений из программы с обычными правами в приложение с правами администратора может вызвать проблемы с безопасностью.

Перетаскивание работает только между приложениями с одинаковыми правами (программа с правами администратора к программе с правами администратора или программа с обычными правами к программе с обычными правами).

Источник: http://social.technet.microsoft.com/Forums/windows/en-US/cba0e9b1-25f8-40e5-a888-1435d604f68d/run-as-administrator-prevents-drag-and-drop-working

Значит, вам придется найти другой способ выполнить задуманное. Один из вариантов – использовать команду в контекстном меню “Копировать как путь” в Проводнике Windows (щелкните правой кнопкой мыши по папке, удерживая “Shift”).

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

Обходные пути:

  1. Используйте полный путь вместо этого
    Вместо перетаскивания вручную введите или скопируйте-вставьте полный путь программы:

Удерживайте Shift + щелкните правой кнопкой мыши на программе.
Выберите “Копировать как путь”.
Щелкните правой кнопкой мыши в командной строке с правами администратора и выберите Вставить.
2. Использование командной строки без прав администратора
Откройте командную строку без привилегий администратора (перетаскивание здесь работает).
Перейдите к папке, используя cd и запустите программу.
3. Запуск программы с помощью команды Start
Откройте командную строку с правами администратора.
Введите:
sql
Копировать
Редактировать
start “” “C:\Path\To\YourProgram.exe”
Замените “C:\Path\To\YourProgram.exe” на фактический путь.
4. Временно отключите режим администратора
Если вы должны использовать перетаскивание:

Закройте командную строку с правами администратора.
Откройте командную строку в обычном режиме (без “Запуск от имени администратора”).
Перетаскивание должно работать.

Подробнее: https://www.google.com/search?q=Can%27t+drag+programs+into+cmd+window%2C+if+it%27s+started+with+admin+privileges&rlz=1C1GCEB_enBD1130BD1135&oq=Can%27t+drag+programs+into+cmd+window%2C+if+it%27s+started+with+admin+privileges&gs_lcrp=EgZjaHJvbWUqBggAEEUYOzIGCAAQRRg7MgYIARBFGDzSAQg1NzUzajBqN6gCCLACAQ&sourceid=chrome&ie=UTF-8

Ответ или решение

Вопрос о невозможности перетаскивания программ в окно командной строки (cmd) с правами администратора — это интересная ситуация, с которой сталкиваются пользователи Windows. Чтобы глубже понять эту проблему, давайте рассмотрим ее с точки зрения теории, примеров и приложений (TEA).

Теория

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

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

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

Пример

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

Приложение

Для решения данной проблемы и достижения цели, можно использовать несколько обходных путей:

  1. Ручной ввод пути:

    • Вместо перетаскивания, вы можете скопировать путь файла вручную. Для этого:
      1. Зажмите Shift и щелкните правой кнопкой мыши на нужном файле в Проводнике Windows.
      2. Выберите опцию «Копировать как путь».
      3. Вставьте скопированный путь в окно командной строки с помощью правого клика и выбрав «Вставить».
  2. Использование командной строки без прав администратора:

    • Если нет необходимости в административных привилегиях, откройте командную строку без них. Перетащите файл, как обычно, и воспользуйтесь функциями командной строки.
  3. Команда Start:

    • В административной командной строке вы можете использовать команду start, чтобы открыть файл или программу:
      start "" "C:\Путь\К\ВашемуФайлу.exe"
    • Замените C:\Путь\К\ВашемуФайлу.exe на фактический путь к вашему файлу.
  4. Временное отключение режима администратора:

    • Закройте командную строку, открытую с правами администратора, и откройте ее снова без этих прав для выполнения операций с перетаскиванием.

Заключение

Таким образом, невозможность перетаскивания программ в окно командной строки с правами администратора — это защита, обеспечиваемая UAC для повышения безопасности вашего компьютера. Данная мера предотвращает непреднамеренное или злонамеренное вмешательство со стороны программ, работающих на менее привилегированном уровне. Несмотря на это, существует несколько обходных путей для достижения той же цели без потери функциональности или безопасности. Используйте предложенные методы, чтобы работать в системе легко и безопасно, обходя ограничение через функциональные решения.

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

Оцените материал
Добавить комментарий

Капча загружается...