2015-11-06 43 views
1

我想使用Azure PowerShell自動設置和更新Azure虛擬機。我在Add和Set中都有成功,但不幸的是(顯然)Add會給出錯誤,如果端點已經存在,並且Set給出錯誤(如果端點不存在)。使用Azure PowerShell添加或更新(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 

更改附加AzureEndpoint設置-AzureEndpoint使腳本在現有的端點方案工作。

我不想保留2個腳本,並且總是知道要運行哪一個,只是因爲此Add-vs Set-差異,而是我想將2個執行邏輯合併爲一個。我想我需要一些條件邏輯,並且能夠查詢端點是否存在。不幸的是我想不出它如何查詢是否存在端點

回答

0

是的,你可以使用條件邏輯,並確定端點是否已經存在使用Get-AzureEndpoint的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 
} 
+0

感謝。我不清楚腳本在檢查存在時是否指端點名稱(我可能有多個端點) –

+0

您是對的 - 我忘記了包含名稱(更新了我的答案)。 –