BOX

[BOX]BOXで共有したPDFに注釈作業を共同で行う

BOX(クラウドストレージ)で共有したPDFに
documentcloud.adobe.comのintegrationモードで共有して
コメントの入力作業を共同で行う

前提条件 
1:全員にBOXアカウントがある事 個人アカウントは無料
2:全員にAdobeIDがある事
(両方とも無料のアカウントでOK)

事前準備
1:BOXにログイン
2:統合アプリAdobe Acrobat for Boxを適応
3:PDFのデフォルトをAcrobatに変更
4:Acrobat.comにAdobeIDでログインしておく

処理(共有側 PDFの所有者側)
1:共有用にフォルダを作成する
2:共有用のフォルダに共同作業者(コラボレーター)を編集権限で追加
3:共有用して注釈処理をしたいPDFを対象のフォルダにアップロード
4:アップロードしたPDFを編集権限で共有




前提条件 
1:全員にBOXアカウントがある事
個人アカウントは無料

2:全員にAdobeIDがある事
個人アカウントの無料版でもOK
202411210136401_1022x760



事前準備(対象者全員)
1:BOXにログイン
BOXのアカウント(無料版でOK)を利用して
BOXにログインしておく

2:統合アプリAdobe Acrobat for Boxを適応
Adobe Acrobat for Box
BOXのPDFをAcrobat.comに渡して処理するためのAPP
202411210138331_1196x720

202411210142221_1816x766

3:PDFのデフォルトをAcrobatに変更
BOXのアカウント設定でPDFをAdobe Acrobatに変更しておく
202411210144101_1812x614

4:Acrobat.comにAdobeIDでログインしておく
acrobat.adobe.comへの
ログインを済ませておいた方が後でトラブルが出にくいです
202411210146181_1384x258



処理(共有側 PDFの所有者側)

1:共有用にフォルダを作成する
202411210148491_716x398

2:共有用のフォルダに共同作業者(コラボレーター)を編集権限で追加
202411210149311_932x844

3:共有用して注釈処理をしたいPDFを対象のフォルダにアップロード
202411210151281_1880x5282

4:アップロードしたPDFを編集権限で共有
202411210151281_1880x528_20241121015301

どの方法にするにしても
『編集者権限』でコラボレーターとして招待する必要があります
202411210155461_1748x1302



あとは Adobe Acrobatで開くを実行すれば
202411210158451_2326x452

202411210158561_1432x9402

BOXのクラウドストレージにあるPDFを
Acrobat.comの機能を使って注釈入れたりできます
202411210159211_2302x772

|

[BOX]バージョンチェッカーJSONv3 (Autoupdate5.json)


AppleScript サンプルコード

【スクリプトエディタで開く】 |

AppleScript サンプルソース(参考)
行番号ソース
001#!/usr/bin/env osascript
002----+----1----+----2----+-----3----+----4----+----5----+----6----+----7
003(*
004com.cocolog-nifty.quicktimer.icefloe
005Autoupdate5.json 対応
006
007*)
008#
009----+----1----+----2----+-----3----+----4----+----5----+----6----+----7
010use AppleScript version "2.8"
011use framework "Foundation"
012use framework "UniformTypeIdentifiers"
013use framework "AppKit"
014use scripting additions
015property refMe : a reference to current application
016
017###アプリケーションのバンドルID
018set strBundleID to "com.box.desktop"
019
020set strURL to "https://cdn07.boxcdn.net/Autoupdate5.json" as text
021
022set coidURLStr to refMe's NSString's stringWithString:(strURL)
023set ocidURL to refMe's NSURL's URLWithString:(coidURLStr)
024
025################################################
026###### URLRequest部分
027################################################
028set ocidURLRequest to refMe's NSMutableURLRequest's alloc()'s init()
029ocidURLRequest's setHTTPMethod:"GET"
030ocidURLRequest's setURL:(ocidURL)
031ocidURLRequest's addValue:"application/json" forHTTPHeaderField:"Content-Type"
032###ポストするデータは空
033ocidURLRequest's setHTTPBody:(missing value)
034
035################################################
036###### データ取得
037################################################
038set ocidServerResponse to refMe's NSURLConnection's sendSynchronousRequest:(ocidURLRequest) returningResponse:(missing value) |error| :(reference)
039###取得
040set coidReadData to (item 1 of ocidServerResponse)
041##NSJSONSerialization's
042set listJSONSerialization to (refMe's NSJSONSerialization's JSONObjectWithData:(coidReadData) options:(refMe's NSJSONReadingMutableContainers) |error| :(reference))
043set ocidJsonData to item 1 of listJSONSerialization
044##NSDictionary's
045set ocidJsonDict to refMe's NSDictionary's alloc()'s initWithDictionary:(ocidJsonData)
046#
047set ocidOutStringString to refMe's NSMutableString's alloc()'s initWithCapacity:(0)
048
049################################################
050###### データ精査
051################################################
052set ocidMacDict to (ocidJsonDict's objectForKey:("mac"))
053set ocidMacEapDict to ocidMacDict's objectForKey:("eap")
054set ocidMacEapVer to (ocidMacEapDict's valueForKey:("version"))
055set ocidMacEapURL to (ocidMacEapDict's valueForKey:("download-url"))
056#
057set ocidAllKeys to ocidMacDict's allKeys()
058#
059repeat with itemKey in ocidAllKeys
060  set ocidSubDict to (ocidMacDict's objectForKey:(itemKey))
061  set ocidMacVer to (ocidSubDict's valueForKey:("version"))
062  set ocidMacURL to (ocidSubDict's valueForKey:("download-url"))
063  (ocidOutStringString's appendString:(itemKey))
064  (ocidOutStringString's appendString:("\n"))
065  (ocidOutStringString's appendString:(ocidMacVer))
066  (ocidOutStringString's appendString:("\n"))
067  (ocidOutStringString's appendString:(ocidMacURL))
068  (ocidOutStringString's appendString:("\n"))
069end repeat
070
071
072################################################
073###### データ精査
074################################################
075set ocidMacMinDict to (ocidJsonDict's objectForKey:("mac_min"))
076##
077set ocidMacMinVer to (ocidMacMinDict's valueForKey:("version"))
078set ocidMacMinURL to (ocidMacMinDict's valueForKey:("download-url"))
079(ocidOutStringString's appendString:("mac_min"))
080(ocidOutStringString's appendString:("\n"))
081(ocidOutStringString's appendString:(ocidMacMinVer))
082(ocidOutStringString's appendString:("\n"))
083(ocidOutStringString's appendString:(ocidMacMinURL))
084(ocidOutStringString's appendString:("\n"))
085
086
087set strURL to "https://cdn07.boxcdn.net/Autoupdate4.json" as text
088
089set coidURLStr to refMe's NSString's stringWithString:(strURL)
090set ocidURL to refMe's NSURL's URLWithString:(coidURLStr)
091
092################################################
093###### URLRequest部分
094################################################
095set ocidURLRequest to refMe's NSMutableURLRequest's alloc()'s init()
096ocidURLRequest's setHTTPMethod:"GET"
097ocidURLRequest's setURL:(ocidURL)
098ocidURLRequest's addValue:"application/json" forHTTPHeaderField:"Content-Type"
099###ポストするデータは空
100ocidURLRequest's setHTTPBody:(missing value)
101
102################################################
103###### データ取得
104################################################
105set ocidServerResponse to refMe's NSURLConnection's sendSynchronousRequest:(ocidURLRequest) returningResponse:(missing value) |error| :(reference)
106###取得
107set coidReadData to (item 1 of ocidServerResponse)
108##NSJSONSerialization's
109set listJSONSerialization to (refMe's NSJSONSerialization's JSONObjectWithData:(coidReadData) options:(refMe's NSJSONReadingMutableContainers) |error| :(reference))
110set ocidJsonData to item 1 of listJSONSerialization
111##NSDictionary's
112set ocidJsonDict to refMe's NSDictionary's alloc()'s initWithDictionary:(ocidJsonData)
113
114################################################
115###### データ精査
116################################################
117set ocidMacDict to (ocidJsonDict's objectForKey:("mac"))
118#
119set ocidAllKeys to ocidMacDict's allKeys()
120#
121repeat with itemKey in ocidAllKeys
122  set ocidSubDict to (ocidMacDict's objectForKey:(itemKey))
123  set ocidMacVer to (ocidSubDict's valueForKey:("version"))
124  set ocidMacURL to (ocidSubDict's valueForKey:("download-url"))
125  (ocidOutStringString's appendString:(itemKey))
126  (ocidOutStringString's appendString:("\n"))
127  (ocidOutStringString's appendString:(ocidMacVer))
128  (ocidOutStringString's appendString:("\n"))
129  (ocidOutStringString's appendString:(ocidMacURL))
130  (ocidOutStringString's appendString:("\n"))
131end repeat
132
133
134################################################
135###### データ精査
136################################################
137set ocidMacMinDict to (ocidJsonDict's objectForKey:("mac_min"))
138##
139set ocidMacMinVer to (ocidMacMinDict's valueForKey:("version"))
140set ocidMacMinURL to (ocidMacMinDict's valueForKey:("download-url"))
141(ocidOutStringString's appendString:("mac_min"))
142(ocidOutStringString's appendString:("\n"))
143(ocidOutStringString's appendString:(ocidMacMinVer))
144(ocidOutStringString's appendString:("\n"))
145(ocidOutStringString's appendString:(ocidMacMinURL))
146(ocidOutStringString's appendString:("\n"))
147
148
149################################################
150###### インストール済みのパージョン
151################################################
152set appSharedWorkspace to refMe's NSWorkspace's sharedWorkspace()
153##バンドルからアプリケーションのURLを取得
154set ocidAppBundle to (refMe's NSBundle's bundleWithIdentifier:(strBundleID))
155if ocidAppBundle ≠ (missing value) then
156  set ocidAppPathURL to ocidAppBundle's bundleURL()
157else if ocidAppBundle = (missing value) then
158  set ocidAppPathURL to (appSharedWorkspace's URLForApplicationWithBundleIdentifier:(strBundleID))
159end if
160##予備(アプリケーションのURL)
161if ocidAppPathURL = (missing value) then
162  tell application "Finder"
163    try
164      set aliasAppApth to (application file id strBundleID) as alias
165      set strAppPath to POSIX path of aliasAppApth as text
166      set strAppPathStr to refMe's NSString's stringWithString:(strAppPath)
167      set strAppPath to strAppPathStr's stringByStandardizingPath()
168      set ocidAppPathURL to refMe's NSURL's alloc()'s initFileURLWithPath:(strAppPath) isDirectory:true
169    on error
170      return "アプリケーションが見つかりませんでした"
171    end try
172  end tell
173end if
174set ocidFilePathURL to ocidAppPathURL's URLByAppendingPathComponent:("Contents/Info.plist")
175#####PLISTの内容を読み込んで
176set ocidPlistDict to refMe's NSMutableDictionary's alloc()'s initWithCapacity:0
177set listReadPlistData to refMe's NSMutableDictionary's dictionaryWithContentsOfURL:ocidFilePathURL  |error| :(reference)
178set ocidPlistDict to item 1 of listReadPlistData
179set ocidCfbundleversionPlist to ocidPlistDict's valueForKey:"CFBundleVersion"
180
181
182################################################
183###### チェック
184################################################
185set strCfbundleversionJson to ocidMacEapVer as text
186set strCfbundleversionPlist to ocidCfbundleversionPlist as text
187#
188if strCfbundleversionJson is strCfbundleversionPlist then
189  set strTitle to ("最新版を利用中です") as text
190  set strCom to ("最新版を利用中です\r" & strCfbundleversionJson & "\rEAPは早期リリースです") as text
191  set strMes to ocidOutStringString as text
192else
193  set strTitle to ("アップデートがあります:" & strCfbundleversionJson) as text
194  set strCom to ("アップデートがあります\r最新:" & strCfbundleversionJson & "\r使用中:" & strCfbundleversionPlist) as text
195  set strMes to ocidOutStringString as text
196end if
197
198################################################
199###### ダイアログ
200################################################
201set appFileManager to refMe's NSFileManager's defaultManager()
202
203####ダイアログに指定アプリのアイコンを表示する
204###アイコン名をPLISTから取得
205set strIconFileName to (ocidPlistDict's valueForKey:("CFBundleIconFile")) as text
206###ICONのURLにして
207set strPath to ("Contents/Resources/" & strIconFileName) as text
208set ocidIconFilePathURL to ocidAppPathURL's URLByAppendingPathComponent:(strPath) isDirectory:false
209###拡張子の有無チェック
210set strExtensionName to (ocidIconFilePathURL's pathExtension()) as text
211if strExtensionName is "" then
212  set ocidIconFilePathURL to ocidIconFilePathURL's URLByAppendingPathExtension:"icns"
213end if
214##-->これがアイコンパス
215log ocidIconFilePathURL's absoluteString() as text
216###ICONファイルが実際にあるか?チェック
217set boolExists to appFileManager's fileExistsAtPath:(ocidIconFilePathURL's |path|)
218###ICONがみつかない時用にデフォルトを用意する
219if boolExists is false then
220  set aliasIconPath to POSIX file "/System/Library/CoreServices/CoreTypes.bundle/Contents/Resources/AlertNoteIcon.icns"
221else
222  set aliasIconPath to ocidIconFilePathURL's absoluteURL() as alias
223  set strIconPath to ocidIconFilePathURL's |path|() as text
224end if
225
226set recordResult to (display dialog strCom with title strTitle default answer strMes buttons {"クリップボードにコピー", "終了", "ダウンロード"} default button "ダウンロード" cancel button "終了" giving up after 20 with icon aliasIconPath without hidden answer)
227
228if button returned of recordResult is "ダウンロード" then
229  tell application "Finder"
230    open location (ocidMacEapURL as text)
231  end tell
232end if
233if button returned of recordResult is "クリップボードにコピー" then
234  try
235    set strText to text returned of recordResult as text
236    ####ペーストボード宣言
237    set appPasteboard to refMe's NSPasteboard's generalPasteboard()
238    set ocidText to (refMe's NSString's stringWithString:(strText))
239    appPasteboard's clearContents()
240    appPasteboard's setString:(ocidText) forType:(refMe's NSPasteboardTypeString)
241  on error
242    tell application "Finder"
243      set the clipboard to strTitle as text
244    end tell
245  end try
246end if
AppleScriptで生成しました

|

[BOX]バージョンチェッカーJSONv2


【スクリプトエディタで開く】|

#!/usr/bin/env osascript
----+----1----+----2----+-----3----+----4----+----5----+----6----+----7
#
(*
com.cocolog-nifty.quicktimer.icefloe
*)
#
----+----1----+----2----+-----3----+----4----+----5----+----6----+----7
use AppleScript version "2.8"
use framework "Foundation"
use framework "UniformTypeIdentifiers"
use framework "AppKit"
use scripting additions
property refMe : a reference to current application

###アプリケーションのバンドルID
set strBundleID to "com.box.desktop"

set strURL to "https://cdn07.boxcdn.net/Autoupdate4.json" as text

set coidURLStr to refMe's NSString's stringWithString:(strURL)
set ocidURL to refMe's NSURL's URLWithString:(coidURLStr)

################################################
###### URLRequest部分
################################################
set ocidURLRequest to refMe's NSMutableURLRequest's alloc()'s init()
ocidURLRequest's setHTTPMethod:"GET"
ocidURLRequest's setURL:(ocidURL)
ocidURLRequest's addValue:"application/json" forHTTPHeaderField:"Content-Type"
###ポストするデータは空
ocidURLRequest's setHTTPBody:(missing value)

################################################
###### データ取得
################################################
set ocidServerResponse to refMe's NSURLConnection's sendSynchronousRequest:(ocidURLRequest) returningResponse:(missing value) |error|:(reference)
###取得
set coidReadData to (item 1 of ocidServerResponse)
##NSJSONSerialization's
set listJSONSerialization to (refMe's NSJSONSerialization's JSONObjectWithData:(coidReadData) options:(refMe's NSJSONReadingMutableContainers) |error|:(reference))
set ocidJsonData to item 1 of listJSONSerialization
##NSDictionary's
set ocidJsonDict to refMe's NSDictionary's alloc()'s initWithDictionary:(ocidJsonData)
################################################
###### データ精査
################################################
set ocidMacMinDict to (ocidJsonDict's objectForKey:("mac_min"))
##
set ocidMacMinVer to (ocidMacMinDict's valueForKey:("version"))
set ocidMacMinURL to (ocidMacMinDict's valueForKey:("download-url"))
##
set ocidMacDict to (ocidJsonDict's objectForKey:("mac"))
set ocidEapDict to ocidMacDict's objectForKey:("eap")
set ocidEapVer to (ocidEapDict's valueForKey:("version"))
set ocidEapURL to (ocidEapDict's valueForKey:("download-url"))



################################################
###### インストール済みのパージョン
################################################
set appSharedWorkspace to refMe's NSWorkspace's sharedWorkspace()
##バンドルからアプリケーションのURLを取得
set ocidAppBundle to (refMe's NSBundle's bundleWithIdentifier:(strBundleID))
if ocidAppBundle ≠ (missing value) then
  set ocidAppPathURL to ocidAppBundle's bundleURL()
else if ocidAppBundle = (missing value) then
  set ocidAppPathURL to (appSharedWorkspace's URLForApplicationWithBundleIdentifier:(strBundleID))
end if
##予備(アプリケーションのURL)
if ocidAppPathURL = (missing value) then
  tell application "Finder"
    try
      set aliasAppApth to (application file id strBundleID) as alias
      set strAppPath to POSIX path of aliasAppApth as text
      set strAppPathStr to refMe's NSString's stringWithString:(strAppPath)
      set strAppPath to strAppPathStr's stringByStandardizingPath()
      set ocidAppPathURL to refMe's NSURL's alloc()'s initFileURLWithPath:(strAppPath) isDirectory:true
    on error
return "アプリケーションが見つかりませんでした"
    end try
  end tell
end if
set ocidFilePathURL to ocidAppPathURL's URLByAppendingPathComponent:("Contents/Info.plist")
#####PLISTの内容を読み込んで
set ocidPlistDict to refMe's NSMutableDictionary's alloc()'s initWithCapacity:0
set listReadPlistData to refMe's NSMutableDictionary's dictionaryWithContentsOfURL:ocidFilePathURL |error|:(reference)
set ocidPlistDict to item 1 of listReadPlistData
set ocidCfbundleversionPlist to ocidPlistDict's valueForKey:"CFBundleVersion"


################################################
###### チェック
################################################
set strCfbundleversionJson to ocidMacMinVer as text
set strCfbundleversionPlist to ocidCfbundleversionPlist as text
log strCfbundleversionJson
log strCfbundleversionPlist

if strCfbundleversionJson is strCfbundleversionPlist then
  set strTitle to ("最新版を利用中です") as text
  set strCom to ("最新版を利用中です\r" & strCfbundleversionJson & "\rEAPは早期リリースです") as text
  set strMes to (strTitle & "\rMIN:" & strCfbundleversionJson & "\rEAP:" & (ocidEapVer as text) & "\rPLIST:" & strCfbundleversionPlist & "\rLink:" & (ocidMacMinURL as text) & "\rEAP:" & (ocidEapURL as text)) as text
else
  set strTitle to ("アップデートがあります:" & strCfbundleversionJson) as text
  set strCom to ("アップデートがあります\r最新:" & strCfbundleversionJson & "\r使用中:" & strCfbundleversionPlist) as text
  set strMes to ("最新版ダウンロード:" & (ocidMacMinURL as text) & "\rEAP:" & (ocidEapURL as text)) as text
end if

################################################
###### ダイアログ
################################################
set appFileManager to refMe's NSFileManager's defaultManager()

####ダイアログに指定アプリのアイコンを表示する
###アイコン名をPLISTから取得
set strIconFileName to (ocidPlistDict's valueForKey:("CFBundleIconFile")) as text
###ICONのURLにして
set strPath to ("Contents/Resources/" & strIconFileName) as text
set ocidIconFilePathURL to ocidAppPathURL's URLByAppendingPathComponent:(strPath) isDirectory:false
###拡張子の有無チェック
set strExtensionName to (ocidIconFilePathURL's pathExtension()) as text
if strExtensionName is "" then
  set ocidIconFilePathURL to ocidIconFilePathURL's URLByAppendingPathExtension:"icns"
end if
##-->これがアイコンパス
log ocidIconFilePathURL's absoluteString() as text
###ICONファイルが実際にあるか?チェック
set boolExists to appFileManager's fileExistsAtPath:(ocidIconFilePathURL's |path|)
###ICONがみつかない時用にデフォルトを用意する
if boolExists is false then
  set aliasIconPath to POSIX file "/System/Library/CoreServices/CoreTypes.bundle/Contents/Resources/AlertNoteIcon.icns"
else
  set aliasIconPath to ocidIconFilePathURL's absoluteURL() as alias
  set strIconPath to ocidIconFilePathURL's |path|() as text
end if

set recordResult to (display dialog strCom with title strTitle default answer strMes buttons {"クリップボードにコピー", "終了", "ダウンロード"} default button "ダウンロード" cancel button "終了" giving up after 20 with icon aliasIconPath without hidden answer)

if button returned of recordResult is "ダウンロード" then
  tell application "Finder"
    open location (ocidMacMinURL as text)
  end tell
end if
if button returned of recordResult is "クリップボードにコピー" then
  try
    set strText to text returned of recordResult as text
    ####ペーストボード宣言
    set appPasteboard to refMe's NSPasteboard's generalPasteboard()
    set ocidText to (refMe's NSString's stringWithString:(strText))
appPasteboard's clearContents()
appPasteboard's setString:(ocidText) forType:(refMe's NSPasteboardTypeString)
  on error
    tell application "Finder"
      set the clipboard to strTitle as text
    end tell
  end try
end if


|

[Bash]新しいバージョンのBox Driveに、古いバージョンが上書きインストールされました。

Screen-20230721-14602
EAPアクセス用のPKGをダウンロードしてインストールする事でエラーを解決します

【スクリプトエディタで開く】|

#!/bin/bash
#com.cocolog-nifty.quicktimer.icefloe
########################################
###管理者インストールしているか?チェック
USER_WHOAMI=$(/usr/bin/whoami)
/bin/echo "実行したユーザーは:$USER_WHOAMI"
if [ "$USER_WHOAMI" != "root" ]; then
  /bin/echo "このスクリプトを実行するには管理者権限が必要です。"
  /bin/echo "sudo で実行してください"
  ### path to me
  SCRIPT_PATH="${BASH_SOURCE[0]}"
  /bin/echo "/usr/bin/sudo \"$SCRIPT_PATH\""
  /bin/echo "↑を実行してください"
  exit 1
else
  ###実行しているユーザー名
  SUDO_USER=$(/bin/echo "$HOME" | /usr/bin/awk -F'/' '{print $NF}')
  /bin/echo "実行ユーザー:" "$SUDO_USER"
fi

##########################################
##JSON ダウンロード
STR_JSON_FILE_NAME="Autoupdate3.json"
STR_JSON_URL="https://cdn07.boxcdn.net/Autoupdate3.json"
##起動時に削除される項目
LOCAL_TMP_DIR=$(/usr/bin/sudo -u "$SUDO_USER" /usr/bin/mktemp -d)
/bin/echo "TMPDIR:" "$LOCAL_TMP_DIR"
##ダウンロード
  if ! /usr/bin/curl -L -o "$LOCAL_TMP_DIR/$STR_JSON_FILE_NAME" "$STR_JSON_URL" --connect-timeout 20; then
    /bin/echo "ファイルのダウンロードに失敗しました HTTP1.1で再トライします"
    if ! /usr/bin/curl -L -o "$LOCAL_TMP_DIR/$STR_JSON_FILE_NAME" "$STR_JSON_URL" --http1.1 --connect-timeout 20; then
      /bin/echo "ファイルのダウンロードに失敗しました"
      exit 1
    fi
  fi
/bin/echo "JSONダウンロードOK"
/bin/sleep 1
##########################################
##PLISTに変換
STR_PLIST_FILE_NAME="Autoupdate3.plist"
/usr/bin/plutil -convert xml1 "$LOCAL_TMP_DIR/$STR_JSON_FILE_NAME" -o "$LOCAL_TMP_DIR/$STR_PLIST_FILE_NAME"
/bin/echo "PLIST変換OK"
/bin/sleep 1
##########################################
## ダウンロードURLとバージョン(今回はバージョンチェックはせずEAPアーリーアクセスを利用する)
STR_PKG_URL_EAP=$(/usr/libexec/PlistBuddy -c "Print:mac:eap:download-url" "$LOCAL_TMP_DIR/$STR_PLIST_FILE_NAME")
/bin/echo "EAP:" "$STR_PKG_URL_EAP"
STR_PKG_VER_EAP=$(/usr/libexec/PlistBuddy -c "Print:mac:eap:version" "$LOCAL_TMP_DIR/$STR_PLIST_FILE_NAME")
/bin/echo "EAPv:" "$STR_PKG_VER_EAP"
STR_PKG_URL_RO=$(/usr/libexec/PlistBuddy -c "Print:mac:free:rollout-url" "$LOCAL_TMP_DIR/$STR_PLIST_FILE_NAME")
/bin/echo "Rollout:" "$STR_PKG_URL_RO"
STR_PKG_VER_RO=$(/usr/libexec/PlistBuddy -c "Print:mac:free:rollout-version" "$LOCAL_TMP_DIR/$STR_PLIST_FILE_NAME")
/bin/echo "Rolloutv:" "$STR_PKG_VER_RO"

#################################
###CPUタイプでの分岐
ARCHITEC=$(/usr/bin/arch)
if [ "$ARCHITEC" == "arm64" ]; then
  PKG_FILE_NAME="BoxDrive.pkg"
  STR_URL=$STR_PKG_URL_EAP
else
  PKG_FILE_NAME="BoxDrive.pkg"
  STR_URL=$STR_PKG_URL_EAP
fi
/bin/echo "$STR_URL"
#################################
##ダウンロード
LOCAL_TMP_DIR=$(/usr/bin/sudo -u "$SUDO_USER" /usr/bin/mktemp -d)
/bin/echo "TMPDIR:" "$LOCAL_TMP_DIR"

if [ "$ARCHITEC" == "arm64" ]; then
  /bin/echo "Running on $ARCHITEC"
  ###ダウンロード
  if ! /usr/bin/curl -L -o "$LOCAL_TMP_DIR/$PKG_FILE_NAME" "$STR_URL" --connect-timeout 20; then
    /bin/echo "ファイルのダウンロードに失敗しました HTTP1.1で再トライします"
    if ! /usr/bin/curl -L -o "$LOCAL_TMP_DIR/$PKG_FILE_NAME" "$STR_URL" --http1.1 --connect-timeout 20; then
      /bin/echo "ファイルのダウンロードに失敗しました"
      exit 1
    fi
  fi
else
  /bin/echo "Running on $ARCHITEC"
  ###ダウンロード
  if ! /usr/bin/curl -L -o "$LOCAL_TMP_DIR/$PKG_FILE_NAME" "$STR_URL" --connect-timeout 20; then
    /bin/echo "ファイルのダウンロードに失敗しました HTTP1.1で再トライします"
    if ! /usr/bin/curl -L -o "$LOCAL_TMP_DIR/$PKG_FILE_NAME" "$STR_URL" --http1.1 --connect-timeout 20; then
      /bin/echo "ファイルのダウンロードに失敗しました"
      exit 1
    fi
  fi
fi
#################################
###プロセス終了
STR_APP_NAME="Box.app"
###
STR_PLIST_PATH="/Applications/$STR_APP_NAME/Contents/Info.plist"
STR_BUNDLE_ID=$(/usr/bin/defaults read "$STR_PLIST_PATH" CFBundleIdentifier)
/bin/echo "STR_BUNDLE_ID" "$STR_BUNDLE_ID"
##念の為 KILLもする
/usr/bin/sudo /usr/bin/killall "Box" 2>/dev/null
/usr/bin/sudo /usr/bin/killall "Box Autoupdater" 2>/dev/null
/usr/bin/sudo /usr/bin/killall "Box Edit" 2>/dev/null
/usr/bin/sudo /usr/bin/killall "Box Edit Finder Extension" 2>/dev/null
/usr/bin/sudo /usr/bin/killall "Box Helper" 2>/dev/null
/usr/bin/sudo /usr/bin/killall "Box Local Com Server" 2>/dev/null
/usr/bin/sudo /usr/bin/killall "Box UI" 2>/dev/null
/usr/bin/sudo /bin/echo "アプリケーション終了"
/bin/sleep 2

#################################
### インストール(上書き)を実行する
/usr/bin/sudo /usr/sbin/installer -pkg "$LOCAL_TMP_DIR/$PKG_FILE_NAME" -target / -dumplog -allowUntrusted -lang ja

/bin/echo "処理終了"
exit 0


|

[BOX]便利ツール v2 20230721

ダウンロード - boxtools.zip

|

[BOX]EAPアーリアクセスプロダクトアップデート

新しいバージョンのBox Driveに、古いバージョンが上書きインストールされました。 Screen-20230721-14602
個人用のBOXはアップデートcom.box.desktop.autoupdaterがアーリーアクセスをアップデートした場合
上書きでサイトからダウンロードしたPKGをインストールするとバージョンの違いが発生して起こる
そのため、EAPのパッケージを再インストールする必要が出てくる。

【スクリプトエディタで開く】|

#!/usr/bin/env osascript
----+----1----+----2----+-----3----+----4----+----5----+----6----+----7
#要管理者権限
#com.cocolog-nifty.quicktimer.icefloe
----+----1----+----2----+-----3----+----4----+----5----+----6----+----7
use AppleScript version "2.8"
use framework "Foundation"
use framework "AppKit"
use framework "UniformTypeIdentifiers"
use scripting additions

property refMe : a reference to current application

set strURL to "https://cdn07.boxcdn.net/Autoupdate3.json" as text

set listUTI to {"com.box.desktop", "com.box.desktop.ui", "com.box.desktop.autoupdater", "com.box.desktop.helper", "com.box.Box-Device-Trust", "com.Box.BoxToolsCustomApps", "com.box.Box-Local-Com-Server", "com.Box.Box-Edit"} as list

####先に管理者モードにしておく
set strCommandText to ("/usr/bin/sudo /bin/echo \"処理開始\"") as text
###
do shell script strCommandText with administrator privileges
###戻り値格納用のDICT
set ocidPkgDict to refMe's NSMutableDictionary's alloc()'s initWithCapacity:0
###URL
set ocidURLString to (refMe's NSString's stringWithString:(strURL))
set ocidJsonURL to (refMe's NSURL's alloc()'s initWithString:(ocidURLString))
###JSON読み込み
set ocidOption to refMe's NSDataReadingMappedIfSafe
set listReadData to (refMe's NSData's dataWithContentsOfURL:(ocidJsonURL) options:(ocidOption) |error|:(reference))
set ocidJsonData to (item 1 of listReadData)
###JSON初期化 してレコードに格納
set listJSONSerialization to (refMe's NSJSONSerialization's JSONObjectWithData:(ocidJsonData) options:0 |error|:(reference))
set ocidJsonData to item 1 of listJSONSerialization
##rootのレコード
set ocidReadDict to (refMe's NSDictionary's alloc()'s initWithDictionary:(ocidJsonData))
set ocidMacDict to (ocidReadDict's objectForKey:("mac"))
set ocidEapDict to (ocidMacDict's objectForKey:("eap"))
set ocidPkgURL to (ocidEapDict's valueForKey:("download-url"))
set ocidVersion to (ocidReadDict's valueForKeyPath:("mac.eap.version"))
log ocidVersion as text
log ocidPkgURL as text
(ocidPkgDict's setValue:(ocidPkgURL) forKey:(ocidVersion))
###ダウンロード
set ocidURL to refMe's NSURL's URLWithString:(ocidPkgURL)
###ファイル名
set ocidFileName to ocidURL's lastPathComponent()
####NSDataで
set ocidPkgData to refMe's NSData's dataWithContentsOfURL:(ocidURL)
###保存先 ディレクトリ 起動時の削除される項目
set appFileManager to refMe's NSFileManager's defaultManager()
set ocidTempDirURL to appFileManager's temporaryDirectory()
set ocidUUID to refMe's NSUUID's alloc()'s init()
set ocidUUIDString to ocidUUID's UUIDString
set ocidSaveDirPathURL to ocidTempDirURL's URLByAppendingPathComponent:(ocidUUIDString) isDirectory:true
###フォルダ作って
set appFileManager to refMe's NSFileManager's defaultManager()
set ocidAttrDict to refMe's NSMutableDictionary's alloc()'s initWithCapacity:0
# 777-->511 755-->493 700-->448 766-->502
ocidAttrDict's setValue:(511) forKey:(refMe's NSFilePosixPermissions)
set listBoolMakeDir to appFileManager's createDirectoryAtURL:(ocidSaveDirPathURL) withIntermediateDirectories:true attributes:(ocidAttrDict) |error|:(reference)
###保存パス
set ocidSaveFilePathURL to ocidSaveDirPathURL's URLByAppendingPathComponent:(ocidFileName) isDirectory:false
###保存
set boolDone to ocidPkgData's writeToURL:(ocidSaveFilePathURL) atomically:(true)
###インストール用のパス
set strSaveFilePath to ocidSaveFilePathURL's |path|() as text
###関連プロセス終了
repeat with itemUTI in listUTI
  ###NSRunningApplication
  set ocidRunningApplication to refMe's NSRunningApplication
  ###起動中のすべてのリスト
  set ocidAppArray to (ocidRunningApplication's runningApplicationsWithBundleIdentifier:(itemUTI))
  ###複数起動時も順番に終了
  repeat with itemAppArray in ocidAppArray
itemAppArray's terminate()
  end repeat
end repeat
###通知のタイムラグを考慮して1秒まってから
delay 1
###コマンド整形
set strCommandText to ("/usr/bin/sudo /usr/sbin/installer -dumplog -verbose -pkg \"" & strSaveFilePath & "\" -target / -allowUntrusted -lang ja") as text
###実行
do shell script strCommandText with administrator privileges
###
return "処理終了"

|

[Box Drive]新しいバージョンのBox Driveに、古いバージョンが上書きインストールされました。

新しいバージョンのBox Driveに、古いバージョンが上書きインストールされました。 最新バージョンのBox Driveをインストールしてください。問題が解決しない場合、Boxサポートに連絡してトラブルシューティングを行ってください。
Screen-20230721-14602
こちらが発生した場合の最新EAP版PKGのURLを取得します。

【スクリプトエディタで開く】|

#!/usr/bin/env osascript
----+----1----+----2----+-----3----+----4----+----5----+----6----+----7
#
#com.cocolog-nifty.quicktimer.icefloe
----+----1----+----2----+-----3----+----4----+----5----+----6----+----7
use AppleScript version "2.8"
use framework "Foundation"
use framework "AppKit"
use scripting additions

property refMe : a reference to current application

set listURL to {"https://cdn07.boxcdn.net/Autoupdate.json", "https://cdn07.boxcdn.net/Autoupdate2.json", "https://cdn07.boxcdn.net/Autoupdate3.json", "https://cdn07.boxcdn.net/Autoupdate4.json"} as list

###戻り値格納用のDICT
set ocidPkgDict to refMe's NSMutableDictionary's alloc()'s initWithCapacity:0
repeat with itemURL in listURL
  ###URL
  set strURL to itemURL as text
  set ocidURLString to (refMe's NSString's stringWithString:(strURL))
  set ocidJsonURL to (refMe's NSURL's alloc()'s initWithString:(ocidURLString))
  ###JSON読み込み
  set ocidOption to refMe's NSDataReadingMappedIfSafe
  set listReadData to (refMe's NSData's dataWithContentsOfURL:(ocidJsonURL) options:(ocidOption) |error|:(reference))
  set ocidJsonData to (item 1 of listReadData)
  ###JSON初期化 してレコードに格納
  set listJSONSerialization to (refMe's NSJSONSerialization's JSONObjectWithData:(ocidJsonData) options:0 |error|:(reference))
  set ocidJsonData to item 1 of listJSONSerialization
  ##rootのレコード
  set ocidReadDict to (refMe's NSDictionary's alloc()'s initWithDictionary:(ocidJsonData))
  set ocidMacDict to (ocidReadDict's objectForKey:("mac"))
  set ocidEapDict to (ocidMacDict's objectForKey:("eap"))
  set ocidPkgURL to (ocidEapDict's valueForKey:("download-url")) as text
  set ocidVersion to (ocidReadDict's valueForKeyPath:("mac.eap.version"))
(ocidPkgDict's setValue:(ocidPkgURL) forKey:(ocidVersion))
end repeat
set ocidAllKeys to ocidPkgDict's allKeys()
set ocidAllKeys to (ocidAllKeys's sortedArrayUsingSelector:"localizedStandardCompare:")
set listAllKeys to ocidAllKeys as list
##############################
###ダイアログを前面に出す
tell current application
  set strName to name as text
end tell
###スクリプトメニューから実行したら
if strName is "osascript" then
  tell application "Finder" to activate
else
  tell current application to activate
end if
###
set strTitle to "選んでください" as text
set strPrompt to "ダウンロードするバージョンを選んでください" as text
try
  set listResponse to (choose from list listAllKeys with title strTitle with prompt strPrompt default items (last item of listAllKeys) OK button name "OK" cancel button name "キャンセル" with multiple selections allowed and empty selection allowed) as list
on error
  log "エラーしました"
return "エラーしました"
  error "エラーしました" number -200
end try
if listResponse = {} then
  log "何も選択していない"
  error "何も選択していない"
else if (item 1 of listResponse) is false then
return "キャンセルしました"
  error "キャンセルしました" number -200
else
  set strValue to (ocidPkgDict's valueForKey:(item 1 of listResponse)) as text
end if

##############################
###ダイアログを前面に出す
tell current application
  set strName to name as text
end tell
###スクリプトメニューから実行したら
if strName is "osascript" then
  tell application "Finder" to activate
else
  tell current application to activate
end if

set aliasIconPath to POSIX file "/System/Library/CoreServices/CoreTypes.bundle/Contents/Resources/AlertNoteIcon.icns"
set strMes to ("パッケージURL eap 戻り値です\rURL\r" & strValue) as text
set recordResult to (display dialog strMes with title "URL" default answer strValue buttons {"クリップボードにコピー", "キャンセル", "OK"} default button "OK" giving up after 20 with icon aliasIconPath without hidden answer)
if button returned of recordResult is "クリップボードにコピー" then
  try
    set strText to text returned of recordResult as text
    ####ペーストボード宣言
    set appPasteboard to refMe's NSPasteboard's generalPasteboard()
    set ocidText to (refMe's NSString's stringWithString:(strText))
appPasteboard's clearContents()
appPasteboard's setString:(ocidText) forType:(refMe's NSPasteboardTypeString)
  on error
    tell application "Finder"
      set the clipboard to strTitle as text
    end tell
  end try
end if
###OKだったらサファリでダウンロード
if button returned of recordResult is "OK" then
  tell application "Safari"
    open location strValue
  end tell
end if


|

[BOX]便利ツール

ダウンロード - boxtools.zip


【スクリプトエディタで開く】|

#!/usr/bin/env osascript
----+----1----+----2----+-----3----+----4----+----5----+----6----+----7
#
(*
error number -128
com.cocolog-nifty.quicktimer.icefloe
*)
#
----+----1----+----2----+-----3----+----4----+----5----+----6----+----7
##自分環境がos12なので2.8にしているだけです
use AppleScript version "2.8"
use framework "Foundation"
use framework "Appkit"
use scripting additions

property refMe : a reference to current application

set appFileManager to refMe's NSFileManager's defaultManager()

###ライブラリフォルダ
set ocidUserLibraryPathArray to (appFileManager's URLsForDirectory:(refMe's NSLibraryDirectory) inDomains:(refMe's NSUserDomainMask))
set ocidUserLibraryPathURL to ocidUserLibraryPathArray's firstObject()
###Scripts BOXフォルダ
set ocidBoxFilePathURL to ocidUserLibraryPathURL's URLByAppendingPathComponent:("Scripts/Applications/Box") isDirectory:true
set boolDone to appFileManager's createDirectoryAtURL:(ocidBoxFilePathURL) withIntermediateDirectories:(true) attributes:(missing value) |error|:(reference)
###Scripts BOXUlフォルダ
set ocidBoxUIFilePathURL to ocidUserLibraryPathURL's URLByAppendingPathComponent:("Scripts/Applications/Box UI") isDirectory:true
set boolDone to appFileManager's trashItemAtURL:(ocidBoxUIFilePathURL) resultingItemURL:(missing value) |error|:(reference)
###シンボリックリンク作成
set boolDone to appFileManager's createSymbolicLinkAtURL:(ocidBoxUIFilePathURL) withDestinationURL:(ocidBoxFilePathURL) |error|:(reference)


###BOX WEBLOC
set ocidWeblocFilePathURL to ocidUserLibraryPathURL's URLByAppendingPathComponent:("Scripts/Applications/Box/boxを開く.webloc") isDirectory:false
set strURL to "https://app.box.com/" as text
set strTitle to "BOXを開く" as text
###レコードにして
set recordURL to {|URL|:strURL, title:strTitle} as record
###ディクショナリにして
set ocidDictionary to refMe's NSDictionary's alloc()'s initWithDictionary:(recordURL)
###PLISTにして
set ocidPlistEditDataArray to refMe's NSPropertyListSerialization's dataWithPropertyList:(ocidDictionary) format:(refMe's NSPropertyListXMLFormat_v1_0) options:0 |error|:(reference)
set ocidPlistEditData to item 1 of ocidPlistEditDataArray
####保存
set boolDone to ocidPlistEditData's writeToURL:(ocidWeblocFilePathURL) options:0 |error|:(reference)

|

[BOX]BOX TOOL ユーザーインストール

コンソールユーザーのみ実行

【スクリプトエディタで開く】|

#!/bin/bash
#com.cocolog-nifty.quicktimer.icefloe

########################################
##ユーザー
USER_WHOAMI=$(/usr/bin/whoami)
/bin/echo "実行したユーザーは:$USER_WHOAMI"
SUDO_USER=$(/bin/echo "$HOME" | /usr/bin/awk -F'/' '{print $NF}')
/bin/echo "実行ユーザー:" "$SUDO_USER"

USER_TEMP_DIR=$(/usr/bin/mktemp -d)
/bin/echo "ダウンロードディレクトリ:" "$USER_TEMP_DIR"

###BOX TOOLSはユニバーサルなので現時点では同じPKGをインストールする
ARCHITEC=$(/usr/bin/arch)
/bin/echo "CPUの種類チェック: $ARCHITEC"
if [ "$ARCHITEC" == "arm64" ]; then
  if ! /usr/bin/curl -L -o "$USER_TEMP_DIR/BoxToolsInstaller.pkg" 'https://box-installers.s3.amazonaws.com/boxedit/mac/currentrelease/BoxToolsInstaller.pkg' --connect-timeout 20; then
    echo "ファイルのダウンロードに失敗しました"
    exit 1
  fi
else
  if ! /usr/bin/curl -L -o "$USER_TEMP_DIR/BoxToolsInstaller.pkg" 'https://box-installers.s3.amazonaws.com/boxedit/mac/currentrelease/BoxToolsInstaller.pkg' --connect-timeout 20; then
    echo "ファイルのダウンロードに失敗しました"
    exit 1
  fi
fi

/usr/bin/killall -9 "Box Tools Custom Apps"
/usr/bin/killall -9 "Box Local Com Server"
/usr/bin/killall -9 "BoxEditFinderExtension"
/usr/bin/killall -9 "Box Edit"
/usr/bin/killall -9 "Box Device Trust"


/usr/sbin/installer -dumplog -verbose -pkg "$USER_TEMP_DIR/BoxToolsInstaller.pkg" -target CurrentUserHomeDirectory -allowUntrusted -lang ja

##これはインストーラーがやってくれる
# /usr/bin/pluginkit -e use -i com.box.desktop.ui
# /usr/bin/pluginkit -e use -i com.box.desktop.helper
# /usr/bin/pluginkit -e use -i com.box.box-edit
# /usr/bin/pluginkit -e use -i com.box.Box-Local-Com-Server.BoxToolsSafariExtension
# /usr/bin/pluginkit -e use -i com.Box.Box-Edit.BoxEditFinderExtension
# /usr/bin/pluginkit -e use -i com.box.desktop.findersyncext
# /usr/bin/pluginkit -e use -i com.apple.FinderSync

/bin/echo "処理終了しました"

exit 0


|

[bash]BOX TOOLSインストール dmgからのditto


【スクリプトエディタで開く】|

#!/bin/bash
#com.cocolog-nifty.quicktimer.icefloe

########################################
###管理者インストールしているか?チェック
USER_WHOAMI=$(/usr/bin/whoami)
/bin/echo "実行したユーザーは:$USER_WHOAMI"
if [ "$USER_WHOAMI" != "root" ]; then
  /bin/echo "このスクリプトを実行するには管理者権限が必要です。"
  /bin/echo "sudo で実行してください"
  exit 1
else
  ###実行しているユーザー名
  SUDO_USER=$(/bin/echo "$HOME" | /usr/bin/awk -F'/' '{print $NF}')
  /bin/echo "実行ユーザー:" "$SUDO_USER"
fi

########################################
###全ユーザーで使う起動時に削除する項目
/bin/mkdir -p "/private/tmp/TemporaryItems/Trash"
LOCAL_TMP_DIR=$(/usr/bin/mktemp -d "/private/tmp/TemporaryItems/XXXXXXXX")
/bin/chmod -Rf 777 "/private/tmp/TemporaryItems"
/bin/echo "LOCAL_TMP_DIR:CURL:" "$LOCAL_TMP_DIR"
### CPUタイプでの分岐
###BOX TOOLSはユニバーサルなので現時点では同じPKGをインストールする
ARCHITEC=$(/usr/bin/arch)
/bin/echo "Running on $ARCHITEC"
if [ "$ARCHITEC" == "arm64" ]; then
  if ! /usr/bin/curl -L -o "$LOCAL_TMP_DIR/BoxToolsInstaller.dmg" 'https://e3.boxcdn.net/box-installers/boxedit/mac/currentrelease/BoxToolsInstaller.dmg' --connect-timeout 20; then
    echo "ファイルのダウンロードに失敗しました"
    exit 1
  fi
else
  if ! /usr/bin/curl -L -o "$LOCAL_TMP_DIR/BoxToolsInstaller.dmg" 'https://e3.boxcdn.net/box-installers/boxedit/mac/currentrelease/BoxToolsInstaller.dmg' --connect-timeout 20; then
    echo "ファイルのダウンロードに失敗しました"
    exit 1
  fi
fi
##全ユーザー実行可能にしておく
/bin/chmod 755 "$LOCAL_TMP_DIR/BoxToolsInstaller.dmg"

########################################
###アプリケーションの終了
###コンソールユーザーにのみ処理する
CONSOLE_USER=$(/bin/echo "show State:/Users/ConsoleUser" | /usr/sbin/scutil | /usr/bin/awk '/Name :/ { print $3}')
/bin/echo "CONSOLE_USER:$CONSOLE_USER"
if [ -z "$CONSOLE_USER" ]; then
  /bin/echo "コンソールユーザーが無い=電源入れてログインウィンドウ状態"
else
  /usr/bin/sudo -u "$USER_WHOAMI" /usr/bin/killall "Box Tools Custom Apps"
  /usr/bin/sudo -u "$USER_WHOAMI" /usr/bin/killall -9 "Box Local Com Server"
  /usr/bin/sudo -u "$USER_WHOAMI" /usr/bin/killall -9 BoxEditFinderExtension
  /usr/bin/sudo -u "$USER_WHOAMI" /usr/bin/killall -9 "Box Edit"
  /usr/bin/sudo -u "$USER_WHOAMI" /usr/bin/killall -9 "Box Device Trust"
fi
/bin/sleep 2
##念の為 KILLもする
/usr/bin/sudo /usr/bin/killall -9 "Box Tools Custom Apps" 2>/dev/null
/usr/bin/sudo /usr/bin/killall -9 "Box Local Com Server" 2>/dev/null
/usr/bin/sudo /usr/bin/killall -9 BoxEditFinderExtension 2>/dev/null
/usr/bin/sudo /usr/bin/killall -9 "Box Edit" 2>/dev/null
/usr/bin/sudo /usr/bin/killall -9 "Box Device Trust" 2>/dev/null
/bin/echo "CONSOLE_USER:Done Killall"

########################################
###ローカルのユーザーアカウントを取得
TEXT_RESULT=$(/usr/bin/dscl localhost -list /Local/Default/Users PrimaryGroupID | /usr/bin/awk '$2 == 20 { print $1 }')

###リストにする
read -d '\n' -r -a LIST_USER <<<"$TEXT_RESULT"

###リスト内の項目数
NUM_CNT=${#LIST_USER[@]}
/bin/echo "ユーザー数:" "$NUM_CNT"
########################################
##リストの内容を順番に処理
for ITEM_LIST in "${LIST_USER[@]}"; do
  /bin/echo "LIST_USER:MKDIR:" "${ITEM_LIST}"
  ##ライブラリの不可視属性を解除
  /usr/bin/sudo -u "${ITEM_LIST}" /usr/bin/chflags nohidden /Users/"${ITEM_LIST}"/Library
  /usr/bin/sudo -u "${ITEM_LIST}" /usr/bin/SetFile -a v /Users/"${ITEM_LIST}"/Library
  ##ユーザーアプリケーションフォルダを作る
  /usr/bin/sudo -u "${ITEM_LIST}" /bin/mkdir -p "/Users/${ITEM_LIST}/Applications"
  /usr/bin/sudo -u "${ITEM_LIST}" /bin/chmod 700 "/Users/${ITEM_LIST}/Applications"
  /usr/bin/sudo -u "${ITEM_LIST}" /usr/sbin/chown "${ITEM_LIST}" "/Users/${ITEM_LIST}/Applications"
  /usr/bin/sudo -u "${ITEM_LIST}" /usr/bin/touch "/Users/${ITEM_LIST}/Applications/.localized"
  ##ユーザーユーティリティフォルダを作る
  /usr/bin/sudo -u "${ITEM_LIST}" /bin/mkdir -p "/Users/${ITEM_LIST}/Applications/Utilities"
  /usr/bin/sudo -u "${ITEM_LIST}" /bin/chmod 755 "/Users/${ITEM_LIST}/Applications/Utilities"
  /usr/bin/sudo -u "${ITEM_LIST}" /usr/sbin/chown "${ITEM_LIST}" "/Users/${ITEM_LIST}/Applications/Utilities"
  /usr/bin/sudo -u "${ITEM_LIST}" /usr/bin/touch "/Users/${ITEM_LIST}/Applications/Utilities/.localized"
  ## Managed Itemsフォルダを作る
  /usr/bin/sudo -u "${ITEM_LIST}" /bin/mkdir -p "/Users/${ITEM_LIST}/Library/Managed Items"
  /usr/bin/sudo -u "${ITEM_LIST}" /bin/chmod 755 "/Users/${ITEM_LIST}/Library/Managed Items"
  /usr/bin/sudo -u "${ITEM_LIST}" /usr/sbin/chown "${ITEM_LIST}" "/Users/${ITEM_LIST}/Library/Managed Items"
  /usr/bin/sudo -u "${ITEM_LIST}" /usr/bin/touch "/Users/${ITEM_LIST}//Library/Managed Items/.localized"
  ## Workflowsフォルダを作る
  /usr/bin/sudo -u "${ITEM_LIST}" /bin/mkdir -p "/Users/${ITEM_LIST}/Library/Workflows"
  /usr/bin/sudo -u "${ITEM_LIST}" /bin/chmod 755 "/Users/${ITEM_LIST}/Library/Workflows"
  /usr/bin/sudo -u "${ITEM_LIST}" /usr/sbin/chown "${ITEM_LIST}" "/Users/${ITEM_LIST}/Library/Workflows"
  /usr/bin/sudo -u "${ITEM_LIST}" /usr/bin/touch "/Users/${ITEM_LIST}//Library/Workflows/.localized"
  ##Scripts
  /usr/bin/sudo -u "${ITEM_LIST}" /bin/mkdir -p "/Users/${ITEM_LIST}/Library/Scripts"
  /usr/bin/sudo -u "${ITEM_LIST}" /bin/chmod 755 "/Users/${ITEM_LIST}/Library/Scripts"
  /usr/bin/sudo -u "${ITEM_LIST}" /usr/sbin/chown "${ITEM_LIST}" "/Users/${ITEM_LIST}/Library/Scripts"
  /usr/bin/sudo -u "${ITEM_LIST}" /usr/bin/touch "/Users/${ITEM_LIST}//Library/Scripts/.localized"
  ##Services
  /usr/bin/sudo -u "${ITEM_LIST}" /bin/mkdir -p "/Users/${ITEM_LIST}/Library/Services"
  /usr/bin/sudo -u "${ITEM_LIST}" /bin/chmod 755 "/Users/${ITEM_LIST}/Library/Services"
  /usr/bin/sudo -u "${ITEM_LIST}" /usr/sbin/chown "${ITEM_LIST}" "/Users/${ITEM_LIST}/Library/Services"
  /usr/bin/sudo -u "${ITEM_LIST}" /usr/bin/touch "/Users/${ITEM_LIST}//Library/Services/.localized"
  ##Documentation
  /usr/bin/sudo -u "${ITEM_LIST}" /bin/mkdir -p "/Users/${ITEM_LIST}/Library/Documentation"
  /usr/bin/sudo -u "${ITEM_LIST}" /bin/chmod 755 "/Users/${ITEM_LIST}/Library/Documentation"
  /usr/bin/sudo -u "${ITEM_LIST}" /usr/sbin/chown "${ITEM_LIST}" "/Users/${ITEM_LIST}/Library/Documentation"
  /usr/bin/sudo -u "${ITEM_LIST}" /usr/bin/touch "/Users/${ITEM_LIST}//Library/Documentation/.localized"
  ##Developer
  /usr/bin/sudo -u "${ITEM_LIST}" /bin/mkdir -p "/Users/${ITEM_LIST}/Library/Developer"
  /usr/bin/sudo -u "${ITEM_LIST}" /bin/chmod 755 "/Users/${ITEM_LIST}/Library/Developer"
  /usr/bin/sudo -u "${ITEM_LIST}" /usr/sbin/chown "${ITEM_LIST}" "/Users/${ITEM_LIST}/Library/Developer"
  /usr/bin/sudo -u "${ITEM_LIST}" /usr/bin/touch "/Users/${ITEM_LIST}//Library/Developer/.localized"

  ##アクセス権チェック
  /usr/bin/sudo -u "${ITEM_LIST}" /bin/chmod 700 "/Users/${ITEM_LIST}/Library"
  /usr/bin/sudo -u "${ITEM_LIST}" /bin/chmod 700 "/Users/${ITEM_LIST}/Movies"
  /usr/bin/sudo -u "${ITEM_LIST}" /bin/chmod 700 "/Users/${ITEM_LIST}/Music"
  /usr/bin/sudo -u "${ITEM_LIST}" /bin/chmod 700 "/Users/${ITEM_LIST}/Pictures"
  /usr/bin/sudo -u "${ITEM_LIST}" /bin/chmod 700 "/Users/${ITEM_LIST}/Downloads"
  /usr/bin/sudo -u "${ITEM_LIST}" /bin/chmod 700 "/Users/${ITEM_LIST}/Documents"
  /usr/bin/sudo -u "${ITEM_LIST}" /bin/chmod 700 "/Users/${ITEM_LIST}/Desktop"
  ##全ローカルユーザーに対して実施したい処理があれば追加する
  /usr/bin/sudo -u "${ITEM_LIST}" /bin/chmod 777 "/Users/${ITEM_LIST}/Library/Caches"
done

for ITEM_LIST in "${LIST_USER[@]}"; do
  /bin/echo "$SUDO_USER:INSTALL:" "${ITEM_LIST}"
  ########################################
  /bin/echo "処理開始:" "${ITEM_LIST}"
  ##BOXフォルダを作成
  /usr/bin/sudo -u "${ITEM_LIST}" /bin/mkdir -p "/Users/${ITEM_LIST}/Library/Application Support/Box/Box Edit"
  /usr/bin/sudo -u "${ITEM_LIST}" /bin/chmod 755 "/Users/${ITEM_LIST}/Library/Application Support/Box/Box Edit"
  /usr/bin/sudo -u "${ITEM_LIST}" /usr/sbin/chown "${ITEM_LIST}" "/Users/${ITEM_LIST}/Library/Application Support/Box/Box Edit"

  ###ディスクをマウント
  /usr/bin/sudo -u "${ITEM_LIST}" /usr/bin/hdiutil attach "$LOCAL_TMP_DIR/BoxToolsInstaller.dmg" -noverify -nobrowse -noautoopen
  ###ファイルをコピーして
  /usr/bin/sudo -u "${ITEM_LIST}" /usr/bin/ditto "/Volumes/Box Tools Installer/Install Box Tools.app/Contents/Resources/Box Device Trust.app" "/Users/${ITEM_LIST}/Library/Application Support/Box/Box Edit/Box Device Trust.app"
  /usr/bin/sudo -u "${ITEM_LIST}" /usr/bin/ditto "/Volumes/Box Tools Installer/Install Box Tools.app/Contents/Resources/Box Edit.app" "/Users/${ITEM_LIST}/Library/Application Support/Box/Box Edit/Box Edit.app"
  /usr/bin/sudo -u "${ITEM_LIST}" /usr/bin/ditto "/Volumes/Box Tools Installer/Install Box Tools.app/Contents/Resources/Box Local Com Server.app" "/Users/${ITEM_LIST}/Library/Application Support/Box/Box Edit/Box Local Com Server.app"
  /usr/bin/sudo -u "${ITEM_LIST}" /usr/bin/ditto "/Volumes/Box Tools Installer/Install Box Tools.app/Contents/Resources/Box Tools Custom Apps.app" "/Users/${ITEM_LIST}/Library/Application Support/Box/Box Edit/Box Tools Custom Apps.app"
  ##トラブル防止で1秒まつ
  sleep 1
  ###ディスクをアンマウント
  /usr/bin/sudo -u "${ITEM_LIST}" /usr/bin/hdiutil detach "/Volumes/Box Tools Installer" -force
  /bin/echo "処理終了:" "${ITEM_LIST}"
done

/bin/echo "処理終了しました"

exit 0


|

より以前の記事一覧

その他のカテゴリー

Accessibility Acrobat Acrobat 2020 Acrobat AddOn Acrobat Annotation Acrobat ARMDC Acrobat AV2 Acrobat BookMark Acrobat Classic Acrobat DC Acrobat Dialog Acrobat Distiller Acrobat Form Acrobat JS Acrobat Manifest Acrobat Menu Acrobat Open Acrobat Plugin Acrobat Preferences Acrobat Preflight Acrobat python Acrobat Reader Acrobat SCA Acrobat SCA Updater Acrobat Sequ Acrobat Sign Acrobat Stamps Acrobat Watermark Acrobat Windows Acrobat Windows Reader Admin Admin Account Admin Apachectl Admin configCode Admin Device Management Admin LaunchServices Admin Locationd Admin loginitem Admin Maintenance Admin Mobileconfig Admin Permission Admin Pkg Admin Power Management Admin Printer Admin SetUp Admin SMB Admin Support Admin System Information Admin Tools Admin Users Admin Volumes Adobe Adobe FDKO Adobe RemoteUpdateManager AppKit Apple AppleScript AppleScript do shell script AppleScript List AppleScript ObjC AppleScript Osax AppleScript PDF AppleScript Pictures AppleScript record AppleScript Script Editor AppleScript Script Menu AppleScript Shortcuts AppleScript Shortcuts Events AppleScript System Events AppleScript System Events Plist AppleScript Video Applications AppStore Archive Attributes Automator BackUp Barcode Barcode QR Barcode QR Decode Bash Basic Basic Path Bluetooth BOX Browser Calendar CD/DVD Choose Chrome CIImage CityCode CloudStorage Color com.apple.LaunchServices.OpenWith Console Contacts CotEditor CURL current application Date&Time delimiters Desktop Device Diff Disk Dock DropBox Droplet eMail Encode % Encode Decode Encode UTF8 Error EXIFData ffmpeg File Finder Firefox Folder FolderAction Fonts GIF github Guide HTML HTML Entity Icon Illustrator Image Events Image2PDF ImageOptim iPhone iWork Javascript Jedit Json Label Leading Zero List locationd LRC lsappinfo LSSharedFileList m3u8 Mail MakePDF Map Math Media Media AVAsset Media AVconvert Media AVFoundation Media AVURLAsset Media Movie Media Music Memo Messages Microsoft Microsoft Edge Microsoft Excel Mouse Music NetWork Notes NSArray NSArray Sort NSBezierPath NSBitmapImageRep NSBundle NSCFBoolean NSCharacterSet NSColor NSColorList NSData NSDecimalNumber NSDictionary NSError NSEvent NSFileAttributes NSFileManager NSFileManager enumeratorAtURL NSFont NSFontManager NSGraphicsContext NSImage NSIndex NSKeyedArchiver NSKeyedUnarchiver NSLocale NSMutableArray NSMutableDictionary NSMutableString NSNotFound NSNumber NSOpenPanel NSPasteboard NSpoint NSPredicate NSPrintOperation NSRange NSRect NSRegularExpression NSRunningApplication NSScreen NSSize NSString NSString stringByApplyingTransform NSStringCompareOptions NSTask NSTimeZone NSURL NSURL File NSURLBookmark NSURLComponents NSURLResourceKey NSURLSession NSUserDefaults NSUUID NSView NSWorkspace Numbers OAuth OneDrive PDF PDFAnnotation PDFAnnotationWidget PDFContext PDFDisplayBox PDFDocumentPermissions PDFImageRep PDFKit PDFnUP PDFOutline perl Photoshop PlistBuddy pluginkit postalcode PostScript prefPane Preview Python QuickLook QuickTime ReadMe Regular Expression Reminders ReName Repeat RTF Safari SaveFile ScreenCapture ScreenSaver SF Symbols character id SF Symbols Entity sips Skype Slack Sound Spotlight sqlite SRT StandardAdditions Swift System Settings TCC TemporaryItems Terminal Text Text CSV Text MD Text TSV TextEdit Tools Translate Trash Twitter Typography UI Unit Conversion UTType valueForKeyPath Video VisionKit Visual Studio Code Wacom webarchive webp Wifi Windows XML XML EPUB XML OPML XML Plist XML RSS XML savedSearch XML SVG XML TTML XML webloc XML XMP YouTube zoom