Help Needed - New-AzPolicyDefinition Creation of Azure policy definition through PowerShell

%3CLINGO-SUB%20id%3D%22lingo-sub-1540029%22%20slang%3D%22en-US%22%3EHelp%20Needed%20-%20New-AzPolicyDefinition%20Creation%20of%20Azure%20policy%20definition%20through%20PowerShell%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-1540029%22%20slang%3D%22en-US%22%3E%3CP%3E%26nbsp%3B%3C%2FP%3E%3CPRE%20class%3D%22lia-code-sample%20language-powershell%22%3E%3CCODE%3E%24Policy%3D%0A'%7B%0A%20%20%22properties%22%3A%20%7B%0A%20%20%20%20%22displayName%22%3A%20%22Disable-IP-Forwarding%22%2C%0A%20%20%20%20%22policyType%22%3A%20%22Custom%22%2C%0A%20%20%20%20%22mode%22%3A%20%22All%22%2C%0A%20%20%20%20%22description%22%3A%20%22Disable-IP-Forwarding-Test.%22%2C%0A%20%20%20%20%22metadata%22%3A%20%7B%0A%20%20%20%20%20%20%22version%22%3A%20%221.0.2%22%2C%0A%20%20%20%20%20%20%22category%22%3A%20%22Security%20Center%22%0A%20%20%20%20%7D%2C%0A%20%20%20%20%22parameters%22%3A%20%7B%0A%20%20%20%20%20%20%22effect%22%3A%20%7B%0A%20%20%20%20%20%20%20%20%22type%22%3A%20%22String%22%2C%0A%20%20%20%20%20%20%20%20%22metadata%22%3A%20%7B%0A%20%20%20%20%20%20%20%20%20%20%22displayName%22%3A%20%22Effect%22%2C%0A%20%20%20%20%20%20%20%20%20%20%22description%22%3A%20%22Enable%20or%20disable%20the%20execution%20of%20the%20policy%22%0A%20%20%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%20%20%22allowedValues%22%3A%20%5B%0A%20%20%20%20%20%20%20%20%20%20%22AuditIfNotExists%22%2C%0A%20%20%20%20%20%20%20%20%20%20%22Disabled%22%0A%20%20%20%20%20%20%20%20%5D%2C%0A%20%20%20%20%20%20%20%20%22defaultValue%22%3A%20%22AuditIfNotExists%22%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%7D%2C%0A%20%20%20%20%22policyRule%22%3A%20%7B%0A%20%20%20%20%20%20%22if%22%3A%20%7B%0A%20%20%20%20%20%20%20%20%22field%22%3A%20%22type%22%2C%0A%20%20%20%20%20%20%20%20%22in%22%3A%20%5B%0A%20%20%20%20%20%20%20%20%20%20%22Microsoft.Compute%2FvirtualMachines%22%2C%0A%20%20%20%20%20%20%20%20%20%20%22Microsoft.ClassicCompute%2FvirtualMachines%22%0A%20%20%20%20%20%20%20%20%5D%0A%20%20%20%20%20%20%7D%2C%0A%20%20%20%20%20%20%22then%22%3A%20%7B%0A%20%20%20%20%20%20%20%20%22effect%22%3A%20%22%5Bparameters(effect)%5D%22%2C%0A%20%20%20%20%20%20%20%20%22details%22%3A%20%7B%0A%20%20%20%20%20%20%20%20%20%20%22type%22%3A%20%22Microsoft.Security%2FcomplianceResults%22%2C%0A%20%20%20%20%20%20%20%20%20%20%22name%22%3A%20%22disableIPForwarding%22%2C%0A%20%20%20%20%20%20%20%20%20%20%22existenceCondition%22%3A%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20%22field%22%3A%20%22Microsoft.Security%2FcomplianceResults%2FresourceStatus%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%22in%22%3A%20%5B%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22Monitored%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22OffByPolicy%22%2C%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%22Healthy%22%0A%20%20%20%20%20%20%20%20%20%20%20%20%5D%0A%20%20%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%7D%0A%20%20%7D%2C%0A%20%20%22id%22%3A%20%22%2Fproviders%2FMicrosoft.Authorization%2FpolicyDefinitions%2FDisable-IP-Forwarding%22%2C%0A%20%20%22type%22%3A%20%22Microsoft.Authorization%2FpolicyDefinitions%22%2C%0A%20%20%22name%22%3A%20%22Disable-IP-Forwarding%22%0A%7D'%0A%0A%24definition%20%3D%20New-AzPolicyDefinition%20%20%20%20-Name%20%22Disable-IP-Forwarding%22%20%20-Description%20%22Disable-IP-Forwarding-Test.%22%20-Policy%20%24Policy%3C%2FCODE%3E%3C%2FPRE%3E%3CP%3E%26nbsp%3B%3C%2FP%3E%3CP%3EHello%2C%3C%2FP%3E%3CP%3EI%20am%20working%20on%20%22New-AzPolicyDefinition%22%20in%20Powershell%20however%20I%20am%20getting%20stuck%20in%20JSON%20format.%3C%2FP%3E%3CP%3EI%20am%20taking%20JSON%20from%20the%20Built-in%20Policy%20from%20the%20Azure%20portal%20but%20the%20same%20JSON%20when%20placing%20in%20PowerShell%20ISE%20editor%2C%20it%20is%20throwing%20below%20error%20in%20PowerShell.%3C%2FP%3E%3CP%3E%26nbsp%3B%3C%2FP%3E%3CP%3E%3CFONT%20color%3D%22%23FF0000%22%3ENew-AzPolicyDefinition%20%3A%20InvalidPolicyRule%20%3A%20Failed%20to%20parse%20policy%20rule%3A%20'Could%20not%20find%20member%20'properties'%20on%20object%20of%20type%20'PolicyRuleDefinition'.%20Path%20'properties'.'.%3C%2FFONT%3E%3CBR%20%2F%3E%3CFONT%20color%3D%22%23FF0000%22%3ECorrelationId%3A%207e754d56-2e8e-4323-8650-ae620bb60573%3C%2FFONT%3E%3CBR%20%2F%3E%3CFONT%20color%3D%22%23FF0000%22%3EAt%20line%3A70%20char%3A15%3C%2FFONT%3E%3CBR%20%2F%3E%3CFONT%20color%3D%22%23FF0000%22%3E%2B%20...%20efinition%20%3D%20New-AzPolicyDefinition%20-Name%20%22Disable-IP-Forwarding%22%20...%3C%2FFONT%3E%3CBR%20%2F%3E%3CFONT%20color%3D%22%23FF0000%22%3E%2B%20~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~%3C%2FFONT%3E%3CBR%20%2F%3E%3CFONT%20color%3D%22%23FF0000%22%3E%2B%20CategoryInfo%20%3A%20CloseError%3A%20(%3A)%20%5BNew-AzPolicyDefinition%5D%2C%20ErrorResponseMessageException%3C%2FFONT%3E%3CBR%20%2F%3E%3CFONT%20color%3D%22%23FF0000%22%3E%2B%20FullyQualifiedErrorId%20%3A%20Microsoft.Azure.Commands.ResourceManager.Cmdlets.Implementation.NewAzurePolicyDefinitionCmdlet%3C%2FFONT%3E%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-1648379%22%20slang%3D%22fr-FR%22%3ERe%3A%20Help%20Needed%20-%20New-AzPolicyDefinition%20Creation%20of%20Azure%20policy%20definition%20through%20PowerShell%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-1648379%22%20slang%3D%22fr-FR%22%3E%3CP%3E%3CA%20href%3D%22https%3A%2F%2Ftechcommunity.microsoft.com%2Ft5%2Fuser%2Fviewprofilepage%2Fuser-id%2F737140%22%20target%3D%22_blank%22%3E%40sushilsta58%3C%2FA%3E%26nbsp%3B%3C%2FP%3E%3C%2FLINGO-BODY%3E
Regular Visitor

 

$Policy=
'{
  "properties": {
    "displayName": "Disable-IP-Forwarding",
    "policyType": "Custom",
    "mode": "All",
    "description": "Disable-IP-Forwarding-Test.",
    "metadata": {
      "version": "1.0.2",
      "category": "Security Center"
    },
    "parameters": {
      "effect": {
        "type": "String",
        "metadata": {
          "displayName": "Effect",
          "description": "Enable or disable the execution of the policy"
        },
        "allowedValues": [
          "AuditIfNotExists",
          "Disabled"
        ],
        "defaultValue": "AuditIfNotExists"
      }
    },
    "policyRule": {
      "if": {
        "field": "type",
        "in": [
          "Microsoft.Compute/virtualMachines",
          "Microsoft.ClassicCompute/virtualMachines"
        ]
      },
      "then": {
        "effect": "[parameters(effect)]",
        "details": {
          "type": "Microsoft.Security/complianceResults",
          "name": "disableIPForwarding",
          "existenceCondition": {
            "field": "Microsoft.Security/complianceResults/resourceStatus",
            "in": [
              "Monitored",
              "OffByPolicy",
              "Healthy"
            ]
          }
        }
      }
    }
  },
  "id": "/providers/Microsoft.Authorization/policyDefinitions/Disable-IP-Forwarding",
  "type": "Microsoft.Authorization/policyDefinitions",
  "name": "Disable-IP-Forwarding"
}'

$definition = New-AzPolicyDefinition    -Name "Disable-IP-Forwarding"  -Description "Disable-IP-Forwarding-Test." -Policy $Policy

 

Hello,

I am working on "New-AzPolicyDefinition" in Powershell however I am getting stuck in JSON format.

I am taking JSON from the Built-in Policy from the Azure portal but the same JSON when placing in PowerShell ISE editor, it is throwing below error in PowerShell.

 

New-AzPolicyDefinition : InvalidPolicyRule : Failed to parse policy rule: 'Could not find member 'properties' on object of type 'PolicyRuleDefinition'. Path 'properties'.'.
CorrelationId: 7e754d56-2e8e-4323-8650-ae620bb60573
At line:70 char:15
+ ... efinition = New-AzPolicyDefinition -Name "Disable-IP-Forwarding" ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : CloseError: (:) [New-AzPolicyDefinition], ErrorResponseMessageException
+ FullyQualifiedErrorId : Microsoft.Azure.Commands.ResourceManager.Cmdlets.Implementation.NewAzurePolicyDefinitionCmdlet

0 Replies