examples/Get-BBFacultListServListData.ps1
#Friday Mornings #Do one file per semester #Import Useful Modules Import-Module .\PSBlackboard.psm1 -Verbose -force #Get Useful Terms $CurrentTerms = Get-BBTerms -TargetTerm 'AllCurrent' #$CurrentTerms = Get-BBTerms -TermID 'externalId:30700' #Get the courses foreach($Term in $CurrentTerms){ $Courses = @() $CourseMemberships = @() $Returns = @() $Courses += Get-BBCourses -Filter "termId=$($Term.id)" -Verbose $Courses | foreach-Object -Begin{ $Counter = 0 } -Process { $Counter += 1 Write-Verbose "Processing Course Enrollments Progress: $($Counter)/$($_.count) ($($($Counter)/$($_.count))) [$($_.id)] PercentComplete $(($($Counter)/$($_.count))*100)" $params = @{ CourseID = $_.id ExpandUser = $true } Write-Verbose "Processing memberships for $($_.id)" $CourseMemberships += Get-BBCourseMemberships @params -Filter "role=Instructor&availability.available=Yes" #-Verbose $CourseMemberships += Get-BBCourseMemberships @params -Filter "role=TeachingAssistant&availability.available=Yes"# -Verbose } -End { } #Determine all unique users $UniqueUsers = $CourseMemberships | sort-object -Property {$_.user.userName} -Unique If ($UniqueUsers.count -gt 0){ #Add the columns we need to an array $UniqueUsers | foreach-Object -Process { $Returns += [PSCUstomObject]@{ EmailAddress = $_.user.contact.email FirstName = $_.user.name.given LastName = $_.user.name.family } } #Save the CSV that we need since you can't mail an attachment without it existing on the server. $FileName = ".\examples\temp\BBFacultListServeList_$($Term.name).txt" #$Returns | Sort-Object -Property EmailAddress | Export-Csv -path $FileName -NoTypeInformation -Encoding ascii -Delimiter "`t" $Returns | Sort-Object -Property EmailAddress | ConvertTo-Csv -NoTypeInformation -Delimiter "`t" | % { $_ -replace '"', ""} | select-object -Skip 1 |Set-Content -path $FileName #Send the mail to whoever needs it. $recipients = "Marcus Jackson <jacks3m@cmich.edu>", "Marnie Roestel <roest1m@cmich.edu>" #$recipients = "Marcus Jackson <jacks3m@cmich.edu>" $subject = "BBFacult List Serve List Data" $Body = "Attached are $($UniqueUsers.count) unique instructors for enrollments in $($Term)" Send-MailMessage -To $recipients -Subject $Subject -Body $Body -SmtpServer 'smtp.cmich.edu' -From 'no-reply@blackboard.apps.cmich.edu' -Attachment $FileName #Remove the CSV as it is no longer needed. remove-item $FileName } } #Get Available Instructor and Teaching Assistant memeberships based upon those couses. This shows a progress bar for the executions. |