Skip to content

Instantly share code, notes, and snippets.

@JamesDLD
Created June 5, 2020 14:21
Show Gist options
  • Save JamesDLD/7090a6a67e9d1aef13590cbf83468f60 to your computer and use it in GitHub Desktop.
Save JamesDLD/7090a6a67e9d1aef13590cbf83468f60 to your computer and use it in GitHub Desktop.
The following script will create the Policy initiative definition.
# Login first with Connect-AzAccount if not using Cloud Shell
## Variable
$parameters = Invoke-RestMethod -Uri "https://raw.githubusercontent.com/JamesDLD/AzureRm-Template/master/Create-WvdDiagnosticsPolicy/parameters.json"
## Create the Policy Definition for the Windows Virtual Desktop Workspaces
$workspacesPolicy = New-AzPolicyDefinition -Name 'Windows Virtual Desktop Workspaces Diagnostic Settings' `
-DisplayName 'Deploy Diagnostic Settings for Windows Virtual Desktop Workspaces to Log Analytics workspace' `
-Policy "https://raw.githubusercontent.com/JamesDLD/AzureRm-Template/master/Create-WvdDiagnosticsPolicy/workspaces.json" `
-Parameter ($parameters | ConvertTo-Json) `
-Metadata '{"category":"Log Monitor"}' `
-Mode Indexed
## Create the Policy Definition for the Windows Virtual Desktop Host Pools
$hostpoolsPolicy = New-AzPolicyDefinition -Name 'Windows Virtual Desktop Host Pools Diagnostic Settings' `
-DisplayName 'Deploy Diagnostic Settings for Windows Virtual Desktop Host Pools to Log Analytics workspace' `
-Policy "https://raw.githubusercontent.com/JamesDLD/AzureRm-Template/master/Create-WvdDiagnosticsPolicy/hostpools.json" `
-Parameter ($parameters | ConvertTo-Json) `
-Metadata '{"category":"Log Monitor"}' `
-Mode Indexed
## Create the Policy Definition for the Windows Virtual Desktop Application Groups
$applicationgroupsPolicy = New-AzPolicyDefinition -Name 'Windows Virtual Desktop Application Groups Diagnostic Settings' `
-DisplayName 'Deploy Diagnostic Settings for Windows Virtual Desktop Application Groups to Log Analytics workspace' `
-Policy "https://raw.githubusercontent.com/JamesDLD/AzureRm-Template/master/Create-WvdDiagnosticsPolicy/applicationgroups.json" `
-Parameter ($parameters | ConvertTo-Json) `
-Metadata '{"category":"Log Monitor"}' `
-Mode Indexed
## Prepare the Policy Definition variable for the Policy Initiative
$params = @{
effect = @{ value = "[parameters('effect')]" };
profileName = @{ value = "[parameters('profileName')]" };
logAnalytics = @{ value = "[parameters('logAnalytics')]" };
logsEnabled = @{ value = "[parameters('logsEnabled')]" }
}
$PolicyDefinitions = @(
@{
policyDefinitionId = $workspacesPolicy.PolicyDefinitionId
parameters = $params
};
@{
policyDefinitionId = $hostpoolsPolicy.PolicyDefinitionId
parameters = $params
};
@{
policyDefinitionId = $applicationgroupsPolicy.PolicyDefinitionId
parameters = $params
}
)
## Create the Policy Iniative for the Windows Virtual Desktop Resources
New-AzPolicySetDefinition -Name 'Windows Virtual Desktop Resources Diagnostic Settings' `
-DisplayName 'Deploy Diagnostic Settings for Windows Virtual Desktop Resources to Log Analytics workspace' `
-PolicyDefinition ($PolicyDefinitions | ConvertTo-Json -Depth 3) `
-Parameter ($parameters | ConvertTo-Json) `
-Metadata '{"category":"Log Monitor"}'
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment