PowerShell批量添加VM端点

我们可以通过PowerShell脚本批量添加VM端点。请您参考以下方案。

准备工作 – PowerShell连接China Azure

1. 从官网下载页面,下载并安装Windows Azure PowerShell: http://www.windowsazure.cn/zh-cn/downloads/#cmd-line-tools

2. 安装完毕后以管理员身份运行,右键点击PowerShell图标然后选择以管理员身份运行;

3. 执行命令Get-AzurePublishSettingsFile -Environment "AzureChinaCloud",通过打开的页面下载您的Windows Azure Subscription的发布配置文件;

4. 在PowerShell中执行Import-AzurePublishSettingsFile “发布配置文件本地存放路径”;

方案一:批量添加自定义的端点

备注:该例子针对一个虚拟机,添加了三个端口:


端口名称


协议


公用端口


私有端口


MyPort1


tcp


5001


5001


MyPort2


tcp


5002


5002


MyPort3


udp


5003


5003

该例子中,云服务名称与虚拟机名称均为:JohnsonLinux。如果需要添加更多的端口,那么可以按照相应格式,将端口配置添加到$newVmEndpoints。格式为:(“端口名称”,”协议”,”公用端口”,”私有端口”)

$serviceName = "JohnsonLinux"
$name = "JohnsonLinux"

$newVmEndpoints = ("MyPort1","tcp",5001,5001) ,("MyPort2","tcp",5002,5002) ,("MyPort3","udp",5003,5003)

$myVm = Get-AzureVM -ServiceName $serviceName -Name $name

foreach ($endpointConfig in $newVmEndpoints)
{
$myVm | Add-AzureEndpoint -Name $endpointConfig[0] -Protocol $endpointConfig[1] -PublicPort $endpointConfig[2] -LocalPort $endpointConfig[3]
}

$myVm | Update-AzureVM

方案二:批量添加某一范围的端点

下面是脚本中的一些参数说明,请您相应的替换。

$serviceName – VM所属的云服务名称

$name – VM名称

$portFrom – 起始端口号

$portTo – 终止端口号

$protocal – 协议名称

下面的例子中:

1. 我们添加了1-150号TCP端点,共150个。

2. 公共端口和私有端口的值一致。

3. 端点的名称的格式为:协议名称+端口号。

4. 如果已经添加了某一个端口,则该脚本会略过该端口。

5. 同时,我们测试的过程中发现,目前我们最多只能开放150个端口。

$serviceName = "JohnsonLinux"
$name = "JohnsonLinux"
$protocol = "tcp"
$portFrom = 1
$portTo = 150

$myVm = Get-AzureVM -ServiceName $serviceName -Name $name 

$existingPublicPorts = New-Object System.Collections.ArrayList
$existingLocalPorts = New-Object System.Collections.ArrayList

foreach($endpoint in $myVm | Get-AzureEndpoint)
{
    if($protocal.Equals($endpoint.Protocol))
    {
        $existingPublicPorts.Add($endpoint.Port)
        $existingLocalPorts.Add($endpoint.LocalPort)
    }
}

for($index = $portFrom; $index -le $portTo; $index++)
{
    if(!$existingPublicPorts.Contains($index) -and !$existingLocalPorts.Contains($index))
    {
        $portName = $protocol + $index
        $myVm | Add-AzureEndpoint -Name $portName -Protocol $protocol -PublicPort $index -LocalPort $index
    }

}

$myVm | Update-AzureVM

下面是运行该脚本以后的部分结果截图:

PowerShell批量添加VM端点

时间: 2024-10-05 18:44:45

PowerShell批量添加VM端点的相关文章

使用powershell批量添加Qt的文件(生成pro)

想使用QtCreator作为编辑器编辑keil或者IAR的工程,需要生成.pro文件,于是使用powershell批量处理. 源码如下: $incPath = dir -filter "*.h" -Recurse $headList="","" $pathList = "","" foreach($fpath in $incPath) { $headList+=$fpath.DirectoryName +

【AD】AD域Powershell批量添加用户组组织单元20160208

http://bbs.51cto.com/thread-1315948-1.html在上一篇文章中提到用csvde批量添加User,ou,Group,不过用csvde有几个缺点,无法添加用户密码,也无法将用户设置成不可删除对象.下面介绍下用强大的powershell如何方便的做同样的事情. 经测试,记事本必须是unicode模式,似乎无法使用.csv导入,我测试了几次,反而这样最方便.但不方便用excel编辑了,不知有人是否解决.按照惯例,先导入OU.Out.txt内资料很简单.这里的path就

PowerShell 批量添加域用户(Windows 2012 R2)

PowerShell版本 1. 实施的前提请准备好相关域用户信息,一般都是Excel表,格式如下 注:为了方便导入,我将PowerShell相关名与表格中值一一对应. Group组织单元需要提前建立出来,也可以用PowerShell命令 用户密码我是用函数来做的,数字+字母最好,但是有些字母数字,如数字0和小写字母o和大写字母O,给用户及运维工作人员带来不便,固我采用了随机数字+固定字母来做. 2. 将表格另存为后缀名.CSV格式文件(该文件会以逗号形式隔开每个字符串值),若表中有中文,需要我们

PowerShell批量配置Azure VM端点

我们可以通过PowerShell命令:Add-AzureEndpoint来向虚拟机添加端点. 请参考以下脚本,批量添加虚拟机端点: 备注:该例子针对一个虚拟机,添加了三个端口: 端口名称 协议 公用端口 私有端口 MyPort1 tcp 5001 5001 MyPort2 tcp 5002 5002 MyPort3 udp 5003 5003 该例子中,云服务名称与虚拟机名称均为:JohnsonLinux.如果需要添加更多的端口,那么可以按照相应格式,将端口配置添加到$newVmEndpoint

windows azure使用powershell批量创建虚拟机

这里向大家介绍下如何使用powershell批量创建vm虚拟机,本博文中,我打算用powershell批量创建100台VM. 首先,从官网下载页面,下载并安装Windows Azure PowerShell:http://www.windowsazure.cn/zh-cn/downloads/#cmd-line-tools 安装完毕后以管理员身份运行,右键点击PowerShell图标然后选择以管理员身份运行执行命令Get-AzurePublishSettingsFile-Environment

PowerShell批量启动/关闭Azure VM

备注:以下例子中出现的JohnsonWeb, JohnsonVm均是虚拟机的名称.在运行Powershell脚本之前,请导入您的订阅文件. 根据条件启动/关闭虚拟机,例如根据虚拟机名称,批量启动/关闭 启动虚拟机 $vmNames = New-Object System.Collections.ArrayList $vmNames.Add("JohnsonWeb") $vmNames.Add("JohnsonVm") foreach($vm in Get-Azure

Powershell通过变量、数组批量添加保留地址

我们上一篇介绍了通过powershell简单管理dhcp作用域,今天介绍一下使用powershell定义变量及数组进行批量添加DHCP作用域下的保留IP地址信息,具体见下: 我们首先要使用get-content file path 来读取本地的文件,然后使用变量来获取本地文件.读取本地文件内容后,通过foreach循环来执行每一行的数据,每一行会定义多个数据,所有又需要使用数组来完成,数组不管是上面脚本程序都是从[0]开始的,然后配置单挑执行的命令来完成操作. 首先是定义本地的文本数据信息 12

powershell小脚本--批量添加用户属性----导出登录时间

需求1:某公司所有员工少了MAIL属性,需要批量添加.例如,用户chenyy  添加邮件属性[email protected] 先导出(只导出名字)备用: Get-ADUser -Filter * -Properties * | select name | Export-Csv c:\test.csv 用where条件可以过滤系统账号 Get-ADUser -Filter * -Properties * |where {$_.UserPrincipalName -ne $null} | sele

Lync Server 2010批量添加联系人并同步联系人

最近一直帮助朋友整理Lync Server 2010,总是听他抱怨说微软的Lync不能实现组织结构等方面的联系人列表,其实也不完全没办法实现,早在OCS的年代,OCS利用Restkit tool工具进行添加联系人列表,而到了Lync的时代虽然Restkit Tool工具还在,但是已然无法利用之前的方式进行批量添加联系人了,在网上有人表示利用LyncAddContacts.vbs这个工具进行批量添加,但是所有的文章只是把国外这个作者的写的东西照抄过来并且翻译一下就成为原创发布到网络上,本人觉得现在