Skip to content

Commit 9d1db21

Browse files
committed
powershell for initiatives
1 parent ebeb762 commit 9d1db21

File tree

1 file changed

+42
-0
lines changed

1 file changed

+42
-0
lines changed

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

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -156,6 +156,8 @@ Initiatives are collections of policies. There are three initiatives for Azure M
156156

157157
In this example, we assign an initiative for sending audit logs to a Log Analytics workspace.
158158

159+
### [Azure portal](#tab/portal)
160+
159161
1. From the policy **Definitions** page, select your scope.
160162

161163
1. Select *Initiative* in the **Definition type** dropdown.
@@ -188,6 +190,46 @@ Change the default name in the **Parameters** tab of the **Assign initiative** o
188190

189191
:::image type="content" source="./media/diagnostics-settings-policies-deployifnotexists/edit-initiative-assignment.png" alt-text="A screenshot showing the edit-initiative-assignment page with the checkbox unselected.":::
190192

193+
### [CLI](#tab/cli)
194+
TBD
195+
196+
### [PowerShell](#tab/Powershell)
197+
198+
$subscriptionId = "d0567c0b-5849-4a5d-a2eb-5267eae1bbc7";
199+
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)";
206+
207+
208+
$policyAssignment=New-AzPolicyAssignment -Name $assignmentName -Scope $rg.ResourceId -PolicySetDefinition $definition -PolicyparameterObject $params -IdentityType 'SystemAssigned' -Location eastus;
209+
210+
211+
New-AzRoleAssignment -Scope $rg.ResourceId -ObjectId $policyAssignment.Identity.PrincipalId -RoleDefinitionName Contributor;
212+
213+
214+
Start-AzPolicyComplianceScan -ResourceGroupName $rg.ResourceGroupName;
215+
#$policyAssignment=Get-AzPolicyAssignment -Name $assignmentName -Scope "/subscriptions/$subscriptionId/resourcegroups/$($rg.ResourceGroupName)";
216+
217+
$assignmentState=Get-AzPolicyState -PolicyAssignmentName $assignmentName -ResourceGroupName $rg.ResourceGroupName
218+
219+
$policyAssignmentId=$assignmentState.PolicyAssignmentId[0]
220+
221+
$policyDefinitionReferenceIds=$assignmentState.PolicyDefinitionReferenceId
222+
223+
$policyDefinitionReferenceIds | ForEach-Object {
224+
$referenceId = $_
225+
Start-AzPolicyRemediation -ResourceGroupName $rg.ResourceGroupName -PolicyAssignmentId $policyAssignmentId -PolicyDefinitionReferenceId $referenceId -Name "$($rg.ResourceGroupName) remediation $referenceId"
226+
}
227+
228+
229+
Get-AzPolicyState -PolicyAssignmentName $assignmentName -ResourceGroupName $rg.ResourceGroupName|select-object IsCompliant , ResourceID
230+
231+
232+
191233
## Remediation tasks
192234

193235
Policies are applied to new resources when they're created. To apply a policy to existing resources, create a remediation task. Remediation tasks bring resources into compliance with a policy.

0 commit comments

Comments
 (0)