Ok peeps, say I've got something like:
Function Get-Reports {
# Get managers direct report, calls function above
$DirectReports = Get-DirectReport $Manager -norecurse | Select-Object samAccountName
if ($null -ne $DirectReports) {
#$LogLine = "Gathering direct reports for " + $Manager
#Log-Write -LogPath $sLogFile -LineValue $LogLine
} else {
$LogLine = $Manager + " has no reports."
#Log-Write -LogPath $sLogFile -LineValue $LogLine
#Continue
}
}
Function Set-RTGmembers {
# Get manager's 'report to <manager>' group again to update members
$managerReportToGroup = Get-ADGroup -SearchBase $ou -Filter "Name -like 'Report to $Manager'"
if ($managerReportToGroup) {
Add-ADGroupMember -identity $managerReportToGroup.Name -members $DirectReports
Add-ADGroupMember -identity $managerReportToGroup.name -members $Manager
$LogLine = "Report to " + $Manager + " updated."
#Log-Write -LogPath $sLogFile -LineValue $LogLine
} else {
$LogLine = "Could not find group for " + $Manager
#Log-Write -LogPath $sLogFile -LineValue $LogLine
}
}
Foreach ($manager in $managers) {
Get-Reports
Set-RTGmembers
}
I get an error saying the Add-ADGroupMember's -members $DirectReports value is empty. I've debug it and it's indeed empty. How do I pass a variable created in a function to another function? Should I combine them maybe?