[Azure]基于Invoke-Parallel对Azure ARM虚拟机批量开关机

这个脚本基于Invoke-Parallel方法并行开关Azure ARM虚拟机:


Invoke-Parallel脚本下载地址和介绍请参考链接:https://gallery.technet.microsoft.com/scriptcenter/Run-Parallel-Parallel-377fd430


脚本如下:

#AzurePortalLoginUsername是Azure的Portal登录名,例如XXX@XXXX.partner.onmschina.cn
$AzurePortalLoginUsername = "XXXXXXXXXXXXX";
#AzurePortalLoginPassword是登陆密码
$AzurePortalLoginPassword = "XXXXXXXXXXXXX";
#虚拟机所在的订阅名称
$SubscriptionName = "XXXXXXXXXXXXX";

function Invoke-Parallel {...}

#定义登陆的Credential
$e1=Get-AzureRmEnvironment -Name AzureChinaCloud;
$Cred = New-Object System.Management.Automation.PSCredential($AzurePortalLoginUsername,(ConvertTo-SecureString $AzurePortalLoginPassword -AsPlainText -Force));
$AzureRMCred = Get-Credential -Credential $Cred;
#登陆
Login-AzureRmAccount -Environment $e1 -Credential $AzureRMCred;

#定义要开/关的虚拟机ResourceGroupName是虚拟机资源组&虚拟机列表,等号左侧是虚拟机所属的资源组名称,等号右侧是资源组下要开/关的虚拟机名字,如果有多台,用分号分隔
$VMs = @{
    "ResourceGroupName1" = "VM1;VM2;VM3 ....";
	"ResourceGroupName2" = "VM1;VM2;VM3 ....";
	#....
	"ResourceGroupNameN" = "VM1;VM2;VM3 ...."
};


#切换到这个订阅下
Select-AzureRmSubscription -SubscriptionName $SubscriptionName;

foreach ($ResourceGroupName in $VMs.Keys)
{
    #获取到这个ResourceGroup下要开/关机的虚拟机的名字列表
    $vmnames = @();
    foreach($vmname in $VMs[$ResourceGroupName].Split(";"))
    {
        $vmnames += $vmname;
    }

    #如果要开机,用下面这条命令,如果要关机,就把这条命令注释掉
    $vmnames | Invoke-Parallel -ImportVariables -NoCloseOnTimeout -ScriptBlock { Start-AzureRmVM -ResourceGroupName $ResourceGroupName -Name $_ }
    
    #如果要关机,把下面这条命令的#号去掉,把上面Start-AzureRmVM注释掉(前面加#号)
    #$vmnames | Invoke-Parallel -ImportVariables -NoCloseOnTimeout -ScriptBlock { Stop-AzureRmVM -ResourceGroupName $ResourceGroupName -Name $_ -Force }
}


  • 86
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值