Skip to content

Commit 492a063

Browse files
committed
powershell for initiatives2
1 parent 9d1db21 commit 492a063

File tree

1 file changed

+23
-17
lines changed

1 file changed

+23
-17
lines changed

articles/azure-monitor/essentials/diagnostics-settings-policies-deployifnotexists.md

Lines changed: 23 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -195,39 +195,45 @@ TBD
195195

196196
### [PowerShell](#tab/Powershell)
197197

198-
$subscriptionId = "d0567c0b-5849-4a5d-a2eb-5267eae1bbc7";
198+
199+
1. Set up your environemnt variables
200+
```azurepowershell
201+
# Set up your environment variables.
202+
$subscriptionId = <your subscription ID>;
203+
$rg = Get-AzResourceGroup -Name <your resource group name>;
199204
Select-AzSubscription $subscriptionId;
200-
$groupName= "ed-ps-initiative-03";
201-
$rg = Get-AzResourceGroup -Name $groupName;
202-
$definition = Get-AzPolicySetDefinition |Where-Object ResourceID -eq /providers/Microsoft.Authorization/policySetDefinitions/f5b29bc4-feca-4cc6-a58a-772dd5e290a5;
203-
$assignmentName="assign-ps-initiative-03-03";
204-
$params = @{"logAnalytics"="/subscriptions/$subscriptionId/resourcegroups/$($rg.ResourceGroupName)/providers/microsoft.operationalinsights/workspaces/ed-psi-02-workspace"}
205-
$policyAssignment=Get-AzPolicyAssignment -Name $assignmentName -Scope "/subscriptions/$subscriptionId/resourcegroups/$($rg.ResourceGroupName)";
205+
$logAnlayticsWorskspaceId=</subscriptions/$subscriptionId/resourcegroups/$rg.ResourceGroupName/providers/microsoft.operationalinsights/workspaces/<your log analytics workspace>>;
206206
207+
# Get the initiative defintion. In this example we'll use Initiative *Enable audit category group resource logging for supported resources to Log Analytics*, ResourceID "/providers/Microsoft.Authorization/policySetDefinitions/f5b29bc4-feca-4cc6-a58a-772dd5e290a5"
208+
$definition = Get-AzPolicySetDefinition |Where-Object ResourceID -eq /providers/Microsoft.Authorization/policySetDefinitions/f5b29bc4-feca-4cc6-a58a-772dd5e290a5;
207209
210+
#Set an assignment name and configure parameters. For this initiative, the parameters include the Log Analytics workspace id.
211+
$assignmentName=<your assignment name>;
212+
$params = @{"logAnalytics"="/subscriptions/$subscriptionId/resourcegroups/$($rg.ResourceGroupName)/providers/microsoft.operationalinsights/workspaces/<your log analytics workspace>"}
213+
# Assign the initiative using the parameters
208214
$policyAssignment=New-AzPolicyAssignment -Name $assignmentName -Scope $rg.ResourceId -PolicySetDefinition $definition -PolicyparameterObject $params -IdentityType 'SystemAssigned' -Location eastus;
209215
210-
216+
# Assign the `Contributor` role to the system assigned Managed Identity. For other initiatives, check which roles are required.
211217
New-AzRoleAssignment -Scope $rg.ResourceId -ObjectId $policyAssignment.Identity.PrincipalId -RoleDefinitionName Contributor;
212218
213-
219+
#Scan for policy compliance. The `Start-AzPolicyComplianceScan` command takes a few minutes to return
214220
Start-AzPolicyComplianceScan -ResourceGroupName $rg.ResourceGroupName;
215221
#$policyAssignment=Get-AzPolicyAssignment -Name $assignmentName -Scope "/subscriptions/$subscriptionId/resourcegroups/$($rg.ResourceGroupName)";
216222
217-
$assignmentState=Get-AzPolicyState -PolicyAssignmentName $assignmentName -ResourceGroupName $rg.ResourceGroupName
218-
219-
$policyAssignmentId=$assignmentState.PolicyAssignmentId[0]
220-
221-
$policyDefinitionReferenceIds=$assignmentState.PolicyDefinitionReferenceId
223+
#Get a list of resources to remediate and the required parameters by calling `Get-AzPolicyState`
224+
$assignmentState=Get-AzPolicyState -PolicyAssignmentName $assignmentName -ResourceGroupName $rg.ResourceGroupName;
225+
$policyAssignmentId=$assignmentState.PolicyAssignmentId[0];
226+
$policyDefinitionReferenceIds=$assignmentState.PolicyDefinitionReferenceId;
222227
228+
#For each resource type with non-compliant resources, start a remediation task.
223229
$policyDefinitionReferenceIds | ForEach-Object {
224230
$referenceId = $_
225-
Start-AzPolicyRemediation -ResourceGroupName $rg.ResourceGroupName -PolicyAssignmentId $policyAssignmentId -PolicyDefinitionReferenceId $referenceId -Name "$($rg.ResourceGroupName) remediation $referenceId"
231+
Start-AzPolicyRemediation -ResourceGroupName $rg.ResourceGroupName -PolicyAssignmentId $policyAssignmentId -PolicyDefinitionReferenceId $referenceId -Name "$($rg.ResourceGroupName) remediation $referenceId";
226232
}
227233
228-
234+
#Check the compliance state when the remediation tasks have completed.
229235
Get-AzPolicyState -PolicyAssignmentName $assignmentName -ResourceGroupName $rg.ResourceGroupName|select-object IsCompliant , ResourceID
230-
236+
```
231237

232238

233239
## Remediation tasks

0 commit comments

Comments
 (0)