AppleScript BOX

[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


|

[bash]BOX TOOLSインストール

全ユーザーインストール ただし、アクセシビリティとディスクアクセスのTCC設定が出来ていないと 失敗する
<Error>: Couldn't instantiate install client: Error Domain=PKInstallErrorDomain Code=201 "インストールサービスへの接続の確立中にエラーが起きました。" UserInfo={NSLocalizedDescription=インストールサービスへの接続の確立中にエラーが起きました。}


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

#!/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.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 "$LOCAL_TMP_DIR/BoxToolsInstaller.pkg" 'https://box-installers.s3.amazonaws.com/boxedit/mac/currentrelease/BoxToolsInstaller.pkg' --connect-timeout 20; then
    echo "ファイルのダウンロードに失敗しました"
    exit 1
  fi
fi
##全ユーザー実行可能にしておく
/bin/chmod 755 "$LOCAL_TMP_DIR/BoxToolsInstaller.pkg"

########################################
###アプリケーションの終了
###コンソールユーザーにのみ処理する
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"
  ##アクセス権チェック
  /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
  ##全ローカルユーザーに対して実施したい処理があれば追加する

done

for ITEM_LIST in "${LIST_USER[@]}"; do
  /bin/echo "$SUDO_USER:INSTALL:" "${ITEM_LIST}"
  ###ユーザーインストール
  /usr/bin/sudo -u "$ITEM_LIST" /usr/sbin/installer  -dumplog -verbose -pkg "$LOCAL_TMP_DIR/BoxToolsInstaller.pkg" -target CurrentUserHomeDirectory  -allowUntrusted -lang ja
done

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

exit 0


|

その他のカテゴリー

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