PowerShell 是管理 Azure 的最好方式之一,通过使用 PowerShell 脚本可以把很多的工作自动化。比如对于 Azure 上的虚拟机,可以设置定时关机操作,并在适当的时间把它开机,这样就能减少虚拟机的运行时间,同时也能为节能减排做出贡献。

PowerShell 的 Azure 模块中为我们提供了不同的 API, 早期的 API 叫 ASM(Azure Service Manager)。随着 Azure 的发展变化,又出现了一套新的 API 叫 ARM(Azure Resource Management)。在这里,我们仅介绍如何使用 ARM中 的 API 实现 Azure 上的自动登录并操作资源。

使用 PowerShell 自动登录 Azure 的大体思路是这样的:首先使用登录命令在交互式界面下进行登录操作,然后使用 Save-AzureRmProfile 命令把登录认证信息保存到本地的文件中。以后在脚本中设置自动登录时,只需使用这个本地文件就可以了。

下面来看看具体的操作过程。

一、使用 Login-AzureRmAccount 命令登录

在登录前需要先检查一下当前的登录状态,可以通过查询 resource group 来进行间接检查。

执行命令:Get-AzureRmResourceGroup

如果当前没有登录,则会查询失败并提示我们需要登录。

执行命令:Login-AzureRmAccount

通过弹出的对话框登录:

登录成功后会显示账户信息:

然后再执行一次 Get-AzureRmResourceGroup 命令。

好了,之前的错误信息已经没有了,输出的结果为 Resource Group 的列表。

到这里,就已经登录成功了。


二、将登录信息保存到文件中

Save-AzureRmProfile 命令能够把当前 session 的登录信息保存到文件中,这样其它的 session 也可以使用这个文件进行自动登录了。

执行命令:Save-AzureRmProfile -Path “d:\test\myprofile.json”

myprofile.json 是一个普通的文本文件,文件中只有认证信息被加密了,其它的信息都是可读的。

注意,一定要保护好生成的 myprofile.json 文件,如果泄露出去和别人拿到你的账户密码是一样的。


三、自动登录 Azure

通过 Select-AzureRmProfile 命令,可以从文件中载入用户的登录信息并且设置 Azure 的执行上下文。

执行命令:Select-AzureRmProfile –Path “d:\test\myprofile.json”

其执行结果和运行 Login-AzureRmAccount 命令是一样的:


一个自动重启虚拟机的例子

以下是重启 Azure 上的一台虚机的完整例子:

$profile = "your profile path"
$resourceGroupName = "your resource group name"
$vmName = "your vm name"
$logfile = "log file name"

# 自定义日志方法

Function LogWrite
{
Param ([string]$logstring) $now = Get-Date
$logcontent = $now.ToShortDateString() + " " + $now.ToShortTimeString() + ": " + $logstring Add-Content $logfile -value $logcontent
} LogWrite("before Select-AzureRmProfile.")
Select-AzureRmProfile -Path $profile
LogWrite("after Select-AzureRmProfile.") LogWrite("before Restart-AzureRmVM.")
Restart-AzureRmVM -ResourceGroupName $resourceGroupName -Name $vmName
LogWrite("after Restart-AzureRmVM.")

好了,一个简单的自动化重启工作就完成了!

使用 PowerShell 自动登录Azure的更多相关文章

  1. Azure 基础:用 PowerShell 自动登录

    PowerShell 是管理 Azure 的最好方式,因为我们可以使用脚本把很多的工作自动化.比如把 Azure 上的虚拟机关机,并在适当的时间把它开机,这样我们就能节省一些开支,当然我们同时也为减少 ...

  2. 使用PublishSetting快速在Powershell中登录Azure

    使用Powershell 来管理Azure资源实在是一大快事. 在使用power script之前, 需要先连接到Azure上,其中使用导入PublishSetting文件是最方便的方法. 步骤: 1 ...

  3. Azure PowerShell (12) 通过Azure PowerShell创建SSH登录的Linux VM

    <Windows Azure Platform 系列文章目录> 本章将介绍如何使用Azure PowerShell,创建SSH登录的Linux VM 前提要求: 1.安装Azure Pow ...

  4. CentOS 7.2 PowerShell下安装Azure Module

    目前Linux版本的PowerShell还是Alpha版本,所以很多功能不能使用. 比如通过Powershell命令:install-module AzureRM在线安装Azure的Module.但我 ...

  5. Linux开机自动登录(文本模式)

    • Linux系统启动登录过程 以RedHat/CentOS为例,Linux系统Level3模式下从启动到登录的整个过程大致如下: 1> 加载BIOS信息:包含了CPU/显卡/内存/硬盘/网卡等 ...

  6. expect实现自动登录

    自动登录主机(ssh) 建脚本item2login.sh,包含如下内容 #!/usr/bin/expect set timeout 30 spawn ssh -p [lindex $argv 0] [ ...

  7. cookie自动登录的实现

         cookie自动登录是指把用户登录的信息按期限(自定)保存在客户端,当用户请求登录时判断客户端用没有cookie对象,有的话填充值,否则登录界面的输入框为空,不进行填充.      登录界面 ...

  8. windows 2003自动登录的具体步骤

    在win2003系统中,使用最多的可能就是远程操作了,关于远程操作的那些事很多用户还是有些迷茫的.如果win2003系统远程重启后,要重新登录系统十分的麻烦,如何才能实现重启后的自动登录呢?让高手告诉 ...

  9. 如何设置phpMyAdmin自动登录和取消自动登录

    如何设置phpMyAdmin自动登录? 首先在根目录找到config.sample.inc.php复制一份文件名改为config.inc.php(如果已经存在 config.inc.php 文件,则直 ...

随机推荐

  1. CSS布局技巧 -- 内凹圆角

    圆角,相信每一个了解CSS属性的都知道,通过border-radius实现圆角(外凸圆角),但是如果需要实现内凹圆角怎么办呢?比如四角内凹的元素,比如如下所示这样的内凹圆角 对于这种问题,很多人的反应 ...

  2. README

    README 在用户中心设置简体中文. 在版本库找到你的工程点击进入. 在版本库地址里复制 http 开头的地址. 在本地进入要clone的文件夹,用git clone(如果是空的仓库直接clone, ...

  3. Mysql监控、优化

    一.查询语句的生命周期 1.MYSQL服务器监听3306端口 2.验证访问用户 3.创建MySQL线程 4.检查内存(Qcache),当查询命中缓存,MYSQL立刻返回结果,跳过解析.优化.执行阶段. ...

  4. iOS常用公共方法

      iOS常用公共方法 字数2917 阅读3070 评论45 喜欢236 1. 获取磁盘总空间大小 //磁盘总空间 + (CGFloat)diskOfAllSizeMBytes{ CGFloat si ...

  5. HTML5中新添加事件

    HTML5中新添加了很多事件,但是由于他们的兼容问题不是很理想,应用实战性不是太强,所以在这里基本省略,咱们只分享应用广泛兼容不错的事件,日后随着兼容情况提升以后再陆续添加分享.今天为大家介绍的事件主 ...

  6. HTTP中的POST、GET区别

    Http定义了与服务器交互的不同方法,最基本的方法有4种,分别是GET,POST,PUT,DELETE.URL全称是资源描述符,我们可以这样认为:一个URL地址,它用于描述一个网络上的资源,而HTTP ...

  7. SVN版本控制系统

    SVN 版本控制系统 1.SVN作用 防止代码丢失 : 因为没有哪个项目能够一次性开发完成 代码版本回退 : 你可以在开发过程中找到以前上传到服务器上面的所有版本 多人代码整合 : 公司中多个人开发同 ...

  8. log4j向oracle中插入一条系统当前时间的sql语句

    配置log4j,要向oracle插入一条系统当前时间的sql语句,按网上查找的总是出现各种各样的报错,最后总结出的写法是: ### shezhi### log4j.rootLogger = debug ...

  9. Windows 10开机的秘密在哪里

    如何查看开机速度 查看开机速度,一定要安装所谓的第三方安全软件么?老子就是不喜欢被安全! Windows自带的事件查看器中记录了系统的一举一动,何必需要别人来监视? 在运行(WinKey+R)中输入e ...

  10. XAF 官方问题笔记

    1.How to print report direct, and print preview via an simple action? 如何通过一个按钮直接打印报表或者打印预览报表 https:/ ...