examples/GetAutoEnrollInstructors.ps1

#Import Useful Modules
Import-Module .\PSBlackboard.psm1 -Verbose -force

#Script Variables
$Courses = @()
$CourseMemberships = @()
$Returns = @()


$AutoEnrollCourses = Import-Csv -Path "D:\temp\autoenroll.txt" -Header "course_id"

foreach($AutoEnrollCourse in $AutoEnrollCourses){
    $Courses += Get-BBCourses -CourseID "externalId:$($AutoEnrollCourse.course_id)"  -Verbose
}

$Courses | foreach-Object -Begin{
        $Counter = 0
    } -Process {
        $Counter += 1
        $CourseID = $_.externalId
        Write-Progress -Activity "Processing Course Enrollments" -Status "Progress: $($Counter)/$($Courses.count) ($($($Counter)/$($Courses.count))) [$($_.id)]" -PercentComplete (($($Counter)/$($Courses.count))*100)
        $params = @{
            CourseID =  $_.id
            ExpandUser = $true
        }
            Write-Verbose "Processing memberships for $($_.id)"
            Get-BBCourseMemberships @params -Filter "role=Instructor&availability.available=Yes" -Verbose | foreach-Object -Process {

                $Returns += [PSCUstomObject]@{
                    FirstName = $_.user.name.given
                    LastName = $_.user.name.family
                    EmailAddress = $_.user.contact.email
                    courseId = $CourseID
                }
            }
            #$CourseMemberships += Get-BBCourseMemberships @params -Filter "role=TeachingAssistant&availability.available=Yes" -Verbose

        } -End {
        }



#Save the CSV that we need since you can't mail an attachment without it existing on the server.
$Returns | Export-Csv -path d:\temp\AutoenrollEnrollments.csv -NoTypeInformation