This guide will detail how to set up a script to silently record screenshots of a user's activities.
1. Create directory in which screencaps will be stored. For this tutorial we will be using "/Library/Screencaps/" which is a folder that needs to be created.
The following code is the contents of the auto-capture.scpt file (see attached) which needs to be put in the created folder "/Library/Screencaps/"
If adjustments need to be made to timing, modify both the delay and the repeat count
set dFolder to "~/Library/Screencaps/" do shell script ("mkdir -p " & dFolder) repeat 900 times -- Repeat 900 times. for 75 hours set dateTime to do shell script "date +%Y%m%d_%H%M%S" do shell script ("screencapture " & dFolder & dateTime & ".png") -- Capture screen. delay 300 -- Wait for 5 mins end repeat
2. Put screencap.plist in "/Library/LaunchAgents/"
The following code is the contents of screencap.plist
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <dict> <key>Label</key> <string>screencap.job</string> <key>ProgramArguments</key> <array> <string>/usr/bin/osascript</string> <string>/Library/Screencaps/auto-capture.scpt</string> </array> <key>RunAtLoad</key> <true/> </dict> </plist>
3. Open Terminal and type
sudo chown root /Library/LaunchAgents/screencap.plist
This will set permissions correctly on the screencap.plist file so that the script can be autostarted
4. In Terminal run
launchctl load -w ~/Library/LaunchAgents/screencap.plist
This will add the .plist file to the launch daemon
On next login screenshots will be silently captured and put into /Library/Screencaps/ every 5 minutes for 80 hours continuously.
When we want to remove the script from running use the following
launchctl unload -w ~/Library/LaunchAgents/screencap.plist