Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -292,6 +292,74 @@ NAME: Add-DeviceConfigurationPolicy


####################################################

Function Add-GroupPolicyConfigurationsAssignment(){

<#
.SYNOPSIS
This function is used to assign a group to a group policy configuration using the Graph API REST interface
.DESCRIPTION
The function connects to the Graph API Interface and adds a device compliance policy assignment
.EXAMPLE
Add-GroupPolicyConfigurationsAssignment -GroupPolicyId $GroupPolicyConfigurationID -TargetGroupId $TargetGroupId
Adds a group policy assignment in Intune
.NOTES
NAME: Add-GroupPolicyConfigurationsAssignment
#>

[cmdletbinding()]

param
(
[Parameter(Mandatory = $false)]
[string]$GroupPolicyId,
[Parameter(Mandatory = $true)]
[string]$TargetGroupId
)

$graphApiVersion = "beta"
$Resource = "deviceManagement/groupPolicyConfigurations/$GroupPolicyId/assign"

try {

$JSON = @"

{
"assignments": [
{
"target": {
"@odata.type": "#microsoft.graph.groupAssignmentTarget",
"groupId": "$TargetGroupId"
}
}
]
}

"@

$uri = "https://graph.microsoft.com/$graphApiVersion/$($Resource)"
Invoke-RestMethod -Uri $uri -ContentType "application/json" -Headers $authToken -Method Post -Body $JSON

}

catch {

$ex = $_.Exception
$errorResponse = $ex.Response.GetResponseStream()
$reader = New-Object System.IO.StreamReader($errorResponse)
$reader.BaseStream.Position = 0
$reader.DiscardBufferedData()
$responseBody = $reader.ReadToEnd();
Write-Host "Response content:`n$responseBody" -f Red
Write-Error "Request to $Uri failed with HTTP Status $($ex.Response.StatusCode) $($ex.Response.StatusDescription)"
write-host
break

}

}

####################################################

Function Test-JSON()
{
Expand Down Expand Up @@ -439,3 +507,5 @@ if (!(Test-Path "$ImportPath"))
}

Get-ChildItem "$ImportPath" | Where-Object { $_.PSIsContainer -eq $True } | ForEach-Object { import-ADMX $_.FullName }

Add-GroupPolicyConfigurationsAssignment -GroupPolicyId $GroupPolicyConfigurationID