Субдиск невидим в процессах без прав администратора

4643
xxbbcc

У меня есть локальная папка, X:\Source\Q_Projectкоторую я хочу сопоставить с Q:буквой диска. Я использую ярлык, который указывает на командный файл для этого. Пакетный файл:

@echo off subst q: /d subst q: X:\Source\Q_Project 

Это прекрасно работало в 64-битной Windows 7 Ultimate - мне удалось увидеть Q:диск из Windows Explorer и любой другой 32/64-битной программы, включая консоль и т. Д.

В Windows 8 Home 64-bit это больше не работает. У меня отключено UAC (только через пользовательский интерфейс, поэтому оно не совсем, действительно отключено, но предупреждения все равно отключены). Ярлык настроен для запуска от имени администратора на Properties->Shortcutвкладке.

Когда я дважды щелкаю по ярлыку Q:, запускается пакетный файл, и диск виден из одной конкретной программы, Far Manager (32-разрядное консольное приложение, работающее от имени администратора). Если я запускаю процесс через Far Manager, этот процесс также видит Q:диск. Все, что я пытаюсь запустить с помощью Проводника или других ярлыков на рабочем столе, не видит диск, на котором был установлен диск. Если я запускаю ярлык с помощью Run as administrator, эти программы увидят Q:диск.

Это сводит меня с ума - есть ли способ исправить это в этом жалком оправдании ОС? Windows 7 прекрасно с этим работала (я работал как настоящий администратор под Windows 7, но под Windows 8 я пытаюсь понять, возможно ли сделать это «правильно» - пока это не получается, я продолжаю запускать все как админ).

Является ли единственная возможность действительно отключить UAC и работать от имени администратора? Я знаю, что это убьет все приложения Metro, но это нормально для меня.

Примечание: постоянное отображение через реестр не будет работать для меня (у меня тоже есть один). Мне нужно иметь возможность Q:часто сопоставлять диск с различными хранилищами исходного кода без необходимости выходить из системы / перезапускать.

1
То, что вы видите, ничем не отличается от 7 или даже Vista - когда вы запускаете что-то «как администратор», тогда оно запускается в контексте администратора, а не пользователя. Как бы то ни было, какую ФАКТИЧЕСКУЮ проблему вы пытаетесь решить? Почему бы просто не отобразить карту / субтитр Q: как текущий пользователь? Ƭᴇcʜιᴇ007 11 лет назад 1
С UAC вы получаете 2 контекста: отфильтрованный стандартный пользователь и повышенный пользователь. Команда subst действует только для контекста, в котором она была выполнена. Вам нужно будет запустить subst от имени обычного пользователя. По какой причине вы запускаете ярлык от имени администратора? David Marshall 11 лет назад 1
@DavidMarshall Мне это нужно, потому что большинство моих программ должны запускаться с правами администратора - Visual Studio, Far Manager и т. Д. Я стараюсь запускать как можно меньше программ с правами администратора, но это относится только к программам Office. Я инженер, и большинство моих программ нужно запускать с правами администратора. xxbbcc 11 лет назад 0
@techie - мне нужно получить доступ к своему диску `Q:` из стандартного процесса и с повышенными правами. Кажется, что единственное решение - по-настоящему уничтожить UAC через реестр. xxbbcc 11 лет назад 0
Или подставьте его дважды, один раз для пользовательского контекста, который вы используете, и один раз для контекста администратора. PS: я все время запускаю VS в режиме обычного пользователя - это помогает вам создавать программы, требующие прав администратора, даже не осознавая этого. ;) Возможно, вам следует подумать об изменении своих процессов, а не пытаться обойти безопасность ОС. Ƭᴇcʜιᴇ007 11 лет назад 5
@xxbcc Что произойдет, если вы запустите subst дважды; один раз как администратор и один раз как обычный пользователь. Я слышал, что сотрудники Microsoft говорят, что тестирование Windows 8 с отключенным UAC не проводится. Так что отключение UAC действительно является последним средством. David Marshall 11 лет назад 0
@ DavidMarshall Я не пробовал это, я посмотрю, если это работает. xxbbcc 11 лет назад 0
@ techie007 Вот почему я на самом деле не выключил UAC, а просто отключил уведомления пользовательского интерфейса. Но у меня есть ряд программ (проекты, над которыми я тоже работаю), которые требуют постоянного доступа администратора. xxbbcc 11 лет назад 0
Возможная копия [Командная строка в режиме администратора не видит подключенных дисков] (https://superuser.com/questions/690287/command-prompt-in-administrator-mode-doesnt-see-mapped-drives) Ben N 7 лет назад 1

1 ответ на вопрос

0
user244257

Если вы хотите «сопоставить» папки с subst и использовать «экземпляр администратора» программы, вы должны также выполнить «subst» в качестве администратора. Легко ;)

Щелкните правой кнопкой мыши на ярлыке и выберите «Запуск от имени администратора ...»

Похожие вопросы