Resetting the List of Users in a Program to Only Meet the "Conditions" of the Program
Problem
If you manually add users to a program that also uses conditions / rules to register users, it is difficult to tell which users were registered based on the conditions, and which users were registered manually. Because the manual registration overrides the conditions, changing the conditions will not unregister the users from the program. If you need to remove users who were manually added to a program, there are at least 3 possible solutions, each with their own recommendation, depending on how many users are in the program.
Solution
There are only few users and I know who they are
If you only need to remove a few users that were manually added to a program and you know who those users are, you can following these steps:
Go to Site Administration > Programs
Click on the "Assign users" icon next to the program in question
Remove users by selecting them in the box on the left and click on the Remove button
You may need to repeat the steps above to remove all users. Note that if a user was added using conditions, they will continue to appear in the "Assigned users" box on the left and you will need to adjust the conditions to remove them.
There are only few users but I don't know who they are
If you're not sure which users were added manually, you can following these steps, which are effectively the same steps as the procedure above, except that you are selecting all users.
Go to Site Administration > Programs
Click on the "Assign users" icon next to the program in question
Select all users in the box on the left and click on the Remove button
The "Assigned users" can only show up to 100 users. As such, if you have more than 100 users registered in the program, you will need to use the "Search" bar at the bottom of the "Assigned users" box to filter the users and display them in groups. You may need to repeat the steps above to remove all users if there are too many to show them. Once again, if a user was added using conditions, this user will continue to appear in the "Assigned users" box on the left, but the users that were manually assigned to the program will be removed.
There are too many users in the program
If there are simply too many users to use the procedure above, you can follow these steps. The procedure is far simpler if you've been using the "Cohort" condition to assign users to programs instead of using "User profile" conditions. If you've been using "Cohort" conditions, you can skip step 1 below.
IF AND ONLY IF you use "User profile conditions" in your program, create a cohort that uses the same conditions.
If you're not sure how to create cohort, you may read this procedure.
If you're already using "Cohort" conditions to register users in your program, you may skip step 1 above.
If there are lots of conditions, consider using the "is one of" operator when creating the new cohort, which is significantly faster than using the "is equal to" operator.
Duplicate the program in question.
You will probably want to turn off the "User is registered in the program" notification if it's not turned off already since you don't want to send notifications to learners informing them that they have been added to a new program.
Use the cohort(s) created in step 1 above to assign users to the new program.
If you're not sure how to achieve this, you may read this procedure.
Wait a few minutes for this new program to process all users. This task happens in the background and can take up to 20 minutes for very large programs (e.g. with 10,000+ users)
You may want to review the list of users registered in the new program before proceeding to the next step. The number of users in the program should be equal to the number of users in the cohort. If the numbers are not equal, it means the system is still registering users in programs and you should NOT yet proceed to step 5.
Delete the old / original program.
Steps 1-4 above will create a duplicate program that only contains the users who meet the conditions (e.g. who are in the cohort). By removing the original program, you end up with a single program that no longer contains users who were manually registered.
To eliminate confusion, you may want to rename to new program to use the same name as the old program.