2016-11-23 4 views
0

を無人。ログイン-AzureRmAccountはこのように私は、アプリの設定の設定を設定するためのPowerShellスクリプトを持って

PSスクリプトにはローカルDevマシンでポップアップを表示するコマンド 'Login-AzureRmAccount'があります。これは問題ありません。

しかし、このスクリプトはまた、PSのタスクを使用してリリース-管理によって使用されますが、私はリリースキックオフ時にエラーが発生します:アプリケーションがUserInteractiveモードにされて実行されていないとき 「モーダルダイアログボックスを表示するか、形成有効な操作 'ではありません。

どのようにしてVSTSのダイアログボックスだけを防ぐことができますか?

(Set-AzureRMWebAppは正常に動作しているように見えますが、ダイアログが表示されないためにタスクエラーが発生することに注意してください)。

+1

'ご覧ください。 「サービスプリンシパルを使用して認証する」セクションを参照してください。https://blogs.endjin.com/2016/01/azure-resource-manager-authentication-from-a-powershell-script/ HTH。 –

+0

"Azure Powershell script"タスクを使用している場合は、スクリプトの実行時にプロセスがすでに認証されています。私は 'Login-AzureRmAccount'をスキップする方法を理解する必要があると思います。 –

答えて

0

を有効にしている見ることができます

$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 
} 

ような何かを行うことができます。

if ([Environment]::UserInteractive -and 
     !([Environment]::GetCommandLineArgs() |? {$_ -ilike '-NonI*'})) 
{ 
    Login-AzureRmAccount 
} 
0

スクリプトのログインセクションをパラメータ化して、devで実行されていない場合にのみ実行するようにする必要があります。 devsがそれを実行するとき、それを言うスイッチと呼んでください。

次に、あなたはあなたがそのログイン-AzureRmAccountは-servicePrincipalスイッチはこの作品修正です

関連する問題