Продолжая отэтот вопрос об открытии проводника файлов от имени другого пользователя, я пробовал перейти к C:\Windows
, shift+щелчок правой кнопкой мыши explorer.exe
и щелчок "Запуск от имени другого пользователя". Когда я ввожу данные для входа пользователя, я получаю два последовательных сообщения об ошибке, оба из которых говорят
Windows не может получить доступ к указанному устройству, пути или файлу. У вас может не быть соответствующих разрешений для доступа к элементу
Если я попробую данные для входа в аккаунт, в который в данный момент вошел, он работает, но другой нет. Это касается обоих аккаунтов (администраторов) на моем ПК.
Редактировать
В комментариях возникла некоторая путаница. Я пытаюсь следить запринятый ответв вопросе, ссылка на который приведена выше, и это не работает. Некоторые говорят, что это невозможно, поэтому странно, что есть принятый ответ с несколькими голосами «за» (Правка 2: ну, мой комментарий к этому ответу, в котором говорится, что это не работает, теперь имеет больше голосов «за», чем сам ответ!).
решение1
Заэта запись в блоге TechNet,explorer.exeвыглядит как однопоточный и не допускает запуска нескольких потоков под разными учетными записями пользователей:
Проводник Windows не предназначен для работы в нескольких контекстах безопасности в одном сеансе рабочего стола, Windows не может просто вывести запрос UAC, а затем запустить экземпляр Проводника с повышенными правами.
Самая полезная альтернатива использованиюexplorer.exe, как также указано в этой статье, заключается в загрузкеисследователь++и запустите его как пользователя, под которым вы хотите просматривать файлы. Вы можете подключаться к путям UNC так же легко в explorer++, как и в explorer, так что это, похоже, достаточная альтернатива. Это также самый простой подход, с которым я сталкивался, не требующий повышенных разрешений (например, тех, которые необходимы для вмешательства в реестр или установки дополнительного программного обеспечения).
решение2
Из того, что вы можете прочитать в других вопросах (1,2) относительно этой темы это обычно хакерство в лучшем случае и определенно не поддерживаемый сценарий. Более того, во втором вопросе есть немного больше информации, и если вы пройдете по нескольким ссылкам, то попадете сюда:Итак, это Виста…
Если вы прочитаете эту статью, то прочтете следующее:
Однако в Vista изменений больше. Ни Internet Explorer, ни Windows Explorer не хотят поддерживать несколько учетных записей на одном рабочем столе. Если вы попытаетесь запустить IE под учетной записью, отличной от учетной записи рабочего стола, он отобразит сообщение об ошибке: «Команда RUNAS не поддерживается». Насколько я понимаю, основная причина в том, что в защищенном режиме Internet Explorer, который работает на низком уровне целостности, IE также запускает процесс брокера среднего IL (ieuser.exe), который работает как пользователь рабочего стола и который пропускает выбранные операции среднего IL для процесса с низким IL. Разрешение нескольким идентификаторам в этой смеси привело бы к значительной сложности, которой лучше избегать. Если вы попытаетесь запустить Windows Explorer под другим пользователем, вы ничего не увидите — новый процесс запускается, но завершается без отображения окна.
...
Explorer немного сложнее. Прямое применение «Запуск от имени администратора» не поможет, но запуск из командной оболочки с повышенными правами часто поможет. Я обнаружил, что командная строка типа «explorer /e,c:\» будет работать, в то время как простой запуск «explorer» может не работать. Нокак прежде: если это вообще работает, то это непреднамеренный побочный эффект текущей реализации, который может быть изменен в любое время.
Разумно ожидать, что они сохранят такое же поведение, как в Windows Vista, Windows 7, Windows 8, а теперь (вероятно) и в Windows 10.
Поэтому, похоже, вам придется либо прибегнуть к хаку, либо рассмотреть обходной путь, либо пересмотреть свою проблему, которая приведет к необходимости запускать проводник от имени другого пользователя.
В качестве обходного пути вы можете использовать другой файловый менеджер, например Total Commander, cmd
запущенный под другими учетными данными, диалоговое окно открытия файла какой-либо другой программы, запущенной от имени другого пользователя, или функцию «быстрого переключения» Windows, чтобы временно переключиться на другого пользователя.
Вы на самом деле не предоставили никакой информации, почему вы пытаетесь это сделать, поэтому я понятия не имею, как может выглядеть другой подход, а что касается взлома... их несколько в вопросах выше. Я предполагаю, что тот, на который вы ссылались в своем первоначальном вопросе, был замаскирован как решенный, потому что человек провел более глубокое исследование и, возможно, наткнулся на один из этих взломов.
решение3
Интересный обходной путь, который я недавно обнаружил сам, и о котором здесь еще никто не упоминал:
Запустите любой процесс/программу от имени другого пользователя (например, Notepad), и в зависимости от программы и используемой среды вы можете использоватьAPI диалогового окна общего файладля выполнения множества регулярных операций с оболочкой «исследователя».
(Просто выберите Сохранить как... или Открыть... в меню и используйте контекстное меню для копирования/вставки и т. д., затем «отмените» диалоговое окно).
Как вообще запуститься от имени другого пользователя
Чтобы запустить любую программу от имени другого пользователя, используйтеsysinternals shellrunas, который может установить элемент контекстного меню. В качестве альтернативы, создайте cmd свстроенные в Windows runas, затем запустите программу, которая используетAPI диалогового окна общего файла.
решение4
Настройка Проводника для открытия папок в отдельных процессахпривыкшийразрешить работу под управлением 1511. Например, в командной строке, запущенной от имени пользователя user1, «explorer c:\somePath» откроет окно проводника, запущенного от имени пользователя user1, тогда как из командной строки, запущенной от имени пользователя UserZ, та же команда откроет окно проводника, запущенного от имени пользователя UserZ.
После обновления до 1607 это сломалось. Щелкните правой кнопкой мыши и запустите от имени другого пользователя, и вы получите те же ошибки, что и выше.
Запускаю explorer из командной строки, но окно не отображается, а появляется новый процесс explorer, принадлежащий текущему вошедшему в систему пользователю рабочего стола. Этот процесс в конечном итоге исчезает сам по себе. Я пару раз наблюдал, как новый процесс explorer запускался от имени пользователя, который его вызвал, затем этот процесс немедленно закрывался, и создавался новый процесс, принадлежащий пользователю рабочего стола (и никогда не появлялся, а через некоторое время автоматически завершался). Я подозреваю, что так происходит всегда, просто обычно это происходит слишком быстро, чтобы это можно было заметить в диспетчере задач. Process Monitor или что-то подобное, вероятно, помогло бы это доказать, но я не стал этим заниматься, так как, вероятно, я все равно не смогу это исправить. :\