2017-09-11 53 views
0

我正在尋找一個強制用戶使用特定圖像的選項,我想修改下面的代碼來使用HuB圖像創建Azure資源策略來強制用戶?

。下面是我想修改強制執行的窗戶樞紐

"if": { 
    "allOf": [ 
    { 
     "field": "type", 
     "in": [ "Microsoft.Compute/virtualMachines", "Microsoft.Compute/VirtualMachineScaleSets" ] 
    }, 
    { 
     "field": "Microsoft.Compute/licenseType", 
     "exists": Windows_Server 
    } 
    ] 
}, 
"then": { 
    "effect": "deny" 
} 

}}

回答

0

如果我的理解是正確的,你可以先找到集線器圖像的SKU代碼。

對於Windows Server:

PS C:\Program Files\> Get-AzureRmVMImagesku -Location westus -PublisherName MicrosoftWindowsServer -Offer WindowsServer-Hub|select Skus 

Skus 
---- 
2008-R2-SP1-HUB 
2012-Datacenter-HUB 
2012-R2-Datacenter-HUB 
2016-Datacenter-HUB 

對於Windows客戶端:這個請參考本bloglink

PS C:\Program Files> Get-AzureRMVMImageSku -Location "West US" -Publisher "MicrosoftWindowsServer" -Offer "Windows-HUB"|select Skus 

Skus 
---- 
Windows-10-HUB 

更多信息。

根據official document。也許你可以如下修改政策:

{ 
    "if":{ 
    { 
    "anyOf": [ 
     { 
     "field": "Microsoft.Compute/imageSku", 
     "like": "2016-Datacenter-HUB*" 
     }, 
     { 
     "field": "Microsoft.Compute/imageSku", 
     "like": "Windows-10-HUB*" 
     }, 
     { 
     ..... 
     } 
    ] 
    } 
    }, 
"then": { 
     "effect": "deny" 
    } 
} 
+0

非常感謝你,我想用「場」:「Microsoft.Compute/LICENSETYPE」, 「含有」:Windows_Server」我相信你的做法是多少 – Techie

+0

$ PolicyAssignmentName =「LimitVMHuBTest」 $ RG = Get-AzureRmResourceGroup -Name「AzurePolicyTest」 $ Scope =「/subscriptions/$($Sub.Subscription.SubscriptionId)/resourceGroups/$($RG.ResourceGroupName )「拋出一個錯誤,希望我已經寫好範圍正確? – Techie

+0

當我試圖分配策略我得到下面的錯誤,New-AzureRmPolicyAssignment -Name $ PolicyAssignmentName -PolicyDefinition $ PolicyDefinition -Scope $ Scope New-AzureRmPolicyAssignment:管道已停止。 在線:1 char:1 + New-AzureRmPolicyAssignment -Name $ PolicyAssignmentName -PolicyDefini ... New-AzureRmPolicyAssignment:SubscriptionNotFound:無法找到訂閱'resourceGroups'。 – Techie