我在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时,所有模块的安装都没有任何错误。
请帮助安装这些模块。
谢谢。
答案 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"