Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Клиентские ОС Microsoft » Microsoft Windows 7 » Блог - Как открыть командную строку от имени администратора в нужной папке

Ответить
Настройки темы
Блог - Как открыть командную строку от имени администратора в нужной папке

(*.*)


Сообщения: 36497
Благодарности: 6676


Конфигурация

Профиль | Сайт | Отправить PM | Цитировать


Мы открываем командную строку, чтобы выполнить какую-либо команду. Когда программа или скрипт находятся за пределами известного системе расположения (они перечислены в переменной PATH), приходится вводить полный путь к ним. Запуск командной строки в нужной папке позволяет сэкономить время на вводе...

Читать дальше в блоге...

Это сообщение создано автоматически.

-------
Канал Windows 11, etc | Чат @winsiders

Это сообщение посчитали полезным следующие участники:

Отправлено: 10:30, 25-11-2010

 

Ветеран


Сообщения: 3320
Благодарности: 916

Профиль | Отправить PM | Цитировать


Самым быстрым способом был бы Drag & Drop в командную строку исполнительного файла, который требуется запустить. Но в Виста и Севен проделать данную манипуляцию с консолью, запушенного от имени другого пользователя, нельзя.
В Висте и с консолью текущего пользователя этого проделать тоже нельзя.>>
И как заявляли в свое время это By Design. Однако как оказалось для текущего пользователя всё же можно обойти, посредством утилит работающих по принципу "напечатать в консоли путь к файлу который передан мне в качестве первого параметре командной строки ". Другими словами: перетянув на ярлык/сам исполнительный файл такой утилиты любой файл получаем в запушенной ранее консоли его путь.
Вот примитивная версия такой программы (собирается батником)
Код: Выделить весь код
@echo off
SET FileName=SendToMyConsole

IF EXIST %FileName%.exe goto RunEXE
IF EXIST %FileName%.vb goto setNetVersion

echo Rem Start Code >%FileName%.vb
echo Imports System' >>%FileName%.vb
echo Imports System.Windows.Forms' >>%FileName%.vb
echo Imports System.Windows.Forms.SendKeys' >>%FileName%.vb
echo ' >>%FileName%.vb
echo Module Module1' >>%FileName%.vb
echo     Private Declare Auto Function GetDesktopWindow Lib "user32.dll" () As IntPtr' >>%FileName%.vb
echo     Declare Auto Function FindWindow Lib "USER32.DLL" (ByVal lpClassName As String, ByVal lpWindowName As String) As IntPtr' >>%FileName%.vb
echo     Declare Auto Function SetForegroundWindow Lib "USER32.DLL" (ByVal hWnd As IntPtr) As Boolean' >>%FileName%.vb
echo     Sub Main()' >>%FileName%.vb
echo         Dim HWND As IntPtr = FindWindow("ConsoleWindowClass", vbNullString)' >>%FileName%.vb
echo         If HWND ^<^> IntPtr.Zero Then' >>%FileName%.vb
echo             Dim theForegroundWindow As Boolean = SetForegroundWindow(HWND)' >>%FileName%.vb
echo             If theForegroundWindow = True Then' >>%FileName%.vb
echo                 SendWait(Command$())' >>%FileName%.vb
echo             End If' >>%FileName%.vb
echo         End If' >>%FileName%.vb
echo     End Sub' >>%FileName%.vb
echo End Module' >>%FileName%.vb
echo ' >>%FileName%.vb
REM End VbCode

:setNetVersion
if exist %SYSTEMROOT%\Microsoft.NET\Framework\v4.0.30319\vbc.exe goto net40
if exist %SYSTEMROOT%\Microsoft.NET\Framework\v3.5\vbc.exe goto net35
if exist %SYSTEMROOT%\Microsoft.NET\Framework\v2.0.50727\vbc.exe goto net20

echo Error: .NET Framework 4.0, 3.5, 3.0 or 2.0 required.
echo.
goto end

:net20
set VBC_PATH=%SYSTEMROOT%\Microsoft.NET\Framework\v2.0.50727
goto compile

:net35
set VBC_PATH=%SYSTEMROOT%\Microsoft.NET\Framework\v3.5
goto compile

:net40
set VBC_PATH=%SYSTEMROOT%\Microsoft.NET\Framework\v4.0.30319
goto compile

:compile
%VBC_PATH%\vbc %FileName%.vb /target:winexe

:RunEXE
%FileName%.exe

:end

Но это косвенный Drag & Drop в консоль.

В связи с этим вступлением вопрос: если какие-то утилиты позволяющие организовать Drag & Drop в административную консоль?
Как мне видится этот запрет связан с вопросами безопасности (кстати, а много ли было прецедентов с этой возможностью?), возможно по вопросу запрета "взаимодействия сервисов с рабочим столом".
Стало быть утилита которая могла бы возвращать данную возможность наверное шла бы в комплекте с драйвером виртуальной клавиатуры, так как по другому к консоли "не допечататься".
Не попадалась ли такая?

Отправлено: 17:41, 26-11-2010 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

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


(*.*)


Сообщения: 36497
Благодарности: 6676

Профиль | Сайт | Отправить PM | Цитировать


Цитата Admiral:
Самым быстрым способом был бы Drag & Drop в командную строку исполнительного файла, который требуется запустить. »
Гм... чтобы имя подставлялось при этом? Ну так можно открыть консоль озвученным тут способом, ввести первые 1-2 буквы файла и TAB нажать. Это быстрее, чем отдельно открывать консоль от имени администратора, а потом таскать в нее файл.

Цитата Admiral:
кстати, а много ли было прецедентов с этой возможностью? »
Думаю, достаточно одного

Утилит не попадалось.

-------
Канал Windows 11, etc | Чат @winsiders


Отправлено: 23:10, 26-11-2010 | #3


Аватара для Morpheus

Ветеран


Сообщения: 12426
Благодарности: 2328

Профиль | Отправить PM | Цитировать


Drag&Drop в cmd начинает работать, если перезапустить explorer от имени админа.

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

Отправлено: 23:45, 07-03-2011 | #4


(*.*)


Сообщения: 36497
Благодарности: 6676

Профиль | Сайт | Отправить PM | Цитировать


Цитата Morpheus:
Как мне представляется, это сильный удар по безопасности. Вы тоже так считаете? »
Нет, не считаю. Работу Drag&Drop при включенном UAC я объяснял в блоге. Там говорится, что не происходит повышения прав при перетаскивании из программ, запущенных с обычными правами, в программы, которые запущены с полными правами. И неважно, консоль это или блокнот. Поэтому создается ощущение, что перетаскивание не работает.

Цитата Morpheus:
если перезапустить explorer от имени админа »
то все программы, запускаемые из него, будут выполняться с полными правами. И зачем это нужно? С тем же успехом можно отключать UAC. В данном же случае обе программы (проводник и консоль) запущены с полными правами, следовательно перетаскивание работает.

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

-------
Канал Windows 11, etc | Чат @winsiders

Это сообщение посчитали полезным следующие участники:

Отправлено: 00:51, 08-03-2011 | #5


Аватара для Morpheus

Ветеран


Сообщения: 12426
Благодарности: 2328

Профиль | Отправить PM | Цитировать


Цитата Vadikan:
то все программы, запускаемые из него, будут выполняться с полными правами. »
Не докрутил, спасибо!
Цитата Vadikan:
С тем же успехом можно отключать UAC. »
Это и подозревалось, запуск проводника от админа практически пробивает такую же дыру в безопасности, как и отключение UAC.
Цитата Vadikan:
И зачем это нужно? »
Не нужно.

Отправлено: 01:03, 08-03-2011 | #6


(*.*)


Сообщения: 36497
Благодарности: 6676

Профиль | Сайт | Отправить PM | Цитировать


Morpheus, мы уже много говорили на тему UAC в рамках опроса Включен ли у вас контроль учетных записей?, так что я не буду повторяться. UAC - это не граница безопасности (защищенной зоны), потому что конечное решение принимает не система, а пользователь. Другое дело, что если UAC отключен, пользователь никогда не узнает, что вредоносное приложение запускается с полными правами.

-------
Канал Windows 11, etc | Чат @winsiders


Отправлено: 01:08, 08-03-2011 | #7



Компьютерный форум OSzone.net » Клиентские ОС Microsoft » Microsoft Windows 7 » Блог - Как открыть командную строку от имени администратора в нужной папке

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Службы - Как добавить командную строку в реестр LenGasT Microsoft Windows 2000/XP 2 20-11-2010 16:20
Службы - Как изменить тип запуска службы через командную строку ? ALEKCEN Microsoft Windows 2000/XP 1 29-08-2010 11:27
Разное - Как в ХР копировать (paste) команду из блокнота в командную строку? serge8 Microsoft Windows 2000/XP 2 21-06-2010 13:34
как получить командную строку ssh? _noname Программное обеспечение Linux и FreeBSD 4 26-02-2007 15:21
как вызвать командную строку modem Общий по Linux 8 06-07-2003 07:11




 
Переход