共用方式為


如何使用 PowerShell 設定靜態內部私人 IP 位址 (傳統)

在大部分情況下,您不需要為虛擬機指定靜態內部IP位址。 虛擬網路中的 VM 會自動從您指定的範圍接收內部 IP 位址。 但在某些情況下,指定特定 VM 的靜態 IP 位址很合理。 例如,如果您的 VM 即將執行 DNS,或將會是域控制器。 靜態內部IP位址會與VM保持一致,即使處於停止/取消布建狀態。

這很重要

Azure 針對建立和使用資源方面,有二種不同的的部署模型:Resource Manager 和傳統。 本文涵蓋之內容包括使用傳統部署模型。 Microsoft建議大部分的新部署使用 Resource Manager 部署模型

安裝 Azure PowerShell 服務管理模組

執行下列命令之前,請確定計算機上已安裝 Azure PowerShell 服務管理模組。 如需 Azure PowerShell 服務管理模組的版本歷程記錄,請參閱 PowerShell 資源庫中的 Azure 模組

如何確認特定IP位址是否可用

若要確認IP位址 10.0.0.0.7 是否可在名為 testVnet的 vnet 中使用,請執行下列 PowerShell 命令,並確認 isAvailable 的值。

Test-AzureStaticVNetIP –VNetName TestVNet –IPAddress 10.0.0.7 

IsAvailable          : True
AvailableAddresses   : {}
OperationDescription : Test-AzureStaticVNetIP
OperationId          : fd3097e1-5f4b-9cac-8afa-bba1e3492609
OperationStatus      : Succeeded

備註

如果您想要在安全環境中測試上述命令,請遵循 建立虛擬網路(傳統) 中的指導方針,建立名為 TestVnet 的 vnet,並確保其使用 10.0.0.0/8 位址空間。

如何在建立 VM 時指定靜態內部 IP

下列 PowerShell 腳本會建立名為 TestService的新雲端服務,然後從 Azure 擷取映射,然後使用擷取的映射,在新的雲端服務中建立名為 TestVM 的 VM、將 VM 設定為子網 Subnet-1,並將 10.0.0.7 設定為 VM 的靜態內部 IP:

New-AzureService -ServiceName TestService -Location "Central US"
$image = Get-AzureVMImage|?{$_.ImageName -like "*RightImage-Windows-2012R2-x64*"}
New-AzureVMConfig -Name TestVM -InstanceSize Small -ImageName $image.ImageName `
| Add-AzureProvisioningConfig -Windows -AdminUsername adminuser -Password MyP@ssw0rd!! `
| Set-AzureSubnet –SubnetNames Subnet-1 `
| Set-AzureStaticVNetIP -IPAddress 10.0.0.7 `
| New-AzureVM -ServiceName "TestService" –VNetName TestVnet

如何擷取 VM 的靜態內部IP資訊

若要檢視使用上述腳本建立之 VM 的靜態內部 IP 資訊,請執行下列 PowerShell 命令,並觀察 IpAddress的值:

Get-AzureVM -Name TestVM -ServiceName TestService

DeploymentName              : TestService
Name                        : TestVM
Label                       : 
VM                          : Microsoft.WindowsAzure.Commands.ServiceManagement.Model.PersistentVM
InstanceStatus              : Provisioning
IpAddress                   : 10.0.0.7
InstanceStateDetails        : Windows is preparing your computer for first use...
PowerState                  : Started
InstanceErrorCode           : 
InstanceFaultDomain         : 0
InstanceName                : TestVM
InstanceUpgradeDomain       : 0
InstanceSize                : Small
HostName                    : rsR2-797
AvailabilitySetName         : 
DNSName                     : http://testservice000.cloudapp.net/
Status                      : Provisioning
GuestAgentStatus            : Microsoft.WindowsAzure.Commands.ServiceManagement.Model.GuestAgentStatus
ResourceExtensionStatusList : {Microsoft.Compute.BGInfo}
PublicIPAddress             : 
PublicIPName                : 
NetworkInterfaces           : {}
ServiceName                 : TestService
OperationDescription        : Get-AzureVM
OperationId                 : 34c1560a62f0901ab75cde4fed8e8bd1
OperationStatus             : OK

如何從 VM 移除靜態內部 IP

若要移除上述腳本中新增至 VM 的靜態內部 IP,請執行下列 PowerShell 命令:

Get-AzureVM -ServiceName TestService -Name TestVM `
| Remove-AzureStaticVNetIP `
| Update-AzureVM

如何將靜態內部IP新增至現有的 VM

若要將靜態內部IP新增至使用上述腳本建立的 VM,請執行下列命令:

Get-AzureVM -ServiceName TestService000 -Name TestVM `
| Set-AzureStaticVNetIP -IPAddress 10.10.0.7 `
| Update-AzureVM

後續步驟

保留的IP

Instance-Level 公用IP(ILPIP)

保留的IP REST API