コミュニティでの投票について

コミュニティでの投票について解説した記事を公開しました。

Apple ID の不正利用を確認する方法

Apple ID の使い方や不正利用を確認する方法についてご紹介しています。

しばらく返答が寄せられていないようです。 再度ディスカッションを開始するには、新たに質問してください。

Macのインベトリ収集方法

Macを業務用で使用していますが、ソフトウエア資産管理上インベトリを収集したいのですが、データで収集できる方法教えてください。

iMac (21.5-inch Mid 2011), OS X Mountain Lion (10.8.5)

投稿日 2013/10/17 12:06

返信
スレッドに付いたマーク ランキングトップの返信

投稿日 2013/10/17 12:26

失礼致します。 『システム情報』のことでしょうか? → Mac に関する詳細情報を表示する


『システムレポート』を開いて、Software>Applicationsでインストールされているアプリケーションの一覧が表示されますよ。

返信: 8
スレッドに付いたマーク ランキングトップの返信

2013/10/17 12:26 哲也139 への返信

失礼致します。 『システム情報』のことでしょうか? → Mac に関する詳細情報を表示する


『システムレポート』を開いて、Software>Applicationsでインストールされているアプリケーションの一覧が表示されますよ。

2013/10/17 15:15 哲也139 への返信

度々、失礼致します。  私も初めて気づいたのですが、『システム情報』で表示されるアプリケーションの一覧はコピペできないですね。 すみません。 ファイルメニューから保存を実行しても、拡張子がspxのxmlファイルが作られてしまいます。 これをテキストエディットで開くことはできますが、Excelのスプレッドシートに読み込むには、かなり複雑な編集が必要そうなので、ちょっと簡単にはできないですね。 もう少し調べてみます。

2013/10/17 16:49 T22T への返信

追記:Automatorに『システムプロファイル』のアクションがありました(下図1)。これを使うとテキストファイルに出力できますよ(下図2)。 『システムプロファイル』のアクションの下にある、『すべてを選択解除』を押した後に、『Applications』にチェックを入れます。 AutomatorのWorkflow作成画面の左上の実行ボタンを押してみてください。 デスクトップに『Untiled.txt』のような名前のファイルができます。 ただし、そのままExcelのスプレッドシートに読み込むためには、少し編集しなおす必要がありそうです。


図1

ユーザがアップロードしたファイル

図2

ユーザがアップロードしたファイル

2013/10/17 17:54 哲也139 への返信

システム情報の「保存」をしてできる

spxファイルを読み込んでみることを考えてみました。


spxは実体がplistなのでApplescriptで読み込んで加工できると思います。

(このスクリプトは/アプリケーション/ユーティリティー/AppleScript エディタ で使うことを想定しています。)

わたしも試しに作ってみましたが重いです。500appで数分でかかります。

さらにアプリケーション名に,が入っている場合に対応していません。

項目の追加は、ファイルとスクリプトを見比べて勘でやってください。

()部分は書き換えてください(2カ所)。ファイル指定は

AppleScript エディタのウインドウ上に

ファイルをドラッグすると適切に書かれるはずです。


tell application "System Events"

set out to ""

set p_list to property list file ("(ここにspxファイルを指定)")


repeat with i in property list items of p_list

--データをさがす

if value of property list item "_dataType" of i is "SPApplicationsDataType" then

set APPS to property list item "_items" of i

repeat with ii in property list items of APPS

--各項目を取得する部分

if exists value of property list item "_name" of ii then

set Aname to value of property list item "_name" of ii

else

set Aname to ""

end if

if exists value of property list item "version" of ii then

set Aversion to value of property list item "version" of ii

else

set Aversion to ""

end if

if exists value of property list item "runtime_environment" of ii then

set Are to value of property list item "runtime_environment" of ii

else

set Are to ""

end if

if exists value of property list item "path" of ii then

set Apath to value of property list item "path" of ii

else

set Apath to ""

end if

--変数に突っ込んで、

set out to out & Aname & "," & Aversion & "," & Are & "," & Apath & "

"


end repeat

end if

end repeat

do shell script "/bin/echo " & quoted form of out & " > " & quoted form of "(ここに出力先(csv)を指定(上書きします。存在しない名前を指定してください。))"

end tell

2013/10/18 01:03 たかし94 への返信

もうちょっと軽いやつを作ってみました。システム情報を直接読むので xxx.spx は不要。動作確認は Snow Leopard です。Lion 以降で動くかちょっと心配...


on run     set str1 to "出力ファイル"     set str2 to "アプリケーション一覧.txt"     try         set mac_path to choose file name with prompt str1 default name str2         set pos_path to POSIX path of mac_path         my parse_spx(pos_path)     on error err_msg         return err_msg     end try end run on parse_spx(pos_path)     set pos_path to quoted form of pos_path     set code to quoted form of " import plistlib import subprocess cmd  = ['system_profiler', '-xml', 'SPApplicationsDataType'] pipe = subprocess.PIPE proc = subprocess.Popen(cmd, stdout = pipe).communicate()[0] plst = plistlib.readPlistFromString(proc) for e in plst[0]['_items']:     try: e1 = e['_name'].encode('utf8')     except: e1 = 'none'     try: e2 = e['version'].encode('utf8')     except: e2 = 'none'     try: e3 = e['runtime_environment'].encode('utf8')     except: e3 = 'none'     try: e4 = e['path'].encode('utf8')     except: e4 = 'none'     print e1,'\\t',e2,'\\t',e3,'\\t',e4 "     do shell script "python -c " & code & " 2>/dev/null > " & pos_path end parse_spx


追記: 書き出しはタブ区切りです

Macのインベトリ収集方法

Apple サポートコミュニティへようこそ
Apple ユーザ同士でお使いの製品について助け合うフォーラムです。Apple ID を使ってご参加ください。