New-PIMForGroupsEligibleAssignment.ps1



function New-PIMForGroupsEligibleAssignment {
  param (
    [Parameter(Mandatory = $true)]
    [string]$EntraGroupID,    
    [Parameter(Mandatory = $true)]
    [string]$PrincipalID,      
    [Parameter(Mandatory = $true)]
    [string]$AccessToken
  )
  $pim_for_groups_group_eligible_member_assignment = @"
{
  "accessId": "member",
  "principalId": "$($PrincipalID)",
  "groupId": "$($EntraGroupID)",
  "action": "adminAssign",
  "scheduleInfo": {
    "startDateTime": "$(Get-Date -Format o)",
    "expiration": {
      "type": "NoExpiration"
    }
  },
  "justification": "Permanent eligible assignment"
}
"@

  Invoke-GraphAPIRequest `
    -Uri "https://graph.microsoft.com/v1.0/identityGovernance/privilegedAccess/group/eligibilityScheduleRequests" `
    -Method POST `
    -Body $pim_for_groups_group_eligible_member_assignment `
    -AccessToken $AccessToken
}