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

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

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

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

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

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

3 ответа

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

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

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

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

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

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

...

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

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

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

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

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

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

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

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

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

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

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

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

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

Другие вопросы по тегам