通过Azure Powershell for Resource Manager进行无人参与身份验证

时间:2015-07-13 10:25:28

标签: azure azure-powershell azure-resource-manager

我有一堆Azure Powershell部署脚本,它们在构建完成后由构建服务器触发,完美运行 - 我使用Import-AzurePublishSettingsFile(安全地存储在本地)以无人值守的方式登录Azure。

我现在需要扩展它们以包括对Sql Azure服务器,弹性池和数据库的管理。

然而,这些是具有不同身份验证方法的Azure Resource Manager cmdlets的一部分。

我发现了这些文章:

但似乎要求您在流程的某个阶段输入您的凭据。上面的第二个链接明确指出:

  

AzureResourceManager模块需要Add-AzureAccount。发布设置文件是不够的。

我尝试过(仅查看会发生什么)使用Switch-AzureMode -Name AzureResourceManager切换到资源管理器,然后只执行其中一个cmdlet,例如Get-AzureResourceGroup -Name "blah",但我只是得到错误

  

Get-AzureResourceGroup:AuthenticationFailed:身份验证失败。 “授权”标题不存在或以无效格式提供。

我很高兴通过门户手动设置AD应用程序,一次,然后为我的脚本提供相关的应用程序ID或任何所需的内容。我只需要它无人值守,以便我的构建可以部署!

有人能告诉我如何制作无人参与的脚本以通过Powershell使用这些Azure Resource Manager cmdlet吗?

1 个答案:

答案 0 :(得分:1)

这篇文章详细介绍了如何做到这一点。基本上,您使用AD用户的用户名和密码嵌入了PowerShell脚本。

但请注意,如果像我一样,您希望将对AzureResourceManager AzureServiceManagement模式的调用(使用<script src="scripts/angular-ui/ui-bootstrap-tpls.js"></script> <script src="scripts/app/station/editCtrl.js"></script> )组合在一起,那么您必须使用Switch-AzureMode并且{ {1}}否则某些AzureServiceManagement模式cmdlet将停止工作。