2番目のアカウント(管理者アカウント)と保護者による制限を使用してこれを達成しようとしましたが、これは不可能なようです。
これに役立つダウンロード可能なプログラムがいくつかあることを知っています(たとえば、冷たいトルコ)。しかし、macOSですでに利用可能なツールのみを使用してこれを実行できれば、はるかに簡単です。
2番目のアカウント(管理者アカウント)と保護者による制限を使用してこれを達成しようとしましたが、これは不可能なようです。
これに役立つダウンロード可能なプログラムがいくつかあることを知っています(たとえば、冷たいトルコ)。しかし、macOSですでに利用可能なツールのみを使用してこれを実行できれば、はるかに簡単です。
回答:
これは、次の2つの組み込みツールを使用して実行できます。
Gatekeeperを使用すると、アプリをブロック/有効化できる「ルール」を作成できます。あなたの例を使用して、金曜日にのみ実行できるアプリのリストを作成できます。
spctl --add --label "FridayApps" /Applications/SomeApp.app
これの利点は、同じラベルを持つ複数のアプリを追加し、1つのコマンドでそれらを有効/無効にできることです:
sudo spctl --disable --label "FridayApps" <---- For Saturday thru Thursday
sudo spctl --enable --label "FridayApps" <---- For Friday
このためには、アプリを有効/無効にする簡単なスクリプトが必要になります。また、これをデーモンとして実行する必要があり(sudo
権限が必要)、に存在する必要があり/Library/LaunchDaemons
ます。
私は、命名規則を使用com.user.FridayApps.plist
してFridayApp.sh
スクリプトの。
Bashスクリプト:
#!/bin/bash
DOW=$(date +%u) # Sets the Day of Week; 5 = Friday
TOD=$(date +%T) # Sets the time of Day
start="12:00:00" # Sets start time
end="23:59:00" # Sets end time
if [ $DOW -eq 5 ]
then
if [[ "$TOD" > "${start}" && "$TOD" < "${end}" ]]
then
/usr/sbin/spctl --enable --label "FridayApps"
fi
else
/usr/sbin/spctl --disable --label "FridayApps"
fi
発売 .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>com.user.FridayApps</string>
<key>ProgramArguments</key>
<array>
<string>/User/MyName/script/location/FridayApps.sh</string>
</array>
<key>StartCalendarInterval</key>
<!-- Weekdays are 1 - 5; Sunday is 0 and 7 -->
<array>
<dict>
<key>Weekday</key>
<integer>5</integer>
<key>Hour</key>
<integer>12</integer>
<key>Minute</key>
<integer>01</integer>
</dict>
<dict>
<key>Weekday</key>
<integer>6</integer>
<key>Hour</key>
<integer>00</integer>
<key>Minute</key>
<integer>00</integer>
</dict>
</array>
</dict>
<key>RunAtLoad</key>
<true/>
</plist>
##Load the `.plist`
sudo launchctl load com.user.FridayApps.plist
ここで何が起こっているのかは2つです。
launchd
スクリプトを2回実行しています。一度実行するとオフになります次のチュートリアルでは、次のことを行います。
スクリプトエディタでこれを開き、としてエクスポート読み取り専用の アプリケーションと確認して、ランハンドラが後に開いたままになっていません
エクスポート後、この ガイドに従って、ドックに表示されないようにします。
# Block Apps Based on Day By Josh Brown
# Last Modified: Aug 23 2018
on run
if checkDay("Friday") then
do shell script "sudo profiles remove -forced -identifier com.company.macos.blockapps"
else
do shell script "sudo profiles install forced -path /path/to/the.mobileconfig"
end if
end run
on checkDay(myDay)
set currentDay to weekday of (get current date)
if (currentDay as string) is (myDay as string) then
return true
else
return false
end if
end checkDay
つかいます
<key>pathBlackList</key>
<array>
<string>/path/to/an.app</string>
<string>/path/to/asecond.app</string>
</array>
ブロックするアプリを制御します。
以下を拡張子付きのファイルに保存します .mobileconfig
<?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>PayloadIdentifier</key>
<string>com.company.macos.blockapps</string>
<key>PayloadRemovalDisallowed</key>
<true/>
<key>PayloadScope</key>
<string>System</string>
<key>PayloadType</key>
<string>Configuration</string>
<key>PayloadUUID</key>
<string>9c24d6b3-6233-4a08-a48d-9068f4f76cf0</string>
<key>PayloadOrganization</key>
<string>Company Name</string>
<key>PayloadVersion</key>
<integer>1</integer>
<key>PayloadDisplayName</key>
<string>Block Apps In User Folder</string>
<key>PayloadContent</key>
<array>
<dict>
<key>PayloadType</key>
<string>com.apple.applicationaccess.new</string>
<key>PayloadVersion</key>
<integer>1</integer>
<key>PayloadIdentifier</key>
<string>MCXToProfile.9c24d6b3-6233-4a08-a48d-9068f4f76cf0.alacarte.customsettings.2476221c-1870-4f3e-8c52-52386029c4cf</string>
<key>PayloadEnabled</key>
<true/>
<key>PayloadUUID</key>
<string>2476221c-1870-4f3e-8c52-52386029c4cf</string>
<key>PayloadDisplayName</key>
<string>Blocks all apps in the ~/ directory./string>
<key>familyControlsEnabled</key>
<true/>
<key>pathBlackList</key>
<array>
<string>/path/to/an.app</string>
<string>/path/to/asecond.app</string>
</array>
</dict>
</array>
</dict>
</plist>
注:これを行うには、管理者である必要があります。
次のファイルを保存します /Library/LaunchDaemons/
<?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>com.PlzUpvoteMy.answer</string>
<key>ProgramArguments</key>
<array>
<string>/usr/bin/open</string>
<string>-W</string>
<string>**/path/to/application.app**</string>
</array>
<key>RunAtLoad</key>
<true/>
<key>StartCalendarInterval</key>
<!--- Creds to @Allan for Calendar Interval -->
<!-- Weekdays are 1 - 5; Sunday is 0 and 7 -->
<array>
<dict>
<key>Weekday</key>
<integer>5</integer>
<key>Hour</key>
<integer>12</integer>
<key>Minute</key>
<integer>01</integer>
</dict>
<dict>
<key>Weekday</key>
<integer>6</integer>
<key>Hour</key>
<integer>00</integer>
<key>Minute</key>
<integer>00</integer>
</dict>
</array>
<key>UserName</key>
<string>**UserToBlock**</string>
</dict>
</plist>
次のコマンドで許可を変更します。
sudo chown root:wheel /Library/LaunchDaemons/com.MyName.plist
注:これを行うには、管理者である必要があります。
デーモンを起動するには、次のコマンドを使用します。
sudo launchctl load /Library/LaunchDaemons/com.MyName.plist
プログラムは5秒ごとにアプリをスキャンし、実行中の場合は閉じます。
デーモンを停止するには、このコマンドを使用します
sudo launchctl unload /Library/LaunchDaemons/com.MyName.plist