If I'm a hard worker, and I see people doing nothing all day, nothing would motivate me like firing them.
eg look at people working remotely, check vpn logins, and if they weren't logged in while working remotely, ask them for a reasonable explanation (maybe they were working entirely locally, but probably not), then terminate.
Edit based on your edit: Probably not quite as abruptly as you suggest - usually you need a pattern of underperformance to fire without risking a lawsuit. But Yahoo underwent several rounds of performance-based lawsuits. I think her big mistake there was not cutting once and cutting deep - multiple rounds of layoffs are much more demoralizing than getting rid of all the underperformers at once - but hey, Monday-morning quarterbacking. We aren't the ones at the top making the call.
The ultimatum was: if you can't convince us that you're productive remotely, you must start coming in to office. I know a couple of excellent techies who continued to work remotely after.
Or judge them by what they contribute to the project -- not by how often they log in, or how long their butts sit happily joined with their chairs.
(Fine-grained) surveillance breeds distrust. The moment I hear that a company I work for is aggressively using surveillance-ware to evaluate employee performance is the moment I start looking for another job.
If I'm a hard worker, and I see people doing nothing all day, nothing would motivate me like firing them.
eg look at people working remotely, check vpn logins, and if they weren't logged in while working remotely, ask them for a reasonable explanation (maybe they were working entirely locally, but probably not), then terminate.