Macのスクリーンショットcrontabはデスクトップのみを取得しました

Macのスクリーンショットcrontabはデスクトップのみを取得しました

私は、管理作業の手助けとなる日記として、15 分ごとに Mac のスクリーンショットを撮る小さな crontab コードを持っています。このコードは、ここ数年は問題なく動作していましたが、最近、画面上のアプリケーション、下部のアプリケーション ドック、デスクトップ上のアプリケーション アイコンやファイルさえも表示されず、デスクトップと上部のステータス バーだけが撮影されるようになりました。

コードはターミナルで手動で実行すると正常に動作しますが、crontab では動作しません。

crontab を再インストールしてみましたが、問題は解決しませんでした。そして、もうこの問題を解決する方法は見つかりません。

crontab をスクリーンキャプチャで動作させて、アプリケーションを画面上にも表示させるにはどうすればよいですか?

私はMac Catalinaバージョン10.15.1を実行しています。

*/15 * * * * /usr/sbin/screencapture -Cxd -tjpg ~/Documents/AutoScreenShot/screen-date +"\%Y\%m\%d-\%H\%M".jpg

答え1

昨日の午後にも同じ問題が発生しましたが、何時間も試行した後、解決しました。問題は、cron に画面アクセスがないことです。

解決策はこれだ

  1. SIPを閉じます。

Macを再起動し、cmd+rを押してリカバリモードに入り、ターミナル入力を開いてcsrutil disable、もう一度再起動します。

  1. TCC に書き込み権限を付与する

sudo chmod 664 /Library/Application\ Support/com.apple.TCC

  1. cron と screencapture に screencapure 権限を付与する
sudo sqlite3 "/Library/Application Support/com.apple.TCC/TCC.db" 'insert into access values ("kTCCServiceScreenCapture", "/usr/sbin/cron", 1, 1, 1, "", "", "", "UNUSED", "", 0,"")'

sudo sqlite3 "/Library/Application Support/com.apple.TCC/TCC.db" 'insert into access values ("kTCCServiceScreenCapture", "/usr/sbin/screencapture", 1, 1, 1, "", "", "", "UNUSED", "", 0,"")'
  1. SIPを再度有効にする

Macを再起動し、cmd+rを押してリカバリモードに入り、ターミナル入力を開いてcsrutil enable、もう一度再起動します。

関連情報