1

Отредактировал вопрос:

Когда я запустил и прикрепил SQL Data Compare к панели быстрого запуска, я заметил, что не могу запустить эту программу как другой пользователь, используя модификацию Shift+ щелчок правой кнопкой мыши.

Более внимательное изучение сгенерированного ярлыка показывает, что он не ведет себя как другие ярлыки.

Целевое поле отключено и содержит только имя приложения вместо пути

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

Изменить: приложения Redgate и приложения Microsoft Office 2010 ведут себя таким образом.

Что я пробовал

  • Создание ярлыка на рабочем столе прямо из исполняемого файла. Это сработало, но это не то, что я хочу. Мой рабочий стол уже загроможден как есть.

  • Закрепление приложения на панели быстрого запуска дает объявленный ярлык без опции «Запуск от имени», даже если бы я мог использовать параметр «Запуск от имени рабочего стола».

Вопрос

  • Есть ли способ создать ярлык быстрого запуска, который дает мне опцию "Запуск от имени другого пользователя"?
  • Как отключить эти "рекламируемые ярлыки"?

2 ответа2

1

Это действительно рекламируемый ярлык. Когда у меня появилось настоящее имя, я смог найти решение.

http://social.technet.microsoft.com/Forums/windows/en-US/fc0ce9f3-169a-43c9-b878-d678745c84f0/run-as-different-user-unavailable-for-advertised-shortcuts

Попробуйте инструмент ShellRunAs от SysInternals: http://technet.microsoft.com/en-us/sysinternals/cc300361

В командной строке введите следующее:

shellrunas.exe /reg

1

Не ваш средний ярлык

Это специальный, так называемый рекламируемый ярлык, созданный установщиком Windows, назначение которого нельзя изменить вручную:

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

Если бы вы проанализировали содержимое ярлыка, вы бы обнаружили DarwinDataBlock внутри:

Структура DarwinDataBlock определяет идентификатор приложения, который можно использовать вместо целевого IDList ссылки для установки приложения при активации ссылки на оболочку .

Идентификатор приложения

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

Решение

Согласно ответу @Johan Buret, используйте ShellRunAs от Sysinternals:

В командной строке введите следующее:

shellrunas.exe /reg

Это зарегистрирует обработчик контекстного меню.

ShellRunas предоставляет функциональность, аналогичную функциональности Runas, для запуска программ от имени другого пользователя с помощью удобной записи в контекстном меню оболочки.

Временное решение

Создайте новый ярлык, указывающий на то же приложение.

Рекомендации

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .