使用Azure PowerShell添加或更新(设置)端点

时间:2015-11-06 11:14:31

标签: powershell azure

我想使用Azure PowerShell自动设置和偶尔更新我的Azure VM。我在Add和Set方面都取得了成功,但不幸的是(显然)如果端点已经存在则Add给出错误,如果端点不存在则Set给出错误。

我写了以下脚本:

$acl = New-AzureAclConfig

Set-AzureAclConfig –AddRule –ACL $acl –Order 100 –Action Allow `
    –RemoteSubnet "xxx.1.1.0/24" –Description "Permit"

Get-AzureVM –ServiceName myservice –Name myvm | 
    Add-AzureEndpoint –Name SqlEndpoint –Protocol tcp –LocalPort 1433 `
    –PublicPort 1433 –ACL $acl | 
    Update-AzureVM

将Add-AzureEndpoint更改为Set-AzureEndpoint使脚本在现有端点方案中工作。

我不想维护2个脚本,并且总是知道运行哪个脚本只是因为这个Add-vs Set-difference,而是我想将2个执行逻辑合并为一个。我想我需要一些条件逻辑,并能够查询端点是否存在。不幸的是我无法弄清楚如何查询端点是否存在

1 个答案:

答案 0 :(得分:0)

是的,您可以使用条件逻辑并使用{​​{3}} cmdlet确定端点是否已存在:

$vm = Get-AzureVM –ServiceName myservice –Name myvm
if ($vm | Get-AzureEndpoint -Name SqlEndpoint)
{
    $vm |
        Set-AzureEndpoint –Name SqlEndpoint –Protocol tcp –LocalPort 1433 –PublicPort 1433 –ACL $acl | 
        Update-AzureVM
}
else
{
    $vm |
        Add-AzureEndpoint –Name SqlEndpoint –Protocol tcp –LocalPort 1433 –PublicPort 1433 –ACL $acl | 
        Update-AzureVM
}