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 |