Я настроил виртуальную машину Azure с Windows 10 Pro для нашего пользовательского агента сборки DevOps. Пользователь, которого я создал, - Administrator и входит в группу Administrators.
Однако, если я делаю:
Import-Certificate
В PowerShell я получаю ошибку Access Denied
.
Есть ли шанс, что все мои экземпляры PowerShell автоматически получат привилегии администратора?
Это решение будет служить для размещенного DevOps Agent. Сейчас я не могу запустить ни один сценарий в нашем конвейере DevOps, для которого в конечном итоге потребовались бы привилегии администратора.
Итак, я понял это без каких-либо сторонних инструментов.
Исходная команда для запуска настраиваемого агента сборки была такой:
C: \ windows \ system32 \ cmd.exe / D / S / C start «Агент с автоматическим входом» «C: \ agent \ run.cmd» - -startuptype autostartup
Вышеупомянутая не администраторская командная строка, через которую DevOps не имеет прав администратора / повышенных привилегий.
Вы можете использовать команду Start-Process
PowerShell, чтобы запустить вышеуказанное с помощью -Verb RunAs
, чтобы получить повышенные привилегии:
powershell -Command "Start-Process powershell -ArgumentList ' C: \ windows \ system32 \ cmd.exe / D / S / C start C: \ agent \ run.cmd --startuptype autostartup '-Verb RunAs "
Однако этот подход жертвует заголовком командной строки, как и я не понять, как правильно избежать двойных кавычек, которые для этого нужны.
Если вы хотите запускать задачи в конвейере, требующие повышения прав администратора, вам необходимо убедиться, что служба агента работает с учетной записью администратора. Это будет работать только для автономных агентов. Если вы используете агенты, размещенные на сервере Microsoft, вы не сможете повысить уровень до администратора.