I see two broad options, one of which is a bit of a frame-change.
First, the frame change: most undead - especially low-level undead like zombies and skeletons - were mindless in previous editions of D&D and aren't terribly bright in 5E. It shouldn't be too hard for some passably persuasive denizens to convince the undead hordes to follow their commands without magic. Further, zombies and skeletons are frequently portrayed as basically milling about doing nothing in particular if there's nothing better to do; it shouldn't be too hard for the denizens to have corralled the undead into holding areas for later use (it's not like they need food or exercise, after all).
Option 1b, I guess, would be that there's no particular reason for the undead creatures to stop doing whatever it was that they were doing when they're no longer controlled, especially if what they were doing is a mindless, repetitive task ("keep turning this wheel" or "walk along this round pathway (ie., patrol)").
If that's not quite sufficient, the denizens could be keeping a handful of key undead creatures under their control, and trusting that the rest of them will just kinda follow along.
PCs could, in principle, do the same thing: control or convince (or just lure) the undead to where you need them to be, then let them hang out there 'til they're needed. If necessary, keep a small number under control for specific purposes.
The second option would be to adjust (slightly) the Hallow spell, and "Un-Hallow" the area (which may indicate that a more powerful creature is behind this, and the adventure is prelude). As written, Hallow appears designed for Good PCs to use; I don't see why its mirror shouldn't exist, which would allow for necromancers to exert some control over more undead than normal (possibly only just "some" control, though: perhaps it's just enough that the undead see the other denizens as "friendly" as opposed to "lunch").
Again, in principle a PC could do this, if they could find a deity willing to allow it.
There are four spells which make undead:
Animate Dead. 3rd level spell which is added to your spellbook at 6th level and for which you get an additional undead. Makes zombies or skeletons.
Danse Macabre. 5th level spell from Xanathar's Guide to Everything (p. 153) which creates 6 undead for an hour. Makes zombies or skeletons, with a bonus to attack and damage.
Create Undead. 6th level spell which creates 3 ghouls which last indefinatly. Can be cast at higher levels to make 4 ghouls (7th), 5 ghouls or 2 ghasts or wights (8th) or 6 ghouls, 3 ghasts or wights, or 2 mummies (9th). Must be cast at night for added cliche. Lightning strike and full moon optional.
Finger of Death. 7th level spell which can create a zombie of its target if it kills it. The zombie has no time limitations or upkeep costs.
These are buffed by Undead Thralls
The 6th level feature which grants you the animate dead spell, Undead Thralls, also buffs these undead:
Whenever you create an undead using a necromancy spell, it has additional benefits:
Which is a buff to their hit points and damage (this stacks with the bonus innate to danse macabre).
There are otherwise no other features (to my knowledge) which explicitly improve the stats of your undead. (Obtaining minions in 5e is already quite powerful as it weighs heavily on the action economy.) You are then left with the myriad of spells and features which can buff any creature. I'm not going to list them here, but you may find D&D Beyond's Spell Search a useful starting point to find buff spells.
Best Answer
Calculate CR for the Necromancer and undead separately then use encounter adjusted experience for the group
In 5e CR is used to determine if a creature is appropriate with characters of a given level based on its damage/round and defenses. Creatures with a CR above the PCs level risk overwhelming them either by killing them instantly or soaking up damage beyond what the PCs resources can dish out.
While a Necromancer with a bunch of undead is going to do more damage than a Necromancer alone it isn't going to do this damage as a couple huge attacks like one high CR monster would. Similarly as the Necromancer's group loses HP it will lose creatures unlike a high CR monster suffering critical existence failure. Due to these differences the right way to stat this is by determining the CR of the necromancer and then determining the difficulty of an encounter with them and the group of undead.
Remember the undead will be available when calculating the Necromancer's CR
My experience has been that determining offensive CR for a spellcaster is tricky as a spell's effect often varies with how many allies they have. For example your Necromancer could cast Bless which would increase their groups expected damage by a hard to calculate amount. In your case since you know there will be 4 skeleton/zombies you can get a more accurate offensive CR by including their presence in your calculations when determining how effective the Necromancer's spells will be.