2

新しい Azure portal を使用して、特定の VM を起動する PowerShell Runbook を追加しようとしています。これは私の PC から powershell で実行されるものではなく、代わりに ARM ジョブとして実行されます。ログインに成功する方法が見つからないようです。

PowerShell でデスクトップから実行している場合は、Login-AzureRmAccount を呼び出すだけで、それ以上の手順を実行する前にログイン ダイアログが表示されます。私が Web で読んだことから、私がしなければならないことは、資格情報を Automation アカウントに追加し、それを取得してから、同じ Login メソッドを呼び出すことであると思われました。これで完了しましたが、まだログインできません。

Import-Module AzureRM.Compute
$AutomationCredentialAssetName = "automation"
$Cred = Get-AutomationPSCredential -Name $AutomationCredentialAssetName
Write-Output $Cred
Login-AzureRmAccount -Credential $Cred
Start-AzureRmVm -Name 'myvmname' -ResourceGroupName 'myresourcegroupname'

資格情報は正しく取得されています (get は出力に書き込まれます) が、Login-AzureRmAccount への呼び出しは次のように失敗します。

Login-AzureRmAccount : unknown_user_type: Unknown User Type 行:10 文字:1 + Login-AzureRmAccount -Credential $Cred + ~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~ + CategoryInfo : NotSpecified: (:) [Add-AzureRmAccount], AadAuthenticationFailedException + FullyQualifiedErrorId : Microsoft.Azure.Common.Authentication.AadAuthenticationFailedException,Microsoft.Azure.Com mands.Profile. AddAzureRMAccountCommand

最初にログインしようとしないと、最初に Login-AzureRmAccount を呼び出すようにというメッセージが表示されます。

自動化タスクを実行できるようにランブック内から認証するにはどうすればよいですか? 私は何を間違っていますか?

4

4 に答える 4

8

その後、Automation アカウントが作成されたときに、ログインに使用できる接続が作成されたことを発見しました。

$connectionName = "AzureRunAsConnection"
try
{
    # Get the connection "AzureRunAsConnection "
    $servicePrincipalConnection = Get-AutomationConnection -Name $connectionName         

    "Logging in to Azure..."
    Add-AzureRmAccount `
        -ServicePrincipal `
        -TenantId $servicePrincipalConnection.TenantId `
        -ApplicationId $servicePrincipalConnection.ApplicationId `
        -CertificateThumbprint   $servicePrincipalConnection.CertificateThumbprint 
}
catch {
    if (!$servicePrincipalConnection)
    {
        $ErrorMessage = "Connection $connectionName not found."
        throw $ErrorMessage
    } else{
        Write-Error -Message $_.Exception
        throw $_.Exception
    }
} 
于 2016-07-07T10:51:32.783 に答える
0

私はちょうど同じ問題に遭遇しました。ここに投稿された情報は役に立ちましたが、問題を完全に解決することはできませんでした.

私が必要とした重要な洞察は、Azure コマンドレットを使用するには、「実行アカウント」を構成する必要があるということでした。( https://docs.microsoft.com/en-us/azure/automation/automation-sec-configure-azure-runas-accountAccount Settingsを参照) azure Automation アカウントのセクションで設定できます。

「実行アカウント」を取得したら、BlackSpy が提案する方法を使用してログインできます。

# Get the connection
$servicePrincipalConnection = Get-AutomationConnection -Name AzureRunAsConnection         

"Logging in to Azure..."
Add-AzureRmAccount `
    -ServicePrincipal `
    -TenantId $servicePrincipalConnection.TenantId `
    -ApplicationId $servicePrincipalConnection.ApplicationId `
    -CertificateThumbprint   $servicePrincipalConnection.CertificateThumbprint 

これが誰かを助けることを願っています。

于 2017-02-24T12:44:57.223 に答える