I had this same issue. I leased up the building before I realized it was going to be such a problem. Luckily we have a small (8 spaces) over-flow lot that is around the block from us and plenty of street parking. You didn't really mention what you have for overflow or nearby street parking. What are the options for guests other than your lot?
I was able to post signs that say "Resident Parking Only". Then I passed out parking decals to all of the residents. I recently partnered with a towing company, not to monitor, only to tow if I call. I don't want to take the chances of towing a residents car by accident. I gave plenty of warnings, postings, notices, etc. and then I actually got lucky and a resident's car broke down and she had it towed right about the same time this was being implemented. Pretty sure everyone thought I towed a car, lol. So for a short time I would go through the lot first thing in the AM and put a full page warning on any visitor cars. This was our biggest issue with boyfriends and girlfriends staying the night and parking in the lot. The warning said your vehicle info has been recorded and if you park here again you WILL be towed. I didn't have to do it for long. People got the idea and started parking on the street. Besides all of the lot monitoring, I also changed our policy. It was 1 car per licensed driver. We also would have a 2 bedroom with 4 adults and 4 cars. I changed it to a max of 2 parking permits per apartment. So we can still have 4 adults, but they have to decide which 2 get the permits and can use the lot. Of course I had to wait to implement it with the ones we already had, but again I got lucky and they didn't stay long. So, now that everything is in place and switched over, I haven't had a single complaint of a resident coming home late and not finding a space. I hope things go as easy for you to make the changes you need!