我们都知道Azure中国的用户名超长,每次运行脚本登录时都特别心塞,那有没有更方便和安全的验证方式呢?
本篇文章我们来探索一下使用PowerShell登录Azure的方式
一、
当然是直接使用原始命令与Azure登录界面交互来登录了
#Azure验证界面登录
Login-AzureRmAccount -EnvironmentName AzureChinaCloud
二、
使用Windows凭据输入界面登录
这种方式可以预定义用户名,只需要在弹出窗口输入密码就可以登录了
#Windows凭据验证界面登录
Login-AzureRmAccount -EnvironmentName AzureChinaCloud -Credential `
$(Get-Credential -UserName admin@xxx.partner.onmschina.cn -Message Login_AzureChinaCloud)
三、
不需要界面交互,我们可以预先将密码加密保存在文件中,直接从文件载入,既可以达到免输入登录,又能保证密码安全。
#从加密文件载入密码登录
$pwd = Get-Content $home\secretfile.txt | ConvertTo-SecureString
$cred = New-Object System.Management.Automation.PSCredential("admin@xxx.partner.onmschina.cn",$pwd)
Login-AzureRmAccount -EnvironmentName AzureChinaCloud -Credential $cred
加密密码保存到文件
#加密
#定义加密文件路径
$secretfile = "$home\secretfile.txt"
#定义加密内容(密码)
$pwd = "az.trig.c0m"
#加密并将内容放入文件中
ConvertTo-SecureString -String $pwd -AsPlainText -Force | ConvertFrom-SecureString | Out-File -FilePath $secretfile -Encoding unicode
同样可以从加密文件中获得解密的明文密码,但解密过程只能在原加密计算机操作才能成功。
#解密
#从加密文件载入密码
$pwd = Get-Content $home\secretfile.txt | ConvertTo-SecureString
#转换成明文
[Runtime.InteropServices.Marshal]::PtrToStringAuto([Runtime.InteropServices.Marshal]::SecureStringToBSTR($pwd))