Невозможно запустить Проводник от имени другого пользователя

8

Исходя из этого вопроса об открытии файлового менеджера от имени другого пользователя , я попытался перейти к нему C:\Windows, нажать Shift + щелчок правой кнопкой мыши explorer.exeи нажать «Запуск от имени другого пользователя». Когда я ввожу данные для входа в систему пользователя, я получаю 2 последовательных сообщения об ошибках, оба из которых говорят

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

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

редактировать

Там было некоторое замешательство в комментариях. Я пытаюсь следовать принятому ответу в вопросе, связанном выше , и это не работает. Некоторые люди говорят, что это невозможно, поэтому странно, что есть принятый ответ с 3 ответами

binaryfunt
источник
@ BlueBerry-Vignesh4303 Пользователи на моем ПК имеют разрешения «Чтение» и «Чтение и выполнение» дляexplorer.exe
binaryfunt,
В общем, я думал, что так будет, поскольку explorer [процесс параллельного проводника, уже работающий на существующем пользователе), является общим каталогом, который является общим для обоих, который служит для исследования файлов в каталоге Windows, поэтому он может быть недоступен для другого пользователя, но результат тот же выполнять какие-либо другие программы Microsoft, такие как cmd.exe?
BlueBerry - Vignesh4303,
@ BlueBerry-Vignesh4303 Я могу открыть cmd.exeпросто отлично, как другой пользователь. Если в ответе на связанный вопрос (3 отзыва) сказано, что я пытался запустить explorer от имени другого пользователя, это должно сработать
binaryfunt
Если вы можете просто открыть cmd, оттуда наберите start .и он должен открыть проводник от имени этого пользователя.
LPChip
@LPChip Я получаю то же сообщение об ошибке, если я пытаюсь это сделать, и оно говорит Access deniedна новой строке (обычное приглашение cmd все еще может открыть проводник в качестве текущей учетной записи)
binaryfunt

Ответы:

6

За этим TechNet Blog Post , explorer.exe выглядит однопоточный и не позволит несколько потоков , работающих под разными учетными записями пользователей:

Проводник Windows не предназначен для работы в нескольких контекстах безопасности в одном сеансе рабочего стола, Windows не может просто вызвать запрос UAC и затем запустить экземпляр Explorer с повышенными правами

Наиболее полезная альтернатива использованию explorer.exe , как также описано в этой статье, - это загрузить explorer ++ и запустить его от имени пользователя, для которого вы хотите просматривать файлы. Вы можете подключиться к UNC-путям так же легко в explorer ++, как и в explorer, так что это кажется достаточной альтернативой. Это также самый простой подход, который мне встречался, который не требует повышенных разрешений (например, тех, которые необходимы для вмешательства в реестр или установки дополнительного программного обеспечения).

Джон Айсбренер
источник
2
Это выглядит как правильный ответ. Я нашел те же препятствия, что и ОП. Я считаю, что этот ответ должен быть принятым ответом.
Джеймс Дженкинс,
1

Из того, что вы можете прочитать в других вопросах ( 1 , 2 ) по этой теме, обычно это в лучшем случае хакерство и, конечно, не поддерживаемый сценарий. Более того, второй вопрос содержит больше информации, и если вы перейдете по нескольким ссылкам, вы окажетесь здесь: И так это Vista ...

Если вы проверите эту статью, вы прочитаете следующее:

На Vista, однако, есть больше изменений. Ни Internet Explorer, ни Windows Explorer не желают использовать несколько учетных записей на одном рабочем столе. Если вы попытаетесь запустить IE под учетной записью, отличной от учетной записи рабочего стола, на экране появится сообщение об ошибке: «Команда RUNAS не поддерживается». Насколько я понимаю, основная причина заключается в том, что в защищенном режиме Internet Explorer, который работает на низком уровне целостности, IE также запускает процесс посредника Medium IL (ieuser.exe), который запускается как пользователь рабочего стола и который управляет выбранными операциями Medium IL для Низкий IL процесс. Включение нескольких идентификаторов в эту смесь привело бы к значительной сложности, которую лучше избегать. Если вы попытаетесь запустить Windows Explorer от имени другого пользователя, вы ничего не увидите - новый процесс запускается, но завершается без отображения окна.

...

Исследователь немного сложнее. Непосредственное применение «Запуск от имени администратора» не сделает этого, но запуск его из командной оболочки с повышенными правами часто будет. Я считаю, что командная строка, такая как «explorer / e, c: \», будет работать, в то время как просто запуск «explorer» может не сработать. Но, как и прежде : если он работает вообще, это непреднамеренный побочный эффект текущей реализации, и он может быть изменен в любое время.

Разумно ожидать, что они будут вести себя так же, как в Windows Vista, Windows 7, Windows 8 и теперь (вероятно) Windows 10.

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

В качестве обходного пути вы можете использовать другой файловый менеджер, такой как Total Commander, cmdкоторый работает с другими учетными данными, диалог открытия файла какого-либо другого программного обеспечения, запущенного вами как другой пользователь, или «быстрый переход» Windows для временного переключения на другой. пользователь.

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

Сет
источник
1

Настройка Explorer для открытия папок в отдельных процессах, используемых для разрешения этого под 1511. Например, в командной строке под именем user1, «explorer c: \ somePath» откроет окно Explorer под именем user1, а из командной строки под именем UserZ та же команда откроет окно обозревателя, работающее как UserZ.

После обновления до 1607 года это сломалось. Щелкните правой кнопкой мыши и запустите, поскольку другой пользователь приводит к тем же ошибкам, указанным выше.

При запуске проводника из командной строки окно не отображается, но появляется новый процесс проводника, принадлежащий текущему вошедшему в систему пользователю рабочего стола. Этот процесс в конечном итоге проходит сам по себе. Я пару раз наблюдал, как новый процесс проводника запускается как пользователь, который его вызвал, затем этот процесс немедленно закрывается, и новый процесс, принадлежащий пользователю рабочего стола, порождается (и никогда не обнаруживается, а после того, как бит автоматически убивается) ). Я подозреваю, что это всегда так, просто обычно происходит слишком быстро, чтобы наблюдать в диспетчере задач. Process Monitor или что-то подобное, вероятно, помогло бы доказать это, но я не беспокоился, так как, вероятно, все равно не могу это исправить. : \

user705022
источник
1

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

Создайте любой процесс / программу от имени другого пользователя (например, «Блокнот»), и в зависимости от программы и используемой платформы вы можете использовать API-интерфейс Common File Dialog Box для выполнения многих обычных операций оболочки «проводника».

(Просто выберите «Сохранить как ...» или «Открыть ...» в меню и используйте контекстное меню для выполнения копирования / вставки и т. Д., А затем «отмените» диалоговое окно).

Как запустить как другой пользователь в первую очередь

Чтобы вызвать любую программу от имени другого пользователя, используйте оболочки sysinternals , которые могут установить пункт контекстного меню. В качестве альтернативы, создайте cmd со встроенными Windows runas , а затем запустите программу, которая использует API-интерфейс Common File Dialog Box .

Hatebit
источник