2017-09-11 57 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