PowerShell大量新增VM端點

來源:互聯網
上載者:User

標籤:style   blog   http   color   strong   檔案   io   2014   

我們可以通過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 $nameforeach ($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.ArrayListforeach($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

 

下面是運行該指令碼以後的部分結果:

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.