我有一个Powershell脚本来设置app配置设置,如下所示:
Set-AzureRMWebApp -Name $SiteName -ResourceGroupName $ResourceGroupName -AppSettings $settings这个脚本将被Azure中的VSTS发行版管理所使用,但也会被他们的VS2015 IDE中的开发人员使用。
PS脚本有一个命令'Login-AzureRmAccount‘,它将在他们的本地开发机器上显示一个弹出,没关系。
但是使用PS任务的release也使用了这个脚本,但是在启动发布时我会遇到一个错误:‘在应用程序没有在UserInteractive模式下运行时显示一个模态对话框或表单,而不是一个有效的操作’。
如何仅防止VSTS中的对话框?
(请注意,Set-AzureRMWebApp似乎运行良好,但只有防止对话框导致任务错误)。
发布于 2016-12-01 06:35:30
这是一个有效的解决方法:
if ([Environment]::UserInteractive -and
!([Environment]::GetCommandLineArgs() |? {$_ -ilike '-NonI*'}))
{
Login-AzureRmAccount
}发布于 2016-11-23 15:13:12
您需要参数化脚本的登录部分,因此只有在没有由开发人员运行的情况下才会运行。当开发人员运行它时,用开关来调用它。
然后你可以做一些类似的事情
$secret = yourServicePrincipalKey
$azureApplicationId = yourServicePrincipalID
if (!switch)
{
$password = ConvertTo-SecureString -String $secret -AsPlainText -Force
$creds = New-Object System.Management.Automation.PSCredential ($azureApplicationId, $password)
$access = Login-AzureRmAccount -Credential $creds -ServicePrincipal -TenantId $tenantId
}您可以看到Login启用了-servicePrincipal开关
https://stackoverflow.com/questions/40757454
复制相似问题