我需要在Azure辅助角色中安装桌面体验。通过命令行安装DE可以通过以下方式完成:
c:\servermanagercmd -install Desktop-Experience
然后需要重新启动。
如何才能最好地在Azure辅助角色中完成此工作?
更新:
1)确保使用OS Family 2和SDK> = 1.3
2)使用提升的启动任务使用以下命令调用包含的批处理文件:
3) servermanagercmd -install Desktop-Experience -restart -resultPath results.xml
我试过了
a)将该命令行放在批处理/ .cmd文件中,并通过提升的启动任务运行它。结果:工作者角色保持中止并在无休止的循环中重新启动。
b)我试图在提升的运行时在OnStart()中创建一个新的Process(),如下所示:
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。我收到错误:
错误:安装[桌面体验]失败。尝试安装桌面体验失败,错误代码为0x80080005。服务器执行失败(来自HRESULT的异常:0x80080005(CO_E_SERVER_EXEC_FAILURE))
(但如果我没有在OnStart中运行代码,它可以在命令行窗口中手动执行)
我迷路了。提前感谢任何和所有建议。
答案 0 :(得分:1)
您应该参考Wage Wegner的这本指南。它涉及Expression Encoder,但桌面体验的先决条件完全相同:
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