2016-05-16 3 views
10

Я пробовал следующие команды, чтобы получить более быстрый опыт входа в систему, но каждый раз, когда я нахожу вход для входа. Я даже пытался использовать сертификат сначала, но так как это не помогло, пытаясь использовать идентификатор арендатора. Любая помощь или предложение о том, как иметь бесшовный и быстрый логин вместо интерактивного.Как войти без подсказки?

Login-AzureRmAccount -SubscriptionId 1238154XXXXfd-1c4121796e58 -TenantId 754XXXXXXXXXXX5d10d8XXX 

Add-AzureRmAccount -Tenant "754XXXXXXXXXXX5d10d8XXX" -SubscriptionId "1238154XXXXfd-1c4121796e58" 

Login-AzureRmAccount -TenantId 754XXXXXXXXXXX5d10d8XXX 

Или, это то, что я должен пройти через интерактивное приглашение входа всегда. Запросите указателей и заблаговременно заблаговременно за рассмотрение и время.

+0

Я думаю, у меня есть причина. После прочтения msdn я нахожу этот раздел => Этот неинтерактивный метод входа в систему работает только с учетной записью на работе или в школе. Работа или школьная учетная запись - это пользователь, который управляется вашей работой или учебным заведением, и определен в экземпляре Azure Active Directory для вашей работы или школы. –

ответ

3

Если вы используете Live ID, то вы не можете войти в систему без подсказки. Вы не можете войти в систему не интерактивно.

После того, как вы вошли в систему вы можете сохранить свои учетные данные с Save-AzureRmProfile этом сохранит маркер входа в систему на диск, который вы можете использовать, чтобы снова войти в систему с Select-AzureRmProfile Однако этот маркер действительно истекает, так что вам нужно будет снова войти в систему.

Чтобы войти в систему без запроса вообще, вам необходимо создать учетную запись Azure Active Directory.

Вы можете использовать что-то вроде этого

$cred = Get-Credential 
Add-AzureRmAccount -Credential $cred 

Вы также можете построить объект учетных данных, так что вы можете использовать эту функцию, не в интерактивном режиме.

13

Вы можете использовать параметр -Credential и DPAPI для входа в систему.

Сначала запустите следующий PowerShell один раз, чтобы сохранить защищенный пароль для своей учетной записи.

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 

Другой способ использования Принципа обслуживания. Во-первых, вы должны следовать the article, чтобы создать Принципа обслуживания

А затем для входа в систему используйте следующий скрипт.

$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 

Add-AzureRmAccount -Credential $cred -Tenant "xxxx-xxxx-xxxx-xxxx" -ServicePrincipal 
+0

У вас нет полного контроля над разрешениями для учетной записи Azure Active Directory? (или учетную запись Live ID) - и не было бы, по крайней мере, немного лучше использовать DPAPI для шифрования учетных данных в покое? Вместо того, чтобы предлагать людям жесткий код необработанных учетных данных в скрипты –

+0

Спасибо за указание. Я уточню свой ответ. –

+0

Решение Service Principal работало для меня. – zapoo

6

Может быть поздно пост, но я нашел еще одно простое решение так перечислить его здесь, чтобы помочь другим:

  1. Вход в лазурной счет с командой Login-AzureRmAccount.
  2. Сохраните контекст в файле Json, используя команду Save-AzureRmContext -Path "E:\AzureProfile.json".
  3. Теперь вы можете войти без приглашения с помощью команды: Import-AzureRmContext -Path "E:\AzureProfile.json".
+0

Все изменилось: 'Save-AzureRmProfile -Force -Path". \ AzureProfile.json "и' Select-AzureRmProfile -Path ". \ AzureProfile.json" 'вместо' Save-AzureRmContext' и 'Import-AzureRmContext', соответственно. [https://docs.microsoft.com/en-us/powershell/module/azurerm.profile/select-azurermprofile?view=azurermps-3.8.0] – rasx

+1

@rasx На самом деле, наоборот, ваш подход - это старый один (от AzureRM PowerShell 3.8.0), а другой в оригинальном ответе - новый. – Livven

+0

хороший, это работает для меня. – ossentoo

Смежные вопросы