自动登录Azure powershell

时间:2014-04-24 11:24:11

标签: powershell azure azure-powershell

每次打开azure powershell窗口都可以自动登录吗?

即。每次打开Azure命令窗口时,都会运行下面给出的命令。

Get-AzurePublishSettingsFile(本地计算机中的路径)

甚至 添加-AzureAccount

6 个答案:

答案 0 :(得分:9)

你实际上可以做到。请遵循以下流程:

在64位操作系统或“C:\ Program Files \”的“C:\ Program Files(x86)\ Microsoft SDKs \ Azure \ PowerShell \ ServiceManagement \ Azure \ Services \ ShortcutStartup.ps1”中打开Azure PowerShell初始化文件适用于32位操作系统的Microsoft SDK \ Azure \ PowerShell \ ServiceManagement \ Azure \ Services \ ShortcutStartup.ps1。

在语句$VerbosePreference="Continue"

之后添加以下代码
$username = "<username>"
$password = "<password>"
$secpasswd = ConvertTo-SecureString $password -AsPlainText -Force
$cred = New-Object System.Management.Automation.PSCredential ($userName, $secpasswd)
Add-AzureAccount -Credential $cred

那应该为你自动登录

@Update:对于Azure ARM模式,命令为Login-AzureRMAccount -Credential $cred。但这可能不适用于Microsoft帐户。

答案 1 :(得分:3)

使用Import-AzurePublishSettingsFile后,其中的数据将保存在用户配置文件中的订阅数据文件中(默认位置为:%userprofile%\ AppData \ Roaming \ Windows Azure Powershell \ WindowsAzureProfile.xml)。它还使用来自设置文件的私钥获取证书并将其保存到计算机的证书存储中,以便订阅数据文件仅包含证书的指纹。然后,即使跨会话也使用该订阅数据文件,这样您就不必继续导入。使用-SubscriptionDataFile参数,您可以根据需要将文件实际写入其他位置。

请注意,这也意味着任何可以访问您的计算机并打开PowerShell窗口的人都可以使用您的cmdlet来影响以这种方式导入的任何/所有订阅。

这里需要注意的一件事是,如果您保留发布设置文件,则会有一个文件,其中包含管理证书的私钥的完整副本。如果该文件是在您没有意识到的情况下从您那里获取的,那么他们将需要他们所需要的所有可能对您的订阅造成不可挽回的损害。我建议在将证书加载到计算机的证书存储区后,保留SubscriptionDataFile的副本。然后,您可以使用Set-AzureSubscription并指向订阅数据文件,以便在订阅因某些原因被删除时提取订阅。

如果您使用Add-AzureAccount,一旦您登录,它也会在同一个文件中存储几乎相同的数据;但是,它正在跟踪Azure AD中的令牌。这意味着最终令牌将过期,无论如何您都必须再次登录。目前使用Add-AzureAccount仅适用于交互式脚本,因为在PowerShell中没有一种很好的方法来存储或传递我所知道的凭据。

因此,如果您使用导入发布设置文件,则除非您已执行remove-azuresubscription或已删除订阅数据文件,否则不必继续导入。如果您使用PowerShell 3,除非您已关闭自动加载,否则应自动为您加载Azure模块。

答案 2 :(得分:3)

我相信您要求的是从Powershell对Azure进行身份验证,而无需提供您的用户名和密码 - 这是您的服务管理员凭据。

这样做的一种方法是创建所谓的服务主体。此概念是对Azure进行身份验证,而不是作为服务管理员进行身份验证 - 这需要您输入凭据,但需要输入具有相同权限的服务帐户。

Here就是这样做的。

答案 3 :(得分:1)

将这些行添加到您的Powershell配置文件( C:\ Windows \ System32 \ WindowsPowerShell \ v1.0 \ profile.ps1

Import-Module azure;
Get-AzurePublishSettingsFile YourPath
Add-AzureAccount YourAccount

答案 4 :(得分:0)

请注意,使用版本4.4.0启动,您可以执行以下操作:

Enable-AzureRmContextAutosave

并且您的凭据将自动在会话中保留。

答案 5 :(得分:0)

您可以通过设置PowerShell配置文件自动登录Azure。

您可以在配置文件中包含所需的任何命令,当您启动PowerShell时,所有这些命令都会自动运行并为您做好准备。

设置PowerShell配置文件并导入Azure模块:

  1. 要导入Azure模块,请从此处安装Powershell SDK - https://www.microsoft.com/web/handlers/webpi.ashx/getinstaller/WindowsAzurePowershellGet.3f.3f.3fnew.appids

  2. 以管理员模式打开PowerShell并在cmd下运行以检查您是否已设置配置文件

      
        

    test-path $ profile

      
    i.  If the O/P is False, you don’t have a profile. Go to step 3
    ii. If the O/P is True, you already have a profile setup. Go to step 4
    
  3. 在同一PowerShell窗口中,请按照这些cmds

    进行操作
      
        

    New-item -type file -force $ profile

             

    记事本$个人资料

      
    i. In the notepad, type 
    
        >> Import-Module "C:\Program Files (x86)\WindowsPowerShell\Modules\AzureRM\5.6.0\AzureRM.psm1"  (Note: this path might change in future release, verify before you put in)
        >> Login-AzureRmAccount -verbose
    
    ii. Save and close the notepad
    
  4. 在同一PowerShell窗口中,请按照这些cmds

    进行操作
      
        

    记事本$个人资料

      
    i. In the notepad, type 
    
       >> Import-Module "C:\Program Files (x86)\Microsoft\SDKs\Azure\PowerShell\ServiceManagement\Azure\Azure.psd1"
       >> Login-AzureRmAccount -verbose
    
    ii. Save and close the notepad
    
  5. 在Login-AzureRmAccount

    之后,您可以随意在配置文件中添加任何命令

    希望这有帮助!