Как запустить процесс полного доверия с повышением из приложения UWP?

#c# #uwp

#c# #uwp

Вопрос:

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

Когда я пытаюсь запустить процесс полного доверия, он открывается и работает должным образом на моем компьютере (я использую учетную запись администратора). Однако, когда я просматриваю процесс в диспетчере задач, он не запускается с повышением.

Я просто беспокоюсь, что он может не работать ни на каком другом компьютере (не являющемся администратором). Вот мой код, который я использую в Package.appxmanifest, любезно предоставленный Стефаном Виком (https://stefanwick.com/2018/10/07/app-elevation-samples-part-3 /):

 <desktop:Extension Category="windows.fullTrustProcess" Executable="AssetsNitishTest.exe">
        <desktop:FullTrustProcess>
               <desktop:ParameterGroup GroupId="Parameters" Parameters="parameters" />
        </desktop:FullTrustProcess>
</desktop:Extension>

<uap3:Extension Category="windows.appExecutionAlias"
                Executable="AssetsNitishTest.exe"
                EntryPoint="Windows.FullTrustApplication">
        <uap3:AppExecutionAlias>
                <desktop:ExecutionAlias Alias="NitishTest.exe" />
        </uap3:AppExecutionAlias>
</uap3:Extension>
 

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

Комментарии:

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

2. Кроме того, мы предлагаем вам использовать проект упаковки приложений Windows (новая функция), который представлен в Windows 10 версии 1607, для создания пакета для вашего настольного приложения.

3. @YanGu-MSFT Привет, Ян, спасибо за комментарий. На самом деле я объявил allowElevation в манифесте под этим фрагментом кода. Будет ли это запускать процесс с полным доверием от имени администратора?

4. Не могли бы вы, пожалуйста, сказать мне, добавили ли вы код о перезапуске процесса от имени администратора, используя AppExecutionAlias в Program.cs «Расширенного расширения», как описано в блоге Стефана Вика?

5. @YanGu-MSFT Привет, Ян, я действительно добавил код для повторного запуска в качестве администратора, и теперь он работает. Спасибо! У меня просто возникла проблема с тем, чтобы заставить PackageManager работать, даже если процесс полного доверия повышен (у меня есть еще один пост).