$clientId = "XXXXXXXXX" $password = "XXXXXXXX" $tenantId = 'XXXXXXXXX' $userPassword = ConvertTo-SecureString $password -AsPlainText -Force $pscred = New-Object System.Management.Automation.PSCredential($clientId,$userPassword) Connect-AzAccount -Tenant $tenantId -Credential $pscred -ServicePrincipal $token = (Get-AzAccessToken).Token $Header = @{'Authorization' = "Bearer $token"; "Content-Type" = "application/json" } $uri = "https://management.azure.com/providers/Microsoft.Subscription/subscriptions/XXXXXXXXXXXXXXX/providers/Microsoft.Authorization/roleAssignmentScheduleRequests?api-version=2020-10-01" $response = Invoke-WebRequest -Headers $Header -Uri $uri -Method Get -UseBasicParsing $method = "PUT" $createURI = "https://management.azure.com/providers/Microsoft.Subscription/subscriptions/XXXXXXXXXXXXXXXX/providers/Microsoft.Authorization/roleAssignmentScheduleRequests/093b7605-5062-4774-99d8-ab1e7f7cdc12?api-version=2020-10-01" $body = '{ "properties": { "principalId": "XXXXXXXXXX", "roleDefinitionId": "/subscriptions/XXXXXXXXXXX/providers/Microsoft.Authorization/roleDefinitions/b24988ac-6180-42a0-ab88-20f7382dd24c", "requestType": "AdminAssign", } }' $response = Invoke-WebRequest -Headers $Header -Uri $uri -Method $method -UseBasicParsing -Body $body $scope = "/subscriptions/XXXXXXXXXX" Get-AzRoleAssignmentSchedule -Scope $scope $SubscriptionPIMID = (Get-AzureADMSPrivilegedResource -ProviderId 'AzureResources' -Filter "ExternalId eq '/subscriptions/XXXXX'").Id $method = "GET " $URI = 'https://management.azure.com/providers/Microsoft.Subscription/subscriptions/XXXXXXXXXXXXXX/providers/Microsoft.Authorization/roleAssignmentScheduleRequests?api-version=2020-10-01' $response = Invoke-WebRequest -Headers $Header -Uri $uri -Method $method -UseBasicParsing