examples/Get-SelfEnrollLinks.ps1
#Import Useful Modules Import-Module .\PSBlackboard.psm1 -Verbose -force #Script Variables $Courses = @() $CourseMemberships = @() $Returns = @() $AutoEnrollCourses = @( 'LSS_Sandbox-0221', 'APA_online_training-1021', 'Biology_Biomedical_Cellular_and_Molecular_Biology_Major-0522', 'Biology_Ecology_Evolution_and_Conservation_Major-0522', 'APA_Self-Study_BbSandbox-0622', 'MPA_Program-0722', 'MPH-Orientation-0523', 'sport_management-0823', 'MHA-Accounting-Review-1024', 'MHA-Statistics-Review-1024', 'Gradstudent-Orientation-0425', 'Student-Orientation-1024', 'Bb_Training-1219', 'GTAPD_2018-0821', 'OER_Workshop-0623', 'OCDW-1221', 'OnlineTeachingatCMU-1021', 'Online_Preview-1219', 'Online-Course-Accessibility-0323' ) foreach($AutoEnrollCourse in $AutoEnrollCourses){ $Courses += Get-BBCourses -CourseID "externalId:$($AutoEnrollCourse)" -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 |