Как автоматически / автоматически установить Desktop Experience в Azure? - PullRequest
2 голосов
/ 03 марта 2011

Мне нужно установить 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)

Я потерян. Заранее спасибо за любые предложения.

1 Ответ

1 голос
/ 03 марта 2011

Вам следует обратиться к этому руководству от Wage Wegner. Он имеет дело с Expression Encoder, но предпосылка Desktop Experience точно такая же:

http://www.wadewegner.com/2011/01/using-expression-encoder-4-in-a-windows-azure-worker-role/


Фрагмент из того же самого, но вы должны уделить время, чтобы прочитать его объяснение некоторых из этих понятий

REM : Install the Desktop Experience
ServerManagerCMD.exe -install Desktop-Experience -restart -resultPath results.xml
REM : Make a folder for the AppData
md "%~dp0appdata"
REM : Change the location of the Local AppData
reg add "hku\.default\software\microsoft\windows\currentversion\explorer\user shell folders" /v "Local AppData" /t REG_EXPAND_SZ /d "%~dp0appdata" /f
REM : Install Encoder
"%~dp0\webpicmd\WebPICmdLine.exe" /accepteula /Products: ExpressionEncoder4 /log:encoder.txt
REM : Change the location of the Local AppData back to default
reg add "hku\.default\software\microsoft\windows\currentversion\explorer\user shell folders" /v "Local AppData" /t REG_EXPAND_SZ /d %%USERPROFILE%%\AppData\Local /f
REM : Exit gracefully
exit /b 0
...