Nopromptより高速なログインエクスペリエンスを得るために次のコマンドを試しましたが、ログインポップアップが表示されるたびに。私は最初に証明書を使用しようとしましたが、それが機能しなかったため、テナントIDで試行しました。インタラクティブではなくシームレスで高速なログインを行う方法に関するヘルプまたは提案。
Login-AzureRmAccount -SubscriptionId 1238154XXXXfd-1c4121796e58 -TenantId 754XXXXXXXXXXX5d10d8XXX
Add-AzureRmAccount -Tenant "754XXXXXXXXXXX5d10d8XXX" -SubscriptionId "1238154XXXXfd-1c4121796e58"
Login-AzureRmAccount -TenantId 754XXXXXXXXXXX5d10d8XXX
または、常に対話型ログインプロンプト経由で行かなければならないということですか。ポインタをリクエストし、検討と時間を事前に感謝します。
-Credential
パラメーターとDPAPIを使用してログインできます。
まず、次のPowerShellを1回実行して、アカウントのセキュリティで保護されたパスワードを保存します。
Read-Host "Enter Password" -AsSecureString | ConvertTo-SecureString `
-AsPlainText -Force | ConvertFrom-SecureString | Out-File "C:\Password.txt"
そして、次のスクリプトを使用してログインできます。
# The Azure account here must not be a Live ID.
$username = "<your Azure account>"
$SecurePassword = Get-Content "C:\Password.txt" | ConvertTo-SecureString
$cred = new-object -typename System.Management.Automation.PSCredential `
-argumentlist $username, $SecurePassword
Login-AzureRmAccount -Credential $cred
別の方法は、サービスプリンシパルを使用することです。まず、 記事 に従ってサービスプリンシパルを作成する必要があります
次に、次のスクリプトを使用してログインします。
$clientID = "<the client id of your AD Application>"
$key = "<the key of your AD Application>"
$SecurePassword = $key | ConvertTo-SecureString -AsPlainText -Force
$cred = new-object -typename System.Management.Automation.PSCredential `
-argumentlist $clientID, $SecurePassword
$tenantID = "<the tenant id of your subscription>"
Add-AzureRmAccount -Credential $cred -TenantId $tenantID -ServicePrincipal
投稿が遅れる可能性がありますが、別の簡単な解決策を見つけたので、他の人を助けるためにここにリストします:
Login-AzureRmAccount
を使用してAzureアカウントにログインします。Save-AzureRmContext -Path "E:\AzureProfile.json"
を使用して、コンテキストをJsonファイルに保存します。Import-AzureRmContext -Path "E:\AzureProfile.json"
を使用して、プロンプトなしでログインできます。Live IDを使用している場合、プロンプトなしでログインすることはできません。非対話的にログインすることはできません。
ログインしたら、Save-AzureRmProfile
を使用して資格情報を保存できます。これにより、ログイントークンがディスクに保存され、Select-AzureRmProfile
を使用して再度ログインできます。ただし、そのトークンは期限切れです。再度ログインします。
プロンプトがまったく表示されずにログインするには、Azure Active Directoryアカウントを作成する必要があります。
その後、このようなものを使用できます
$cred = Get-Credential
Add-AzureRmAccount -Credential $cred
資格情報オブジェクトを作成することもできるため、これを非対話的に使用できます。
PowerShell ISEを使用できます。
このスクリプトに従ってください:
$password = ConvertTo-SecureString 'Password' -AsPlainText -Force
$credential = New-Object System.Management.Automation.PSCredential ('Username', $password)
Connect-AzureRmAccount -Credential $Credential -Subscription 5a4dtert8-88bc-447c-bb20-b236terteb28e4 -Tenant 0d8trtec-5229-44ca-acc8-dbterte01b993b6
自動生成されるConnect-AzureRmAccount
Power Shell ISEを使用したスクリプト
サブスクリプションIDとテナントを$ credential変数で渡します。