我想使用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个执行逻辑合并为一个。我想我需要一些条件逻辑,并能够查询端点是否存在。不幸的是我无法弄清楚如何查询端点是否存在
答案 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
}