James, I understand that and apologize for having interfered here. If core functionality can be improved it will be the best solution. (But I wonder, if you would like to set such options through the GUI on 1'500 courses)
My own programmatical approach is only meant to help in case such an improvement demands a longer time period to be implemented.
I have another idea on how to solve this with my code:
- create the courses manually or using my uploadusersandcourses.php (or the silent/batch version)
- do register only the TEACHERs in the courses either manually or using my script, so that they can access the courses normally and prepare them
- register the students as soon as the term allows to do so, using my uploadusersandcourses_silently.php script which can be scheduled to run as batch/cron job
- alternatively you can register the students and teachers at the same time using my script and adding the option to set the courses to NOT AVAILABLE TO STUDENTS until you run the script again with the option to make them available on the scheduled and desired term
And as Sam already said, it is possible to set the enrolment dates for such purposes. Again my script could be used to set them in an automated fashion in a large scale scenario, talking about 1'500 courses...