Admin Maintenance

[メンテナンス] Containers以下サンドボックスアプリのキャッシュを全部ゴミ箱に入れる


AppleScript サンプルコード

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

AppleScript サンプルソース(参考)
行番号ソース
001#!/usr/bin/env osascript
002----+----1----+----2----+-----3----+----4----+----5----+----6----+----7
003#
004(*
005Data/Library/Caches
006Data/Library/HTTPStorages
007Data/tmp
008の中身をゴミ箱に入れて
009
010APPLE以外の名称のバンドル名にはグリーンのタグをつけます
011
012*)
013# com.cocolog-nifty.quicktimer.icefloe
014----+----1----+----2----+-----3----+----4----+----5----+----6----+----7
015##自分環境がos12なので2.8にしているだけです
016use AppleScript version "2.8"
017use framework "Foundation"
018use framework "UniformTypeIdentifiers"
019use framework "AppKit"
020use scripting additions
021
022property refMe : a reference to current application
023
024
025##############################
026#Library
027set appFileManager to refMe's NSFileManager's defaultManager()
028set ocidURLsArray to (appFileManager's URLsForDirectory:(refMe's NSLibraryDirectory) inDomains:(refMe's NSUserDomainMask))
029set ocidLibraryDirPathURL to ocidURLsArray's firstObject()
030#Containers
031set ocidContainersDirPathURL to ocidLibraryDirPathURL's URLByAppendingPathComponent:("Containers") isDirectory:(true)
032
033##############################
034#Containersの項目を収集
035set ocidPropertiesForKeys to refMe's NSMutableArray's alloc()'s initWithCapacity:(0)
036ocidPropertiesForKeys's addObject:(refMe's NSURLIsRegularFileKey)
037ocidPropertiesForKeys's addObject:(refMe's NSURLNameKey)
038ocidPropertiesForKeys's addObject:(refMe's NSURLPathKey)
039set ocidOption to (refMe's NSDirectoryEnumerationSkipsHiddenFiles)
040#URLの収集
041set listResponse to appFileManager's contentsOfDirectoryAtURL:(ocidContainersDirPathURL) includingPropertiesForKeys:(ocidPropertiesForKeys) options:(ocidOption) |error| :(reference)
042set ocidItemURLArray to (item 1 of listResponse)
043
044##############################
045# 有無チェック
046repeat with itemURL in ocidItemURLArray
047  #フォルダ名が
048  set strDirName to (itemURL's lastPathComponent()) as text
049  #Apple
050  if strDirName starts with "com.apple" then
051    ##ここはAppleの設定が入っているので何もしない
052  else
053    log strDirName
054    #Apple以外のコンテナの場合は グリーンのインデックスをつける
055    set ocidLabelNo to (refMe's NSNumber's numberWithInteger:(2))
056    set listDone to (itemURL's setResourceValue:(ocidLabelNo) forKey:(refMe's NSURLLabelNumberKey) |error| :(reference))
057    if (item 1 of listDone) is true then
058      log "正常処理"
059    else if (item 2 of listDone) ≠ (missing value) then
060      set strErrorNO to (item 2 of listDone)'s code() as text
061      set strErrorMes to (item 2 of listDone)'s localizedDescription() as text
062      refMe's NSLog("■:" & strErrorNO & strErrorMes)
063      return "エラーしました" & strErrorNO & strErrorMes
064    end if
065    
066  end if
067  
068end repeat
069
070##############################
071# 有無チェック
072repeat with itemURL in ocidItemURLArray
073  set ocidItemCachesDirPathURL to (itemURL's URLByAppendingPathComponent:("Data/Library/Caches") isDirectory:(true))
074  set ocidItemCachesDirPath to ocidItemCachesDirPathURL's |path|
075  set boolExist to (appFileManager's fileExistsAtPath:(ocidItemCachesDirPath) isDirectory:(true))
076  #キャッシュディレクトリが無いなら作っちゃう
077  if boolExist is false then
078    set ocidAttrDict to (refMe's NSMutableDictionary's alloc()'s initWithCapacity:0)
079    (ocidAttrDict's setValue:(511) forKey:(refMe's NSFilePosixPermissions))
080    set listDone to (appFileManager's createDirectoryAtURL:(ocidItemCachesDirPathURL) withIntermediateDirectories:true attributes:(ocidAttrDict) |error| :(reference))
081  end if
082end repeat
083
084
085
086
087##############################
088# 実在チェック
089repeat with itemURL in ocidItemURLArray
090  set ocidItemCachesDirPathURL to (itemURL's URLByAppendingPathComponent:("Data/Library/Caches") isDirectory:(true))
091  #フォルダ?かチェックして
092  set listResponse to (ocidItemCachesDirPathURL's getResourceValue:(reference) forKey:(refMe's NSURLIsDirectoryKey) |error| :(reference))
093  set boolIsDir to (item 2 of listResponse) as boolean
094  if boolIsDir is true then
095    #シンボリックリンクでないか?も確認する
096    set listResponse to (ocidItemCachesDirPathURL's getResourceValue:(reference) forKey:(refMe's NSURLIsSymbolicLinkKey) |error| :(reference))
097    set boolIsSym to (item 2 of listResponse) as boolean
098    if boolIsSym is false then
099      ##フォルダで シンボリックリンクでも無いならフォルダでしょ
100      #対象のフォルダの中のURLを収集して
101      set listResponse to (appFileManager's contentsOfDirectoryAtURL:(ocidItemCachesDirPathURL) includingPropertiesForKeys:(ocidPropertiesForKeys) options:(ocidOption) |error| :(reference))
102      set ocidCachesURLArray to (item 1 of listResponse)
103      #順番にゴミ箱に入れる
104      repeat with itemCachesURL in ocidCachesURLArray
105        log itemCachesURL's |path| as text
106        set listDone to (appFileManager's trashItemAtURL:(itemCachesURL) resultingItemURL:(missing value) |error| :(reference))
107        if (item 2 of listDone) ≠ (missing value) then
108          set strErrorNO to (item 2 of listDone)'s code() as text
109          set strErrorMes to (item 2 of listDone)'s localizedDescription() as text
110          refMe's NSLog("■:" & strErrorNO & strErrorMes)
111          return "エラーしました" & strErrorNO & strErrorMes
112        end if
113      end repeat
114    end if
115  end if
116end repeat
117
118
119##############################
120# 有無チェック
121repeat with itemURL in ocidItemURLArray
122  set ocidItemCachesDirPathURL to (itemURL's URLByAppendingPathComponent:("Data/tmp") isDirectory:(true))
123  set ocidItemCachesDirPath to ocidItemCachesDirPathURL's |path|
124  set boolExist to (appFileManager's fileExistsAtPath:(ocidItemCachesDirPath) isDirectory:(true))
125  #キャッシュディレクトリが無いなら作っちゃう
126  if boolExist is false then
127    set ocidAttrDict to (refMe's NSMutableDictionary's alloc()'s initWithCapacity:0)
128    (ocidAttrDict's setValue:(511) forKey:(refMe's NSFilePosixPermissions))
129    set listDone to (appFileManager's createDirectoryAtURL:(ocidItemCachesDirPathURL) withIntermediateDirectories:true attributes:(ocidAttrDict) |error| :(reference))
130  end if
131end repeat
132
133##############################
134# 実在チェック
135repeat with itemURL in ocidItemURLArray
136  set ocidItemCachesDirPathURL to (itemURL's URLByAppendingPathComponent:("Data/tmp") isDirectory:(true))
137  #フォルダ?かチェックして
138  set listResponse to (ocidItemCachesDirPathURL's getResourceValue:(reference) forKey:(refMe's NSURLIsDirectoryKey) |error| :(reference))
139  set boolIsDir to (item 2 of listResponse) as boolean
140  if boolIsDir is true then
141    #シンボリックリンクでないか?も確認する
142    set listResponse to (ocidItemCachesDirPathURL's getResourceValue:(reference) forKey:(refMe's NSURLIsSymbolicLinkKey) |error| :(reference))
143    set boolIsSym to (item 2 of listResponse) as boolean
144    if boolIsSym is false then
145      ##フォルダで シンボリックリンクでも無いならフォルダでしょ
146      #対象のフォルダの中のURLを収集して
147      set listResponse to (appFileManager's contentsOfDirectoryAtURL:(ocidItemCachesDirPathURL) includingPropertiesForKeys:(ocidPropertiesForKeys) options:(ocidOption) |error| :(reference))
148      set ocidCachesURLArray to (item 1 of listResponse)
149      #順番にゴミ箱に入れる
150      repeat with itemCachesURL in ocidCachesURLArray
151        log itemCachesURL's |path| as text
152        set listDone to (appFileManager's trashItemAtURL:(itemCachesURL) resultingItemURL:(missing value) |error| :(reference))
153        if (item 2 of listDone) ≠ (missing value) then
154          set strErrorNO to (item 2 of listDone)'s code() as text
155          set strErrorMes to (item 2 of listDone)'s localizedDescription() as text
156          refMe's NSLog("■:" & strErrorNO & strErrorMes)
157          return "エラーしました" & strErrorNO & strErrorMes
158        end if
159      end repeat
160    end if
161  end if
162end repeat
163
164
165##############################
166# 有無チェック
167repeat with itemURL in ocidItemURLArray
168  set ocidItemCachesDirPathURL to (itemURL's URLByAppendingPathComponent:("Data/Library/HTTPStorages") isDirectory:(true))
169  set ocidItemCachesDirPath to ocidItemCachesDirPathURL's |path|
170  set boolExist to (appFileManager's fileExistsAtPath:(ocidItemCachesDirPath) isDirectory:(true))
171  #キャッシュディレクトリが無いなら作っちゃう
172  if boolExist is false then
173    set ocidAttrDict to (refMe's NSMutableDictionary's alloc()'s initWithCapacity:0)
174    (ocidAttrDict's setValue:(511) forKey:(refMe's NSFilePosixPermissions))
175    set listDone to (appFileManager's createDirectoryAtURL:(ocidItemCachesDirPathURL) withIntermediateDirectories:true attributes:(ocidAttrDict) |error| :(reference))
176  end if
177end repeat
178
179##############################
180# 実在チェック
181repeat with itemURL in ocidItemURLArray
182  set ocidItemCachesDirPathURL to (itemURL's URLByAppendingPathComponent:("Data/Library/HTTPStorages") isDirectory:(true))
183  #フォルダ?かチェックして
184  set listResponse to (ocidItemCachesDirPathURL's getResourceValue:(reference) forKey:(refMe's NSURLIsDirectoryKey) |error| :(reference))
185  set boolIsDir to (item 2 of listResponse) as boolean
186  if boolIsDir is true then
187    #シンボリックリンクでないか?も確認する
188    set listResponse to (ocidItemCachesDirPathURL's getResourceValue:(reference) forKey:(refMe's NSURLIsSymbolicLinkKey) |error| :(reference))
189    set boolIsSym to (item 2 of listResponse) as boolean
190    if boolIsSym is false then
191      ##フォルダで シンボリックリンクでも無いならフォルダでしょ
192      #対象のフォルダの中のURLを収集して
193      set listResponse to (appFileManager's contentsOfDirectoryAtURL:(ocidItemCachesDirPathURL) includingPropertiesForKeys:(ocidPropertiesForKeys) options:(ocidOption) |error| :(reference))
194      set ocidCachesURLArray to (item 1 of listResponse)
195      #順番にゴミ箱に入れる
196      repeat with itemCachesURL in ocidCachesURLArray
197        log itemCachesURL's |path| as text
198        set listDone to (appFileManager's trashItemAtURL:(itemCachesURL) resultingItemURL:(missing value) |error| :(reference))
199        if (item 2 of listDone) ≠ (missing value) then
200          set strErrorNO to (item 2 of listDone)'s code() as text
201          set strErrorMes to (item 2 of listDone)'s localizedDescription() as text
202          refMe's NSLog("■:" & strErrorNO & strErrorMes)
203          return "エラーしました" & strErrorNO & strErrorMes
204        end if
205      end repeat
206    end if
207  end if
208end repeat
AppleScriptで生成しました

|

[メンテナンス]Thumbs.dbやDS_Store等をゴミ箱に移動させる



ダウンロード - movetotrash.zip




AppleScript サンプルコード

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

AppleScript サンプルソース(参考)
行番号ソース
001#!/usr/bin/env osascript
002----+----1----+----2----+-----3----+----4----+----5----+----6----+----7
003#
004#
005# com.cocolog-nifty.quicktimer.icefloe
006----+----1----+----2----+-----3----+----4----+----5----+----6----+----7
007##自分環境がos12なので2.8にしているだけです
008use AppleScript version "2.8"
009use framework "Foundation"
010use framework "UniformTypeIdentifiers"
011use framework "AppKit"
012use scripting additions
013
014property refMe : a reference to current application
015set appFileManager to refMe's NSFileManager's defaultManager()
016
017##############################
018#キーワード
019set strFileName to (".DS_Store") as text
020
021##############################
022#ダイアログ
023set strName to (name of current application) as text
024if strName is "osascript" then
025  tell application "Finder" to activate
026else
027  tell current application to activate
028end if
029#
030set appFileManager to refMe's NSFileManager's defaultManager()
031set ocidURLsArray to (appFileManager's URLsForDirectory:(refMe's NSDesktopDirectory) inDomains:(refMe's NSUserDomainMask))
032set ocidDesktopDirPathURL to ocidURLsArray's firstObject()
033set aliasDefaultLocation to (ocidDesktopDirPathURL's absoluteURL()) as alias
034
035set strMes to "フォルダを選んでください" as text
036set strPrompt to "フォルダを選択してください" as text
037try
038  set aliasDirPath to (choose folder strMes with prompt strPrompt default location aliasDefaultLocation with invisibles and showing package contents without multiple selections allowed) as alias
039on error
040  log "エラーしました"
041  return "エラーしました"
042end try
043##############################
044#クローズパスをオープンディレクトリパスに
045set strDirPath to (POSIX path of aliasDirPath) as text
046set ocidDirPathStr to refMe's NSString's stringWithString:(strDirPath)
047set ocidDirPath to ocidDirPathStr's stringByStandardizingPath()
048set strDirPath to ocidDirPath as text
049
050##############################
051#コマンド整形
052set strCommandText to ("\"/usr/bin/find\"   \"" & strDirPath & "\" -type f -name  \"" & strFileName & "\"") as text
053log "\n" & strCommandText & "\n"
054#コマンド実行
055set strExecCommand to ("/bin/zsh -c '" & strCommandText & "'") as text
056try
057  set strResponse to (do shell script strExecCommand) as text
058  
059on error
060  log "osascript でエラーしました"
061  return false
062end try
063
064##############################
065#
066set ocidResponseString to refMe's NSMutableString's stringWithString:(strResponse)
067set ocidPathArray to ocidResponseString's componentsSeparatedByString:("\r")
068#
069set numCntArray to ocidPathArray's |count|()
070if numCntArray = 1 then
071  set strChkResponse to ocidPathArray's firstObject() as text
072  if strChkResponse is "" then
073    display alert "対象ファイルはありませんでした" giving up after 2
074    return
075  end if
076end if
077
078
079##############################
080#
081repeat with itemPath in ocidPathArray
082  set strFilePath to itemPath as text
083  set ocidFilePathStr to (refMe's NSString's stringWithString:(strFilePath))
084  set ocidFilePath to ocidFilePathStr's stringByStandardizingPath()
085  set ocidFilePathURL to (refMe's NSURL's alloc()'s initFileURLWithPath:(ocidFilePath) isDirectory:false)
086  set ocidFileName to ocidFilePathURL's lastPathComponent()
087  #ゴミ箱
088  set appFileManager to refMe's NSFileManager's defaultManager()
089  set ocidURLsArray to (appFileManager's URLsForDirectory:(refMe's NSTrashDirectory) inDomains:(refMe's NSUserDomainMask))
090  set ocidTrashDirPathURL to ocidURLsArray's firstObject()
091  set ocidDistResultURL to (ocidTrashDirPathURL's URLByAppendingPathComponent:(ocidFileName) isDirectory:(true))
092  #
093  set boolDirExists to (appFileManager's fileExistsAtPath:(ocidFilePath) isDirectory:(false))
094  if boolDirExists = true then
095    set appFileManager to refMe's NSFileManager's defaultManager()
096    set somesome to ""
097    set listDone to (appFileManager's trashItemAtURL:(ocidFilePathURL) resultingItemURL:(ocidDistResultURL) |error| :(reference))
098    if (item 2 of listDone) ≠ (missing value) then
099      set strErrorNO to (item 2 of listDone)'s code() as text
100      set strErrorMes to (item 2 of listDone)'s localizedDescription() as text
101      refMe's NSLog("■:" & strErrorNO & strErrorMes)
102      return "エラーしました" & strErrorNO & strErrorMes
103    end if
104  else if boolDirExists = false then
105    log "何らかの理由でファイルを見つけられませんでした"
106    log strFilePath
107  end if
108  
109end repeat
AppleScriptで生成しました

AppleScript サンプルコード

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

AppleScript サンプルソース(参考)
行番号ソース
001#!/usr/bin/env osascript
002----+----1----+----2----+-----3----+----4----+----5----+----6----+----7
003#
004#
005# com.cocolog-nifty.quicktimer.icefloe
006----+----1----+----2----+-----3----+----4----+----5----+----6----+----7
007##自分環境がos12なので2.8にしているだけです
008use AppleScript version "2.8"
009use framework "Foundation"
010use framework "UniformTypeIdentifiers"
011use framework "AppKit"
012use scripting additions
013
014property refMe : a reference to current application
015set appFileManager to refMe's NSFileManager's defaultManager()
016
017##############################
018#キーワード
019set strFileName to ("Thumbs.db") as text
020
021##############################
022#ダイアログ
023set strName to (name of current application) as text
024if strName is "osascript" then
025  tell application "Finder" to activate
026else
027  tell current application to activate
028end if
029#
030set appFileManager to refMe's NSFileManager's defaultManager()
031set ocidURLsArray to (appFileManager's URLsForDirectory:(refMe's NSDesktopDirectory) inDomains:(refMe's NSUserDomainMask))
032set ocidDesktopDirPathURL to ocidURLsArray's firstObject()
033set aliasDefaultLocation to (ocidDesktopDirPathURL's absoluteURL()) as alias
034
035set strMes to "フォルダを選んでください" as text
036set strPrompt to "フォルダを選択してください" as text
037try
038  set aliasDirPath to (choose folder strMes with prompt strPrompt default location aliasDefaultLocation with invisibles and showing package contents without multiple selections allowed) as alias
039on error
040  log "エラーしました"
041  return "エラーしました"
042end try
043##############################
044#クローズパスをオープンディレクトリパスに
045set strDirPath to (POSIX path of aliasDirPath) as text
046set ocidDirPathStr to refMe's NSString's stringWithString:(strDirPath)
047set ocidDirPath to ocidDirPathStr's stringByStandardizingPath()
048set ocidDirPathURL to (refMe's NSURL's alloc()'s initFileURLWithPath:(ocidDirPath) isDirectory:true)
049
050
051##############################
052#ディレクトリのコンテツを収集
053#収集する付随プロパティ
054set ocidPropertiesForKeys to refMe's NSMutableArray's alloc()'s initWithCapacity:(0)
055ocidPropertiesForKeys's addObject:(refMe's NSURLIsRegularFileKey)
056ocidPropertiesForKeys's addObject:(refMe's NSURLNameKey)
057ocidPropertiesForKeys's addObject:(refMe's NSURLPathKey)
058#プロパティ
059set ocidOption to (refMe's NSDirectoryEnumerationSkipsHiddenFiles)
060####ディレクトリのコンテツを収集
061set ocidEmuDict to (appFileManager's enumeratorAtURL:(ocidDirPathURL) includingPropertiesForKeys:ocidPropertiesForKeys options:(ocidOption) errorHandler:(reference))
062###戻り値用のリストに格納
063set ocidEmuFileURLArray to ocidEmuDict's allObjects()
064
065
066##############################
067#本処理
068repeat with itemURL in ocidEmuFileURLArray
069  #ファイルか?を判定する
070  set listResult to (itemURL's getResourceValue:(reference) forKey:(refMe's NSURLIsRegularFileKey) |error| :(reference))
071  set boolIsRegularFileKey to (item 2 of listResult) as boolean
072  if boolIsRegularFileKey is true then
073    #ファイルならファイル名を取得して
074    set strItemFileName to itemURL's lastPathComponent() as text
075    #ファイル名が指定のファイル名と同じなら
076    if strFileName is strItemFileName then
077      set appFileManager to refMe's NSFileManager's defaultManager()
078      #ゴミ箱へ入れる
079      set listDone to (appFileManager's trashItemAtURL:(itemURL) resultingItemURL:(missing value) |error| :(reference))
080      if (item 2 of listDone) ≠ (missing value) then
081        set strErrorNO to (item 2 of listDone)'s code() as text
082        set strErrorMes to (item 2 of listDone)'s localizedDescription() as text
083        refMe's NSLog("■:" & strErrorNO & strErrorMes)
084        return "エラーしました" & strErrorNO & strErrorMes
085      end if
086    end if
087  end if
088end repeat
AppleScriptで生成しました

|

[XProtect]標準アップデート macOS15用更新 修正

2箇所にわかれているXProtect.bundleとXProtect.appのバージョンを引くようにした
サンプルコード

サンプルソース(参考)
行番号ソース
001#!/bin/bash
002#com.cocolog-nifty.quicktimer.icefloe
003#修正 XProtect update をsoftwareupdateの後にした
004#参考
005# https://eclecticlight.co/
006#################################################
007###管理者インストールしているか?チェック
008USER_WHOAMI=$(/usr/bin/whoami)
009/bin/echo "ExecPriv(whoami): $USER_WHOAMI"
010###実行しているユーザー名
011CONSOLE_USER=$(/bin/echo "show State:/Users/ConsoleUser" | /usr/sbin/scutil | /usr/bin/awk '/Name :/ { print $3 }')
012/bin/echo "ConsoleUser(scutil): $CONSOLE_USER"
013###STAT
014STAT_USR=$(/usr/bin/stat -f%Su /dev/console)
015/bin/echo "STAT_USR(console): $STAT_USR"
016#OS
017STR_PLIST_FILEPATH="/System/Library/CoreServices/.SystemVersionPlatform.plist"
018STR_OSVER=$(/usr/bin/defaults read "$STR_PLIST_FILEPATH" ProductUserVisibleVersion)
019/bin/echo "OSver: ${STR_OSVER}"
020#バージョン
021STR_PLIST_FILEPATH="/private/var/db/SystemPolicyConfiguration/XProtect.bundle/Contents/Info.plist"
022STR_XVER=$(/usr/bin/defaults read "$STR_PLIST_FILEPATH" CFBundleShortVersionString)
023/bin/echo "SystemPolicy bundle: $STR_XVER"
024#バージョン
025STR_PLIST_FILEPATH="/private/var/db/SystemPolicyConfiguration/XProtect.app/Contents/Info.plist"
026STR_XVER=$(/usr/bin/defaults read "$STR_PLIST_FILEPATH" CFBundleShortVersionString)
027/bin/echo "SystemPolicy Xprotext: $STR_XVER"
028#バージョン
029STR_PLIST_FILEPATH="/private/var/db/SystemPolicyConfiguration/XProtect.app/Contents/XPCServices/XProtectPluginService.xpc/Contents/Info.plist"
030STR_XVER=$(/usr/bin/defaults read "$STR_PLIST_FILEPATH" CFBundleShortVersionString)
031/bin/echo "SystemPolicy XPC: $STR_XVER"
032#バージョン
033STR_PLIST_FILEPATH="/Library/Apple/System/Library/CoreServices/XProtect.app/Contents/Info.plist"
034STR_XVER=$(/usr/bin/defaults read "$STR_PLIST_FILEPATH" CFBundleShortVersionString)
035/bin/echo "Library Xprotex: $STR_XVER"
036#バージョン
037STR_PLIST_FILEPATH="/Library/Apple/System/Library/CoreServices/XProtect.app/Contents/XPCServices/XProtectPluginService.xpc/Contents/Info.plist"
038STR_XVER=$(/usr/bin/defaults read "$STR_PLIST_FILEPATH" CFBundleShortVersionString)
039/bin/echo "Library XPC: $STR_XVER"
040#バージョン
041STR_PLIST_FILEPATH="/Library/Apple/System/Library/CoreServices/MRT.app/Contents/Info.plist"
042STR_XVER=$(/usr/bin/defaults read "$STR_PLIST_FILEPATH" CFBundleShortVersionString)
043/bin/echo "Library MRT: $STR_XVER"
044
045#チェック
046/usr/bin/sudo XProtect check
047#バージョン
048XProtect version
049#ソフトウェアアップデート
050/usr/sbin/softwareupdate --list --include-config-data
051/usr/sbin/softwareupdate --install --recommended --include-config-data
052#アップデート
053/usr/bin/sudo XProtect update
054#バージョン
055XProtect version
056#ステータス
057XProtect status
058#スキャン
059/Library/Apple/System/Library/CoreServices/XProtect.app/Contents/MacOS/XProtect
060
061
062#バージョン
063STR_PLIST_FILEPATH="/private/var/db/SystemPolicyConfiguration/XProtect.bundle/Contents/Info.plist"
064STR_XVER=$(/usr/bin/defaults read "$STR_PLIST_FILEPATH" CFBundleShortVersionString)
065/bin/echo "SystemPolicy bundle: $STR_XVER"
066#バージョン
067STR_PLIST_FILEPATH="/private/var/db/SystemPolicyConfiguration/XProtect.app/Contents/Info.plist"
068STR_XVER=$(/usr/bin/defaults read "$STR_PLIST_FILEPATH" CFBundleShortVersionString)
069/bin/echo "SystemPolicy Xprotext: $STR_XVER"
070#バージョン
071STR_PLIST_FILEPATH="/private/var/db/SystemPolicyConfiguration/XProtect.app/Contents/XPCServices/XProtectPluginService.xpc/Contents/Info.plist"
072STR_XVER=$(/usr/bin/defaults read "$STR_PLIST_FILEPATH" CFBundleShortVersionString)
073/bin/echo "SystemPolicy XPC: $STR_XVER"
074#バージョン
075STR_PLIST_FILEPATH="/Library/Apple/System/Library/CoreServices/XProtect.app/Contents/Info.plist"
076STR_XVER=$(/usr/bin/defaults read "$STR_PLIST_FILEPATH" CFBundleShortVersionString)
077/bin/echo "Library Xprotex: $STR_XVER"
078#バージョン
079STR_PLIST_FILEPATH="/Library/Apple/System/Library/CoreServices/XProtect.app/Contents/XPCServices/XProtectPluginService.xpc/Contents/Info.plist"
080STR_XVER=$(/usr/bin/defaults read "$STR_PLIST_FILEPATH" CFBundleShortVersionString)
081/bin/echo "Library XPC: $STR_XVER"
082#バージョン
083STR_PLIST_FILEPATH="/Library/Apple/System/Library/CoreServices/MRT.app/Contents/Info.plist"
084STR_XVER=$(/usr/bin/defaults read "$STR_PLIST_FILEPATH" CFBundleShortVersionString)
085/bin/echo "Library MRT: $STR_XVER"
086
087exit 0
AppleScriptで生成しました

|

[XProtect]標準アップデート macOS15用更新 修正

通常用
サンプルコード

サンプルソース(参考)
行番号ソース
001#!/bin/bash
002#com.cocolog-nifty.quicktimer.icefloe
003#修正 XProtect update をsoftwareupdateの後にした
004#################################################
005###管理者インストールしているか?チェック
006USER_WHOAMI=$(/usr/bin/whoami)
007/bin/echo "ExecPriv(whoami): $USER_WHOAMI"
008###実行しているユーザー名
009CONSOLE_USER=$(/bin/echo "show State:/Users/ConsoleUser" | /usr/sbin/scutil | /usr/bin/awk '/Name :/ { print $3 }')
010/bin/echo "ConsoleUser(scutil): $CONSOLE_USER"
011###STAT
012STAT_USR=$(/usr/bin/stat -f%Su /dev/console)
013/bin/echo "STAT_USR(console): $STAT_USR"
014#OS
015STR_PLIST_FILEPATH="/System/Library/CoreServices/.SystemVersionPlatform.plist"
016STR_OSVER=$(/usr/bin/defaults read "$STR_PLIST_FILEPATH" ProductUserVisibleVersion)
017/bin/echo "OSver: ${STR_OSVER}"
018#バージョン
019STR_PLIST_FILEPATH="/private/var/protected/xprotect/XProtect.bundle/Contents/Info.plist"
020STR_XVER=$(/usr/bin/defaults read "$STR_PLIST_FILEPATH" CFBundleShortVersionString)
021/bin/echo "XprotextVer: $STR_XVER"
022#バージョン
023STR_PLIST_FILEPATH="/Library/Apple/System/Library/CoreServices/XProtect.app/Contents/Info.plist"
024STR_XVER=$(/usr/bin/defaults read "$STR_PLIST_FILEPATH" CFBundleShortVersionString)
025/bin/echo "XprotextAppVer: $STR_XVER"
026#バージョン
027STR_PLIST_FILEPATH="/Library/Apple/System/Library/CoreServices/XProtect.app/Contents/XPCServices/XProtectPluginService.xpc/Contents/Info.plist"
028STR_XVER=$(/usr/bin/defaults read "$STR_PLIST_FILEPATH" CFBundleShortVersionString)
029/bin/echo "XPC: $STR_XVER"
030#バージョン
031STR_PLIST_FILEPATH="/Library/Apple/System/Library/CoreServices/MRT.app/Contents/Info.plist"
032STR_XVER=$(/usr/bin/defaults read "$STR_PLIST_FILEPATH" CFBundleShortVersionString)
033/bin/echo "MRT: $STR_XVER"
034
035#チェック
036/usr/bin/sudo XProtect check
037#バージョン
038XProtect version
039#ソフトウェアアップデート
040/usr/sbin/softwareupdate --list --include-config-data
041/usr/sbin/softwareupdate --install --recommended --include-config-data
042#アップデート
043/usr/bin/sudo XProtect update
044#バージョン
045XProtect version
046#ステータス
047XProtect status
048#スキャン
049/Library/Apple/System/Library/CoreServices/XProtect.app/Contents/MacOS/XProtect
050#バージョン os15
051STR_PLIST_FILEPATH="/private/var/protected/xprotect/XProtect.bundle/Contents/Info.plist"
052STR_XVER=$(/usr/bin/defaults read "$STR_PLIST_FILEPATH" CFBundleShortVersionString)
053/bin/echo "XprotextVer: $STR_XVER"
054#バージョン os14
055STR_PLIST_FILEPATH="/Library/Apple/System/Library/CoreServices/XProtect.app/Contents/Info.plist"
056STR_XVER=$(/usr/bin/defaults read "$STR_PLIST_FILEPATH" CFBundleShortVersionString)
057/bin/echo "XprotextAppVer: $STR_XVER"
058#バージョン
059STR_PLIST_FILEPATH="/Library/Apple/System/Library/CoreServices/XProtect.app/Contents/XPCServices/XProtectPluginService.xpc/Contents/Info.plist"
060STR_XVER=$(/usr/bin/defaults read "$STR_PLIST_FILEPATH" CFBundleShortVersionString)
061/bin/echo "XPC: $STR_XVER"
062#バージョン
063STR_PLIST_FILEPATH="/Library/Apple/System/Library/CoreServices/MRT.app/Contents/Info.plist"
064STR_XVER=$(/usr/bin/defaults read "$STR_PLIST_FILEPATH" CFBundleShortVersionString)
065/bin/echo "MRT: $STR_XVER"
066
067exit 0
AppleScriptで生成しました

ターミナルで実行用
サンプルコード

サンプルソース(参考)
行番号ソース
001#!/bin/bash
002#com.cocolog-nifty.quicktimer.icefloe
003#修正 XProtect update をsoftwareupdateの後にした
004#################################################
005###管理者インストールしているか?チェック
006USER_WHOAMI=$(/usr/bin/whoami)
007/bin/echo "ExecPriv(whoami): $USER_WHOAMI"
008if [ "$USER_WHOAMI" != "root" ]; then
009  /bin/echo "このスクリプトを実行するには管理者権限が必要です。"
010  /bin/echo "sudo で実行してください"
011  ### path to me
012  SCRIPT_PATH="${BASH_SOURCE[0]}"
013  /bin/echo "/usr/bin/sudo \"$SCRIPT_PATH\""
014  /bin/echo "↑を実行してください"
015  ###実行しているユーザー名
016  CONSOLE_USER=$(/bin/echo "show State:/Users/ConsoleUser" | /usr/sbin/scutil | /usr/bin/awk '/Name :/ { print $3 }')
017  /bin/echo "ConsoleUser(scutil): $CONSOLE_USER"
018  exit 1
019else
020  ###STAT
021  STAT_USR=$(/usr/bin/stat -f%Su /dev/console)
022  /bin/echo "STAT_USR(console): $STAT_USR"
023  #OS
024  STR_PLIST_FILEPATH="/System/Library/CoreServices/.SystemVersionPlatform.plist"
025  STR_OSVER=$(/usr/bin/defaults read "$STR_PLIST_FILEPATH" ProductUserVisibleVersion)
026  /bin/echo "OSver: ${STR_OSVER}"
027  #バージョン
028  STR_PLIST_FILEPATH="/private/var/protected/xprotect/XProtect.bundle/Contents/Info.plist"
029  STR_XVER=$(/usr/bin/defaults read "$STR_PLIST_FILEPATH" CFBundleShortVersionString)
030  /bin/echo "XprotextVer: $STR_XVER"
031  #バージョン
032  STR_PLIST_FILEPATH="/Library/Apple/System/Library/CoreServices/XProtect.app/Contents/Info.plist"
033  STR_XVER=$(/usr/bin/defaults read "$STR_PLIST_FILEPATH" CFBundleShortVersionString)
034  /bin/echo "XprotextAppVer: $STR_XVER"
035  #バージョン
036  STR_PLIST_FILEPATH="/Library/Apple/System/Library/CoreServices/XProtect.app/Contents/XPCServices/XProtectPluginService.xpc/Contents/Info.plist"
037  STR_XVER=$(/usr/bin/defaults read "$STR_PLIST_FILEPATH" CFBundleShortVersionString)
038  /bin/echo "XPC: $STR_XVER"
039  #バージョン
040  STR_PLIST_FILEPATH="/Library/Apple/System/Library/CoreServices/MRT.app/Contents/Info.plist"
041  STR_XVER=$(/usr/bin/defaults read "$STR_PLIST_FILEPATH" CFBundleShortVersionString)
042  /bin/echo "MRT: $STR_XVER"
043
044  #チェック
045  /usr/bin/sudo XProtect check
046  #バージョン
047  XProtect version
048  #ソフトウェアアップデート
049  /usr/sbin/softwareupdate --list --include-config-data
050  /usr/sbin/softwareupdate --install --recommended --include-config-data
051  #アップデート
052  /usr/bin/sudo XProtect update
053  #バージョン
054  XProtect version
055  #ステータス
056  XProtect status
057  #スキャン
058  /Library/Apple/System/Library/CoreServices/XProtect.app/Contents/MacOS/XProtect
059  #バージョン os15
060  STR_PLIST_FILEPATH="/private/var/protected/xprotect/XProtect.bundle/Contents/Info.plist"
061  STR_XVER=$(/usr/bin/defaults read "$STR_PLIST_FILEPATH" CFBundleShortVersionString)
062  /bin/echo "XprotextVer: $STR_XVER"
063  #バージョン os14
064  STR_PLIST_FILEPATH="/Library/Apple/System/Library/CoreServices/XProtect.app/Contents/Info.plist"
065  STR_XVER=$(/usr/bin/defaults read "$STR_PLIST_FILEPATH" CFBundleShortVersionString)
066  /bin/echo "XprotextAppVer: $STR_XVER"
067  #バージョン
068  STR_PLIST_FILEPATH="/Library/Apple/System/Library/CoreServices/XProtect.app/Contents/XPCServices/XProtectPluginService.xpc/Contents/Info.plist"
069  STR_XVER=$(/usr/bin/defaults read "$STR_PLIST_FILEPATH" CFBundleShortVersionString)
070  /bin/echo "XPC: $STR_XVER"
071  #バージョン
072  STR_PLIST_FILEPATH="/Library/Apple/System/Library/CoreServices/MRT.app/Contents/Info.plist"
073  STR_XVER=$(/usr/bin/defaults read "$STR_PLIST_FILEPATH" CFBundleShortVersionString)
074  /bin/echo "MRT: $STR_XVER"
075
076fi
077
078exit 0
AppleScriptで生成しました

|

[XProtect]標準アップデート macOS15用更新 修正


サンプルコード

サンプルソース(参考)
行番号ソース
001#!/bin/bash
002#com.cocolog-nifty.quicktimer.icefloe
003#修正 XProtect update をsoftwareupdateの後にした
004#################################################
005###管理者インストールしているか?チェック
006USER_WHOAMI=$(/usr/bin/whoami)
007/bin/echo "ExecPriv(whoami): $USER_WHOAMI"
008if [ "$USER_WHOAMI" != "root" ]; then
009  /bin/echo "このスクリプトを実行するには管理者権限が必要です。"
010  /bin/echo "sudo で実行してください"
011  ### path to me
012  SCRIPT_PATH="${BASH_SOURCE[0]}"
013  /bin/echo "/usr/bin/sudo \"$SCRIPT_PATH\""
014  /bin/echo "↑を実行してください"
015  ###実行しているユーザー名
016  CONSOLE_USER=$(/bin/echo "show State:/Users/ConsoleUser" | /usr/sbin/scutil | /usr/bin/awk '/Name :/ { print $3 }')
017  /bin/echo "ConsoleUser(scutil): $CONSOLE_USER"
018  exit 1
019else
020  ###STAT
021  STAT_USR=$(/usr/bin/stat -f%Su /dev/console)
022  /bin/echo "STAT_USR(console): $STAT_USR"
023  #OS
024  STR_PLIST_FILEPATH="/System/Library/CoreServices/.SystemVersionPlatform.plist"
025  STR_OSVER=$(/usr/bin/defaults read "$STR_PLIST_FILEPATH" ProductUserVisibleVersion)
026  /bin/echo "OSver: ${STR_OSVER}"
027  #バージョン
028  STR_PLIST_FILEPATH="/private/var/protected/xprotect/XProtect.bundle/Contents/Info.plist"
029  STR_XVER=$(/usr/bin/defaults read "$STR_PLIST_FILEPATH" CFBundleShortVersionString)
030  /bin/echo "XprotextVer: $STR_XVER"
031  #バージョン
032  STR_PLIST_FILEPATH="/Library/Apple/System/Library/CoreServices/XProtect.app/Contents/Info.plist"
033  STR_XVER=$(/usr/bin/defaults read "$STR_PLIST_FILEPATH" CFBundleShortVersionString)
034  /bin/echo "XprotextAppVer: $STR_XVER"
035  #バージョン
036  STR_PLIST_FILEPATH="/Library/Apple/System/Library/CoreServices/XProtect.app/Contents/XPCServices/XProtectPluginService.xpc/Contents/Info.plist"
037  STR_XVER=$(/usr/bin/defaults read "$STR_PLIST_FILEPATH" CFBundleShortVersionString)
038  /bin/echo "XPC: $STR_XVER"
039  #バージョン
040  STR_PLIST_FILEPATH="/Library/Apple/System/Library/CoreServices/MRT.app/Contents/Info.plist"
041  STR_XVER=$(/usr/bin/defaults read "$STR_PLIST_FILEPATH" CFBundleShortVersionString)
042  /bin/echo "MRT: $STR_XVER"
043
044  #チェック
045  /usr/bin/sudo XProtect check
046  #バージョン
047  XProtect version
048  #ソフトウェアアップデート
049  /usr/sbin/softwareupdate --list --include-config-data
050  /usr/sbin/softwareupdate --install --recommended --include-config-data
051  #アップデート
052  /usr/bin/sudo XProtect update
053  #バージョン
054  XProtect version
055  #ステータス
056  XProtect status
057  #スキャン
058  /Library/Apple/System/Library/CoreServices/XProtect.app/Contents/MacOS/XProtect
059  #バージョン
060  STR_PLIST_FILEPATH="/private/var/protected/xprotect/XProtect.bundle/Contents/Info.plist"
061  STR_XVER=$(/usr/bin/defaults read "$STR_PLIST_FILEPATH" CFBundleShortVersionString)
062  /bin/echo "XprotextVer: $STR_XVER"
063  #バージョン
064  STR_PLIST_FILEPATH="/Library/Apple/System/Library/CoreServices/XProtect.app/Contents/Info.plist"
065  STR_XVER=$(/usr/bin/defaults read "$STR_PLIST_FILEPATH" CFBundleShortVersionString)
066  /bin/echo "XprotextAppVer: $STR_XVER"
067  #バージョン
068  STR_PLIST_FILEPATH="/Library/Apple/System/Library/CoreServices/XProtect.app/Contents/XPCServices/XProtectPluginService.xpc/Contents/Info.plist"
069  STR_XVER=$(/usr/bin/defaults read "$STR_PLIST_FILEPATH" CFBundleShortVersionString)
070  /bin/echo "XPC: $STR_XVER"
071  #バージョン
072  STR_PLIST_FILEPATH="/Library/Apple/System/Library/CoreServices/MRT.app/Contents/Info.plist"
073  STR_XVER=$(/usr/bin/defaults read "$STR_PLIST_FILEPATH" CFBundleShortVersionString)
074  /bin/echo "MRT: $STR_XVER"
075
076fi
077
078exit 0
AppleScriptで生成しました

|

[bash]最新のmacOSのインストーラーをダウンロードする


サンプルコード

サンプルソース(参考)
行番号ソース
001#!/bin/bash
002#com.cocolog-nifty.quicktimer.icefloe
003#################################################
004#ユーザー
005STAT_USR=$(/usr/bin/stat -f%Su /dev/console)
006/bin/echo "STAT_USR(console): $STAT_USR"
007#OS
008STR_PLIST_FILEPATH="/System/Library/CoreServices/.SystemVersionPlatform.plist"
009STR_OSVER=$(/usr/bin/defaults read "$STR_PLIST_FILEPATH" ProductUserVisibleVersion)
010/bin/echo "$STR_OSVER"
011##ユーザー>書類>Apple>SoftwareUpdate
012STR_LOG_DIR="/Users/${STAT_USR}/Documents/Apple/SoftwareUpdate"
013/usr/bin/sudo -u "$STAT_USR" /bin/mkdir -p "$STR_LOG_DIR"
014/usr/bin/sudo -u "$STAT_USR" /bin/chmod 700 "$STR_LOG_DIR"
015STR_DATE=$(/bin/date "+%Y%m%d")
016STR_FILE_NAME="${STR_DATE}.txt"
017STR_LOG_PATH="${STR_LOG_DIR}/$STR_FILE_NAME"
018##フルインストーラーのリスト
019/usr/bin/sudo -u "$STAT_USR" /usr/sbin/softwareupdate --list-full-installers > "$STR_LOG_PATH"
020#最新のバージョン
021STR_VERSION=$(/usr/bin/sed -n '3p' "$STR_LOG_PATH" | /usr/bin/grep -o 'Version: [^,]*' | /usr/bin/awk '{print $2}')
022/bin/echo "$STR_VERSION"
023#ダウンロード
024/usr/sbin/softwareupdate --fetch-full-installer --full-installer-version "$STR_VERSION"
025
026exit 0
027#ここまで 以下参考
028#ソフトウェアアップデート
029/usr/sbin/softwareupdate --list
030/usr/sbin/softwareupdate --list --all
031/usr/sbin/softwareupdate --list --os-only
032/usr/sbin/softwareupdate --list --safari-only
033/usr/sbin/softwareupdate --list-full-installers
034/usr/sbin/softwareupdate --list --include-config-data
035
036/usr/sbin/softwareupdate --fetch-full-installer
037/usr/sbin/softwareupdate --download --all
038/usr/sbin/softwareupdate --download --os-only
039/usr/sbin/softwareupdate --download --safari-only
040/usr/sbin/softwareupdate --download --all --include-config-data
041
042/usr/sbin/softwareupdate --install --recommended --include-config-data
043
044/usr/sbin/softwareupdate --no-scan
045
046/usr/sbin/softwareupdate --dump-state
047/usr/sbin/softwareupdate --install ---history --all
048
049/usr/sbin/softwareupdate --install-rosetta2
050
051exit 0
AppleScriptで生成しました

|

[XProtect]標準アップデート macOS15用更新


サンプルコード

サンプルソース(参考)
行番号ソース
001#!/bin/bash
002#com.cocolog-nifty.quicktimer.icefloe
003#
004#################################################
005###管理者インストールしているか?チェック
006USER_WHOAMI=$(/usr/bin/whoami)
007/bin/echo "ExecPriv(whoami): $USER_WHOAMI"
008if [ "$USER_WHOAMI" != "root" ]; then
009  /bin/echo "このスクリプトを実行するには管理者権限が必要です。"
010  /bin/echo "sudo で実行してください"
011  ### path to me
012  SCRIPT_PATH="${BASH_SOURCE[0]}"
013  /bin/echo "/usr/bin/sudo \"$SCRIPT_PATH\""
014  /bin/echo "↑を実行してください"
015  ###実行しているユーザー名
016  CONSOLE_USER=$(/bin/echo "show State:/Users/ConsoleUser" | /usr/sbin/scutil | /usr/bin/awk '/Name :/ { print $3 }')
017  /bin/echo "ConsoleUser(scutil): $CONSOLE_USER"
018  exit 1
019else
020  ###STAT
021  STAT_USR=$(/usr/bin/stat -f%Su /dev/console)
022  /bin/echo "STAT_USR(console): $STAT_USR"
023  #OS
024  STR_PLIST_FILEPATH="/System/Library/CoreServices/.SystemVersionPlatform.plist"
025  STR_OSVER=$(/usr/bin/defaults read "$STR_PLIST_FILEPATH" ProductUserVisibleVersion)
026  /bin/echo "OSver: ${STR_OSVER}"
027  #バージョン
028  STR_PLIST_FILEPATH="/private/var/protected/xprotect/XProtect.bundle/Contents/Info.plist"
029  STR_XVER=$(/usr/bin/defaults read "$STR_PLIST_FILEPATH" CFBundleShortVersionString)
030  /bin/echo "XprotextVer: $STR_XVER"
031  #バージョン
032  STR_PLIST_FILEPATH="/Library/Apple/System/Library/CoreServices/XProtect.app/Contents/Info.plist"
033  STR_XVER=$(/usr/bin/defaults read "$STR_PLIST_FILEPATH" CFBundleShortVersionString)
034  /bin/echo "XprotextAppVer: $STR_XVER"
035  #バージョン
036  STR_PLIST_FILEPATH="/Library/Apple/System/Library/CoreServices/XProtect.app/Contents/XPCServices/XProtectPluginService.xpc/Contents/Info.plist"
037  STR_XVER=$(/usr/bin/defaults read "$STR_PLIST_FILEPATH" CFBundleShortVersionString)
038  /bin/echo "XPC: $STR_XVER"
039  #バージョン
040  STR_PLIST_FILEPATH="/Library/Apple/System/Library/CoreServices/MRT.app/Contents/Info.plist"
041  STR_XVER=$(/usr/bin/defaults read "$STR_PLIST_FILEPATH" CFBundleShortVersionString)
042  /bin/echo "MRT: $STR_XVER"
043
044  #チェック
045  /usr/bin/sudo XProtect check
046  #バージョン
047  XProtect version
048  #アップデート
049  /usr/bin/sudo XProtect update
050  #バージョン
051  XProtect version
052  #ソフトウェアアップデート
053  /usr/sbin/softwareupdate --list --include-config-data
054  /usr/sbin/softwareupdate --install --recommended --include-config-data
055  #ステータス
056  XProtect status
057  #スキャン
058  /Library/Apple/System/Library/CoreServices/XProtect.app/Contents/MacOS/XProtect
059  #バージョン
060  STR_PLIST_FILEPATH="/private/var/protected/xprotect/XProtect.bundle/Contents/Info.plist"
061  STR_XVER=$(/usr/bin/defaults read "$STR_PLIST_FILEPATH" CFBundleShortVersionString)
062  /bin/echo "XprotextVer: $STR_XVER"
063  #バージョン
064  STR_PLIST_FILEPATH="/Library/Apple/System/Library/CoreServices/XProtect.app/Contents/Info.plist"
065  STR_XVER=$(/usr/bin/defaults read "$STR_PLIST_FILEPATH" CFBundleShortVersionString)
066  /bin/echo "XprotextAppVer: $STR_XVER"
067  #バージョン
068  STR_PLIST_FILEPATH="/Library/Apple/System/Library/CoreServices/XProtect.app/Contents/XPCServices/XProtectPluginService.xpc/Contents/Info.plist"
069  STR_XVER=$(/usr/bin/defaults read "$STR_PLIST_FILEPATH" CFBundleShortVersionString)
070  /bin/echo "XPC: $STR_XVER"
071  #バージョン
072  STR_PLIST_FILEPATH="/Library/Apple/System/Library/CoreServices/MRT.app/Contents/Info.plist"
073  STR_XVER=$(/usr/bin/defaults read "$STR_PLIST_FILEPATH" CFBundleShortVersionString)
074  /bin/echo "MRT: $STR_XVER"
075
076fi
077
078exit 0
AppleScriptで生成しました

|

[XProtect]標準アップデート macOS15用


サンプルコード

サンプルソース(参考)
行番号ソース
001#!/bin/bash
002#com.cocolog-nifty.quicktimer.icefloe
003#
004#################################################
005###管理者インストールしているか?チェック
006USER_WHOAMI=$(/usr/bin/whoami)
007/bin/echo "実行ユーザー(whoami): $USER_WHOAMI"
008if [ "$USER_WHOAMI" != "root" ]; then
009  /bin/echo "このスクリプトを実行するには管理者権限が必要です。"
010  /bin/echo "sudo で実行してください"
011  ### path to me
012  SCRIPT_PATH="${BASH_SOURCE[0]}"
013  /bin/echo "/usr/bin/sudo \"$SCRIPT_PATH\""
014  /bin/echo "↑を実行してください"
015  ###実行しているユーザー名
016  CONSOLE_USER=$(/bin/echo "show State:/Users/ConsoleUser" | /usr/sbin/scutil | /usr/bin/awk '/Name :/ { print $3 }')
017  /bin/echo "コンソールユーザー(scutil): $CONSOLE_USER"
018  exit 1
019else
020#チェック
021/usr/bin/sudo XProtect check
022#バージョン
023XProtect version
024#アップデート
025/usr/bin/sudo XProtect update
026#バージョン
027XProtect version
028#ソフトウェアアップデート
029/usr/sbin/softwareupdate --list --include-config-data
030/usr/sbin/softwareupdate --install --recommended --include-config-data
031#ステータス
032XProtect status
033#スキャン
034/Library/Apple/System/Library/CoreServices/XProtect.app/Contents/MacOS/XProtect 
035fi
036
037
038exit 0
AppleScriptで生成しました

|

メタル(com.apple.metal)のキャッシュをゴミ箱に入れる


AppleScript サンプルコード

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

AppleScript サンプルソース(参考)
行番号ソース
001#!/usr/bin/env osascript
002----+----1----+----2----+-----3----+----4----+----5----+----6----+----7
003#com.cocolog-nifty.quicktimer.icefloe
004# /var/folders/XXX/XXX/Cは主にメタルのキャッシュなので
005# 表示がおかしくなった時のみ有効 それ以外の場合はこの処理は不要
006----+----1----+----2----+-----3----+----4----+----5----+----6----+----7
007use AppleScript version "2.8"
008use framework "Foundation"
009use framework "AppKit"
010use framework "UniformTypeIdentifiers"
011use scripting additions
012property refMe : a reference to current application
013
014#対象の検索語句
015#この語句にマッチしたキャッシュをゴミ箱に入れます
016set strSearchkey to ("com.blackmagic") as text
017
018#T テンポラリーディレクトリ
019set appFileManager to refMe's NSFileManager's defaultManager()
020set ocidTempDirURL to appFileManager's temporaryDirectory()
021set ocidContainerDirPathURL to ocidTempDirURL's URLByDeletingLastPathComponent()
022#C キャッシュディレクトリ
023set strDirName to "C" as text
024set ocidCdirPathURL to ocidContainerDirPathURL's URLByAppendingPathComponent:(strDirName) isDirectory:(true)
025#コンテンツの収集
026set ocidOption to (refMe's NSDirectoryEnumerationSkipsHiddenFiles)
027set ocidKeyArray to refMe's NSMutableArray's alloc()'s initWithCapacity:(0)
028#####収集するキー
029ocidKeyArray's addObject:(refMe's NSURLPathKey)
030ocidKeyArray's addObject:(refMe's NSURLContentModificationDateKey)
031set listResponse to (appFileManager's contentsOfDirectoryAtURL:(ocidCdirPathURL) includingPropertiesForKeys:(ocidKeyArray) options:(ocidOption) |error| :(reference))
032if (item 2 of listResponse) = (missing value) then
033  set ocidFilePathURLArray to (item 1 of listResponse)
034else if (item 2 of listResponse) ≠ (missing value) then
035  set strErrorNO to (item 2 of listResponse)'s code() as text
036  set strErrorMes to (item 2 of listResponse)'s localizedDescription() as text
037  refMe's NSLog("■:" & strErrorNO & strErrorMes)
038  return "エラーしました" & strErrorNO & strErrorMes
039end if
040#パスのソート
041set ocidDescriptorsArray to refMe's NSMutableArray's alloc()'s initWithCapacity:(0)
042set ocidDescriptor to refMe's NSSortDescriptor's sortDescriptorWithKey:("absoluteString") ascending:(no) selector:("localizedStandardCompare:")
043ocidDescriptorsArray's addObject:(ocidDescriptor)
044set ocidSortedURLArray to ocidFilePathURLArray's sortedArrayUsingDescriptors:(ocidDescriptorsArray)
045#リソース格納用のArray
046set ocidResourceArray to refMe's NSMutableArray's alloc()'s initWithCapacity:(0)
047#全てのパスURLを順番に
048repeat with itemSortedURLArray in ocidSortedURLArray
049  #リソースキーをDictで取得して
050  set listResponse to (itemSortedURLArray's resourceValuesForKeys:(ocidKeyArray) |error| :(reference))
051  set ocidResourceValues to (item 1 of listResponse)
052  #Arrayに順に格納していく
053  (ocidResourceArray's addObject:(ocidResourceValues))
054end repeat
055#ソートの定義(ファイル更新日順)
056set ocidDescriptorsArray to refMe's NSMutableArray's alloc()'s initWithCapacity:(0)
057set ocidDescriptor to refMe's NSSortDescriptor's sortDescriptorWithKey:(refMe's NSURLLocalizedTypeDescriptionKey) ascending:(yes) selector:("localizedStandardCompare:")
058ocidDescriptorsArray's addObject:(ocidDescriptor)
059set ocidDescriptor to refMe's NSSortDescriptor's sortDescriptorWithKey:(refMe's NSURLContentModificationDateKey) ascending:(no)
060ocidDescriptorsArray's addObject:(ocidDescriptor)
061#ファイルの修正日でソート
062set ocidSortedResourceArray to ocidResourceArray's sortedArrayUsingDescriptors:(ocidDescriptorsArray)
063#並び変わった日付順のパス
064repeat with itemSortedURLArray in ocidSortedResourceArray
065  set strFilePath to (itemSortedURLArray's valueForKey:("_NSURLPathKey")) as text
066  set dateModDate to (itemSortedURLArray's valueForKey:("NSURLContentModificationDateKey")) as date
067  if strFilePath contains strSearchkey then
068    #NSURLにして
069    set ocidGoToTrashURL to (refMe's NSURL's alloc()'s initFileURLWithPath:(itemSortedURLArray's valueForKey:("_NSURLPathKey")) isDirectory:true)
070    #ゴミ箱へ入れる
071    set ListDone to (appFileManager's trashItemAtURL:(ocidGoToTrashURL) resultingItemURL:(ocidGoToTrashURL) |error| :(reference))
072    if (item 2 of ListDone) ≠ (missing value) then
073      set strErrorNO to (item 2 of ListDone)'s code() as text
074      set strErrorMes to (item 2 of ListDone)'s localizedDescription() as text
075      refMe's NSLog("■:" & strErrorNO & strErrorMes)
076      return "エラーしました" & strErrorNO & strErrorMes
077    end if
078    
079  end if
080end repeat
081
082
083
084
085
086
AppleScriptで生成しました

|

XProtectアップデートチェック


AppleScript サンプルコード

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

AppleScript サンプルソース(参考)
行番号ソース
001#! /usr/bin/env osascript
002----+----1----+----2----+-----3----+----4----+----5----+----6----+----7
003#
004#
005# com.cocolog-nifty.quicktimer.icefloe
006----+----1----+----2----+-----3----+----4----+----5----+----6----+----7
007use AppleScript version "2.8"
008use scripting additions
009
010property refMe : a reference to current application
011
012set strCommandText to ("/bin/zsh -c '/usr/sbin/softwareupdate --list --include-config-data'") as text
013log strCommandText
014try
015  set strResponse to do shell script strCommandText
016  if strResponse contains "Update found" then
017    set strCommandText to ("/bin/zsh -c '/usr/sbin/softwareupdate --install --recommended --include-config-data'") as text
018    log strCommandText
019    try
020      do shell script strCommandText
021    end try
022  end if
023on error
024  log "softwareupdate listでエラーになりました"
025end try
026return "通常はここまでで良い"
027tell application id "co.eclecticlight.SilentKnight"
028  launch
029  activate
030end tell
AppleScriptで生成しました

|

その他のカテゴリー

Acrobat Acrobat 2020 Acrobat AddOn Acrobat Annotation 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 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 Apple AppleScript AppleScript Accessibility AppleScript AppKit AppleScript Applications AppleScript AppStore AppleScript Archive AppleScript Attributes AppleScript Audio 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 Diff AppleScript Disk AppleScript do shell script AppleScript Dock AppleScript DropBox AppleScript Droplet AppleScript eMail AppleScript Encode % AppleScript Encode Decode AppleScript Encode UTF8 AppleScript Error AppleScript EXIFData AppleScript ffmpeg AppleScript File AppleScript Finder AppleScript Firefox AppleScript Folder AppleScript Fonts AppleScript GIF AppleScript Guide AppleScript HTML AppleScript HTML Entity AppleScript Icon AppleScript Illustrator AppleScript Image Events AppleScript Image2PDF AppleScript ImageOptim AppleScript iWork AppleScript Javascript AppleScript Jedit AppleScript Json AppleScript Label AppleScript Leading Zero AppleScript List AppleScript locationd AppleScript LRC AppleScript LSSharedFileList AppleScript m3u8 AppleScript Mail AppleScript MakePDF AppleScript Map AppleScript Math AppleScript Messages AppleScript Microsoft AppleScript Microsoft Edge AppleScript Microsoft Excel AppleScript Mouse AppleScript Movie AppleScript Music AppleScript NetWork AppleScript Notes AppleScript NSArray AppleScript NSArray Sort 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 NSFileManager enumeratorAtURL AppleScript NSFont AppleScript NSFontManager AppleScript NSGraphicsContext 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 NSpoint AppleScript NSPredicate AppleScript NSPrintOperation AppleScript NSRange AppleScript NSRect 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 NSURLSession AppleScript NSUserDefaults AppleScript NSUUID AppleScript NSView AppleScript NSWorkspace AppleScript Numbers AppleScript OAuth AppleScript ObjC AppleScript OneDrive AppleScript Osax AppleScript PDF AppleScript PDFAnnotation AppleScript PDFAnnotationWidget AppleScript PDFContext AppleScript PDFDisplayBox AppleScript PDFDocumentPermissions AppleScript PDFImageRep AppleScript PDFKit AppleScript PDFnUP AppleScript PDFOutline AppleScript Photoshop AppleScript Pictures 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 Sound AppleScript Spotlight AppleScript SRT AppleScript StandardAdditions AppleScript stringByApplyingTransform AppleScript Swift AppleScript System Events AppleScript System Events Plist AppleScript System Settings AppleScript TemporaryItems AppleScript Terminal AppleScript Text AppleScript Text CSV AppleScript Text MD 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 savedSearch AppleScript XML SVG AppleScript XML TTML AppleScript XML webloc AppleScript XMP AppleScript YouTube Applications CityCode github iPhone List lsappinfo Memo Music perl PlistBuddy pluginkit postalcode ReadMe SF Symbols character id SF Symbols Entity sips Skype Slack sqlite TCC Tools Typography Video Wacom Windows zoom