2016-05-16 19 views
10

Tôi đã thử các lệnh sau để có trải nghiệm đăng nhập nhanh hơn nhưng mỗi khi tôi tìm thấy cửa sổ bật lên đăng nhập. Tôi thậm chí đã cố gắng sử dụng chứng chỉ ban đầu nhưng vì điều đó không chứng minh hiệu quả, cố gắng với id người thuê. Bất kỳ trợ giúp hoặc đề xuất nào về cách đăng nhập liền mạch và nhanh hơn thay vì tương tác.Cách đăng nhập mà không cần nhắc?

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

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

Login-AzureRmAccount -TenantId 754XXXXXXXXXXX5d10d8XXX 

Hoặc, có phải là tôi phải đi qua lời nhắc đăng nhập tương tác luôn. Yêu cầu con trỏ và cảm ơn trước để xem xét và thời gian.

+0

Tôi nghĩ, tôi có lý do. Sau khi đọc qua msdn, tôi thấy phần này => Phương thức đăng nhập không tương tác này chỉ hoạt động với tài khoản cơ quan hoặc trường học. Tài khoản cơ quan hoặc trường học là người dùng được quản lý bởi cơ quan hoặc trường học của bạn và được xác định trong cá thể Azure Active Directory cho cơ quan hoặc trường học của bạn. –

Trả lời

3

Nếu bạn đang sử dụng ID trực tiếp, khi đó bạn không thể đăng nhập mà không có lời nhắc. Bạn không thể đăng nhập không tương tác. Khi bạn đã đăng nhập, bạn có thể lưu thông tin đăng nhập của mình với Save-AzureRmProfile điều này sẽ lưu mã thông báo đăng nhập vào đĩa, sau đó bạn có thể sử dụng để đăng nhập lại với Select-AzureRmProfile Tuy nhiên mã thông báo đó hết hạn, vì vậy bạn cần phải đăng nhập lại.

Để đăng nhập mà không bị nhắc, bạn cần tạo Tài khoản Thư mục Họat động Azure.

Sau đó bạn có thể sử dụng một cái gì đó như thế này

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

Bạn cũng có thể xây dựng một đối tượng ủy nhiệm, vì vậy bạn có thể sử dụng này không tương tác.

13

Bạn có thể sử dụng thông số -Credential và DPAPI để đăng nhập.

Trước tiên, hãy chạy PowerShell sau đây một lần để lưu trữ mật khẩu bảo mật cho tài khoản của bạn.

Read-Host "Enter Password" -AsSecureString | ConvertTo-SecureString ` 
-AsPlainText -Force | ConvertFrom-SecureString | Out-File "C:\Password.txt" 

Sau đó, bạn có thể sử dụng tập lệnh sau để đăng nhập.

# 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 

Một cách khác sẽ sử dụng Dịch vụ chính. Trước tiên, bạn nên theo dõi the article để tạo một Dịch vụ chính

Và sau đó, sử dụng tập lệnh sau để đăng nhập.

$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

Bạn không có toàn quyền kiểm soát quyền đối với Tài khoản Thư mục Họat động Azure? (hoặc một tài khoản Live ID cho vấn đề đó) - và nó sẽ không được ít nhất một chút tốt hơn để sử dụng DPAPI để mã hóa các thông tin ở phần còn lại? Thay vì đề nghị mọi người nhập mã thông tin thô vào các tập lệnh –

+0

Cảm ơn bạn đã chỉ ra. Tôi sẽ cập nhật câu trả lời của mình. –

+0

Giải pháp chính của Dịch vụ đã làm việc cho tôi. – zapoo

6

Có thể là muộn để gửi nhưng tôi tìm thấy một giải pháp đơn giản để niêm yết nó xuống đây để giúp đỡ người khác:

  1. Đăng nhập vào tài khoản xanh với lệnh Login-AzureRmAccount.
  2. Lưu ngữ cảnh trong tệp Json bằng lệnh Save-AzureRmContext -Path "E:\AzureProfile.json".
  3. Bây giờ bạn có thể đăng nhập mà không cần nhắc bằng lệnh: Import-AzureRmContext -Path "E:\AzureProfile.json".
+0

Mọi thứ đã thay đổi: 'Save-AzureRmProfile -Force -Path". \ AzureProfile.json "' và 'Select-AzureRmProfile -Path". \ AzureProfile.json "' thay vì 'Save-AzureRmContext' và' Import-AzureRmContext', tương ứng. [https://docs.microsoft.com/en-us/powershell/module/azurerm.profile/select-azurermprofile?view=azurermps-3.8.0] – rasx

+1

@rasx Nó thực sự là một cách khác xung quanh, cách tiếp cận của bạn là cũ một (từ AzureRM PowerShell 3.8.0) và một trong câu trả lời gốc là câu trả lời mới. – Livven

Các vấn đề liên quan