无法在辅助角色上安装Azure / AzureRM PowerShell模块

时间:2019-01-24 18:46:23

标签: azure-powershell azure-cloud-services azure-worker-roles

我在Azure云服务(经典)上具有辅助角色,我希望他们在启动时安装Azure和AzureRM PowerShell模块。我在ServiceDefinition.csdef文件中添加了启动任务:

<Startup>
  <Task commandLine="InstallAzureModules.cmd" executionContext="elevated" taskType="simple" />
</Startup>

InstallAzureModules.cmd文件如下所示:

PowerShell.exe -ExecutionPolicy Unrestricted .\InstallAzureModules.ps1 >> "D:\InstallAzureModulesLogs.txt" 2>&1

然后InstallAzureModules.ps1看起来像这样:

Install-PackageProvider NuGet -Force

Install-Module Azure -AllowClobber -Force

Install-Module AzureRM -AllowClobber -Force

结果是我出现错误磁盘上没有足够的空间,但是当我使用远程桌面连接到任何Worker实例并手动运行InstallAzureModules.cmd时,所有模块的安装都没有任何错误。

请帮助安装这些模块。

谢谢。

1 个答案:

答案 0 :(得分:0)

最后,与Microsoft支持联系后,问题已解决!

根据支持我的请求的支持专业人员,此错误是由于应用程序临时文件夹的重定向所致。建议我仔细阅读此link,以获取可能的解决方法,但此方法无效。

还提供了对我的PS脚本的更新,并且实际上帮助将TMP和TEMP环境变量设置为驱动器C上的文件夹。这是我的最终脚本:

$env_TMP = $env:TMP
$env_TEMP = $env:TEMP
$env:TMP = "C:\_trashable\Modules"
$env:TEMP = "C:\_trashable\Modules"

Install-PackageProvider NuGet -Force

Install-Module Azure -AllowClobber -Force

$env:TMP = $env_TMP
$env:TEMP = $env_TEMP

ECHO "Finished"