Мне нужно установить Desktop Experience в рабочей роли Azure. Установка DE через командную строку может быть выполнена с помощью:
c:\servermanagercmd -install Desktop-Experience
И тогда требуется перезагрузка.
Как мне лучше всего выполнить эту работу в рабочей роли Azure?
ОБНОВЛЕНИЕ:
1) Обязательно используйте ОС Family 2 и SDK> = 1,3
2) Используйте задачу запуска с повышенными правами для вызова включенного пакетного файла с помощью этой команды:
3) servermanagercmd -install Desktop-Experience -restart -resultPath results.xml
Я пытался
a) поместить эту командную строку в пакетный файл / .cmd и запустить ее с помощью задачи запуска с повышенными правами. Результат: рабочая роль продолжает прерываться и перезапускается в бесконечном цикле.
b) Я пытался создать новый Process () в OnStart (), с повышенным временем выполнения, что-то вроде этого:
ServiceDefinition.csdef:
Runtime executionContext="elevated"
WorkerRole.cs:
public override bool OnStart()
{
if (!System.IO.File.Exists("Startup\\InstallationFinished.txt"))
{
Process startup = new Process();
startup.StartInfo.FileName = "Startup\\InstallDesktopExperience.cmd";
startup.StartInfo.CreateNoWindow = true;
startup.EnableRaisingEvents = true;
startup.Start();
startup.WaitForExit();
System.IO.File.WriteAllText("Startup\\InstallationFinished.txt",
"Installation is complete.");
startup.StartInfo.FileName = "Startup\\Reboot.cmd";
startup.Start();
}
base.OnStart();
}
InstallDesktopExperience.cmd:
servermanagercmd -install Desktop-Experience
Reboot.cmd:
shutdown /r
В результате средство просмотра событий в рабочей роли Azure показывает исключение из TrustedInstaller (0xc0000005). После того, как эта ошибка отображается в журнале событий, DE нельзя установить вручную, открыв окно командной строки и введя команду. Я получаю ошибку:
Ошибка: установка [Desktop Experience] не удалась. Попытка установить Desktop Experience не удалась с кодом ошибки 0x80080005. Не удалось выполнить сервер (исключение из HRESULT: 0x80080005 (CO_E_SERVER_EXEC_FAILURE))
(но он работает, делая это вручную в окне командной строки, если я не запускал код в OnStart)
Я потерян. Заранее спасибо за любые предложения.