2017-11-15 11 views
0

タイトルが示すように、私はPowershellのAzureRMAccountへのログインプロセスを自動化しようとしています。Login-AzureRMAccountは "Unknown User Type"を返します

さまざまなソリューションの組み合わせを試してみることができるすべてのWebサイトで、あらゆるフォーラムを精査しました(うまくいけば解決策はありません)。

はい、私はこのアカウントへのフルアクセス権を持っている、とはい

未知ユーザタイプ:

私はAzureのアカウントのログイン・プロセスを自動化しようとするたびに、私はエラーを取得しますすべてのパラメータを省略して対話型のユーザー名とパスワードのダイアログを許可すると正常に動作します。

私は単純にGet-Credentialsを呼び出し、それらを変数にプッシュして、それらの信用を使ってLogin-AzureRMAccountを呼び出してみました。

Add-AzureRMAccountも失敗します。

ご協力いただければ幸いです。あなたがライブ口座を使用して静かにログインすることはできません

enter image description here

答えて

0

は、あなたはAzureのADアカウントまたはサービスプリンシパルを使用する必要があります。または、証明書の認証を使用します。これは、サービスの主要な例である:

Add-AzureRmAccount -TenantId $tId -ServicePrincipal -SubscriptionName $sub ` 
-Credential ([pscredential]::new($clId,(ConvertTo-SecureString -String $clPwd -AsPlainText -Force))) 

または資格情報の共有機能(azurerm 4.4.0以上)を使用します。その後

Enable-AzureRmContextAutosave 

あなたはAzureの出来上がりにログインします。すべてのスクリプトでこれらのキャッシュされた資格情報を使用してAzureを操作できます。

+0

Add-AzureRmAccountの例では、ディレクトリに 'xxxxx'が見つからないというエラーが発生します。私はTenantIdをAzureから取り出し、インタラクティブなログインの結果を二重に検証したので、私の$ subと$ tidと$ clPwdは正確であることを知っています。 $ clId私の紺碧のログインユーザー名ですか? (つまり、私の[email protected]) – WebDrive

+0

うーん、あなたは晴れやかなユーザーのupn、フルupnを使用する必要があります。 – 4c74356b41

+0

nope。私はユーザーのログイン名 '[email protected]'(これも私のAADユーザー名です)を試しました。私もAAD ObjectIdとフルネーム(基本的に2つのguid)を試しました。 – WebDrive

0

Powershellコードが実行されているマシンに誰かがアクセスした場合、情報を危険にさらすディスクファイルを生成するため、最も安全な解決策ではありませんが、解決策はありませんでした。

あなたは、その後、後の時点で、JSONファイルにコンテキストをエクスポートインタラクティブに、すぐにログインバイパスログインに現在のコンテキストとして、そのJSONファイルをインポートすることができ

PS C:\> Save-AzureRmContext -Profile (Add-AzureRmAccount) -Path C:\test.json 

その後のセッションでは、インポート文脈

PS C:\> Import-AzureRmContext -Path C:\test.json 

また、これは最も安全なオプションではありませんが、結果を達成しました。私はより安全なオプションを持っていたいです。

関連する問題