Самым быстрым способом был бы
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 в административную консоль?
Как мне видится этот запрет связан с вопросами безопасности (кстати, а много ли было прецедентов с этой возможностью?), возможно по вопросу запрета "взаимодействия сервисов с рабочим столом".
Стало быть утилита которая могла бы возвращать данную возможность наверное шла бы в комплекте с драйвером виртуальной клавиатуры, так как по другому к консоли "не допечататься".
Не попадалась ли такая?