- 投稿日:2019-05-12T23:28:07+09:00
puppeteerを体験してみた
puppeteer とは、GUIを操作することなく、プログラムからAPIでブラウザ(Chrome)を制御できる Node.js で作られたライブラリです。
https://webbibouroku.com/Blog/Article/puppeteer何ができるのか
- 自動でchromeを立ち上げて検索し、要素をとってくる
- 検索結果のスクショをとったり
- webサイトにログインしたり
- 自動テストを走らせてslackに結果を表示したりもできる1. node.jsのインストール
参考にしたサイト
https://qiita.com/kyosuke5_20/items/c5f68fc9d89b84c0df09【手順】
- Homebrewを使用してnodebrewをインストール
$ brew install nodebrew
- パスを通す
$ echo 'export PATH=$HOME/.nodebrew/current/bin:$PATH' >> ~/.bash_profile
ターミナルを再起動
ディレクトリを作成して
$ mkdir -p ~/.nodebrew/src-最新のバージョンをインストール
$ nodebrew install-binary latest-バージョンの有効化
$ nodebrew use v7.1.0バージョンの確認で以下のように表示されたらOK
$node -v >v12.2.02.puppeteerのインストール
参考にしたサイト
https://www.wakuwakubank.com/posts/620-javascript-puppeteer/
$ npm install --save puppeteer3. 使ってみる
sample.jsを作成
sample.jsconst puppeteer = require('puppeteer'); (async () => { const browser = await puppeteer.launch({ headless: false, // ブラウザが動く様子を確認する slowMo: 300 // 動作確認しやすいようにpuppeteerの操作を遅延させる }) const page = await browser.newPage() //chromeを開く await page.goto('https://www.google.com/') // 検索窓に「こんにちは」と入力 await page.type('input[name=q]', 'こんにちは', { delay: 50 }) //検索 await page.click('input[type="submit"]') //スクリーンショット await page.screenshot({ path: 'screenshot/sample1.png' }) await browser.close() })()上記ファイルが置いてあるディレクトリに移動して、
スクリーンショットを保存するフォルダを作成
$ mkdir screenshotいざ、実行
$node sample.js自動でtwitterにログインしてみる
以下のサンプルコードを参考にしました
https://github.com/checkly/puppeteer-examples環境変数でユーザー名とパスワードを設定
config.json{ "TWITTER_USER": "ユーザー名", "TWITTER_PWD": "パスワード" }gitにpushする際は上記ファイルを除外します
twitter.jsconst puppeteer = require('puppeteer'); const {TWITTER_USER, TWITTER_PWD} = require('./config.json'); (async () => { const browser = await puppeteer.launch({ headless: false, slowMo: 300 }) const page = await browser.newPage() await page.setViewport({ width: 1280, height: 800 }) const navigationPromise = page.waitForNavigation() await page.goto('https://twitter.com/') await page.waitForSelector('.StaticLoggedOutHomePage-cell > .StaticLoggedOutHomePage-login > .LoginForm > .LoginForm-username > .text-input') await page.type('.StaticLoggedOutHomePage-cell > .StaticLoggedOutHomePage-login > .LoginForm > .LoginForm-username > .text-input', TWITTER_USER) await page.type('.StaticLoggedOutHomePage-cell > .StaticLoggedOutHomePage-login > .LoginForm > .LoginForm-password > .text-input', TWITTER_PWD) await page.click('.StaticLoggedOutHomePage-content > .StaticLoggedOutHomePage-cell > .StaticLoggedOutHomePage-login > .LoginForm > .EdgeButton') await navigationPromise await page.waitForSelector('#timeline') await page.screenshot({ path: 'screenshot/sample2.png' }) await browser.close() })()ターミナルで実行
$node sample2.js前回同様、自動でchromeが立ち上がり、twiiterを検索して、ユーザー名とパスワードを入力してくれます。
感想
勝手に動いている様子を見ていると、なんだかすごいことをしているようで、楽しい。
もっと実用的なのを考えてみたい。進捗があれば追記します。
- 投稿日:2019-05-12T21:08:19+09:00
AWSのEC2にmacからSSHする方法
AWSのEC2へSSH接続したい時があったのでまとめます。
1.キーペアの作成
AWSコンソールのEC2を選択し、キーペアをクリックします。
キーペア画面が開かれるのでキーペアの作成を押すと秘密鍵(pem)がダウンロードされます。2.秘密鍵ファイルの移動と権限設定
ダウンロードしたファイルを~/.ssh以下に移動し、権限変更します
mv /Users/username/Downloads/web_app.pem ~/.ssh chmod 600 /Users/username/.ssh/○○.pem3.terminalからssh接続を行う
amazon linuxのEC2の初期ユーザ名は[ec2-user]です。
ssh -i /Users/username/.ssh/○○.pem ec2-user@ec2のグローバルIP __| __|_ ) _| ( / Amazon Linux AMI ___|\___|___| https://aws.amazon.com/amazon-linux-ami/2018.03-release-notes/ 15 package(s) needed for security, out of 22 available Run "sudo yum update" to apply all updates. [ec2-user@ip-10-0-0-54 ~]$以上です。
- 投稿日:2019-05-12T20:31:38+09:00
Linuxのファイル権限(written by begginer)
ファイル権限が問題で、タスク進まないことがよくあったので、自分でまとめます。
まず、権限の種類には、
「read」「write」「execute」がある。
それぞれが固有の番号を持っていて、
数字 モード 権限 4 r 読み取り 2 w 書き取り 1 x 実行 上のようになっていて、つまり数字だけで表す時はこうなります。
数字 モード 権限 7 rwx 読み取り/書き取り/実行 6 rw- 読み取り/書き取り 5 r-x 読み取り/実行 4 r-- 読み取り - --x 実行 ファイル権限を見るためのコマンド。
ls -lすると
drwxr-xr-x 4 user staff 128 May 5 21:41 vue左の10文字の文字列を説明します。
1番目の文字はディレクトリかそうでないかを表します。
dならディレクトリ。-ならファイル2-4番目は「所有者」の権限
5-7番目は「所有グループ」の権限
8-10番目は「その他」の権限次は権限の変更の仕方です。
次のコマンドで変更できます。chmod 権限の数字 対象ファイル/ディレクトリ上のvueディレクトリの権限を変えたい場合は
chmod 764 vueのようになります。
764が以下を表します
1番目の数字は「所有者」が7の権限を持つ。つまりrwxです。
2番目の数字は「所有グループ」が6の権限を持つ。つまりrw-です。
3番目の数字は「その他」が4の権限を持つ。つまりr--です。こちらのブログを参考にさせていただきました。
こちらの方が、よりわかりやすいと思います。笑
Linuxの権限確認と変更(chmod)(超初心者向け)
- 投稿日:2019-05-12T16:53:43+09:00
[Java/PostgreSQL]WEBアプリをデータベースに接続する
この記事の内容
Eclipseで開発しているWEBアプリとデータベースを接続する方法
この記事を書いた理由
忘れた時に確認するため
この記事を書いた人の特徴
2011年 国立大教育学部卒(当時、プログラミングに全く興味なし)
大学卒業後、伊勢丹・リクルート等で勤務。
2016年頃〜 独学でプログラミングの勉強をスタート
(Railsでアプリを開発できるようになる)
2018年〜 SEとして勤務RailsではDBの設定はコマンドを入力すれば自動的に処理できた。
Javaでは、その設定を自分でする必要があるのでその勉強を兼ねてこの記事を書いた。開発環境
PC: Mac
OS: MacOS Mojave
言語: Java
IDE: Eclipse
DB: PostgreSQL
DB管理ツール: pgAdmin前提条件
接続先のデータベースについて
・接続先のデータベースは、ローカル環境(ポート:5432)である
・sampleデータベースにはcustomerテーブルが存在する
・customerテーブルには下記のサンプルデータが格納されているSQLSELECT * FROM customer;実行結果id | name | email | password ------+----------+---------------------+---------- 0001 | sample1 | sample1@sample.com | password 0002 | sample2 | sample2@sample.com | password 0003 | sample3 | sample3@sample.com | password 0004 | sample4 | sample4@sample.com | password 0005 | sample5 | sample5@sample.com | password 0006 | sample6 | sample6@sample.com | password 0007 | sample7 | sample7@sample.com | password 0008 | sample8 | sample8@sample.com | password 0009 | sample9 | sample9@sample.com | password 0010 | sample10 | sample10@sample.com | password (10 rows)Eclipseで開発しているWEBアプリについて
・このWEBアプリは、動的WEBプロジェクト(Dynamic WEB Project)として作成
・このWEBアプリは http://localhost:8080/sample/sample2 にアクセスすることを想定するコード例
Sampleapp2.javapackage jp.co.sample; import java.io.*; import javax.servlet.*; import javax.servlet.http.*; import java.sql.*; public class Sampleapp2 extends HttpServlet { private static final long serialVersionUID = 1L; public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException { response.setContentType("text/html"); PrintWriter out = response.getWriter(); out.println("<html>"); out.println("<style>table,th,td,tr{border: 1px solid black};</style>"); out.println("<body>"); out.println("<h1>Sampleapp by Java Servlet</h1>"); out.println("</body>"); out.println("</html>"); String url = "jdbc:postgresql://localhost:5432/sample"; String user = "USERNAME"; String password = "PASSWORD"; try{ Class.forName("org.postgresql.Driver"); System.out.println("データベースの接続に成功しました"); } catch(Exception e) { e.printStackTrace(); } try { Connection conn = DriverManager.getConnection(url, user, password); conn.setAutoCommit(false); Statement stmt = conn.createStatement(); String sql = "SELECT * FROM customer"; ResultSet rset = stmt.executeQuery(sql); out.println("<table>"); out.println("<tr><th>ID</th><th>UserName</th><th>Email</th></tr>"); while(rset.next()) { out.println("<tr><td>" + rset.getString("id") + "</td><td>" + rset.getString("name") + "</td><td>" + rset.getString("email") + "</td></tr>"); } out.println("</table>"); } catch (Exception e) { System.out.println("Exception: " + e.getMessage()); } } }ポイント
WEB-INF/libディレクトリに .jarファイル を配置する
実行結果
WEBアプリのサーバーを実行し、http://localhost:8080/sample/sample2 にアクセスする
Eclipseのコンソール5月 12, 2019 4:26:33 午後 org.apache.catalina.startup.VersionLoggerListener log 情報: Server version name: Apache Tomcat/9.0.14 (中略) 5月 12, 2019 4:26:35 午後 org.apache.catalina.startup.Catalina start 情報: サーバーの起動 [1,215]ms データベースの接続に成功しましたブラウザで画面を確認
データベースに格納したデータがブラウザに表示されていることが確認できた。今後やりたいこと
データの保存・編集・更新・削除
AWS上に置いたDBとの連携感想
Railsではコマンド数行書いて実行すれば自動的に設定できるDB.
Javaでは一つ一つ自分で設定しなければならないのが面倒。
- 投稿日:2019-05-12T16:53:43+09:00
[ Java + PostgreSQL ] WEBアプリをデータベースに接続する
この記事の内容
Eclipseで開発しているWEBアプリとデータベースを接続する方法
この記事を書いた理由
忘れた時に確認するため
この記事を書いた人の特徴
2011年 国立大教育学部卒(当時、プログラミングに全く興味なし)
大学卒業後、伊勢丹・リクルート等で勤務。
2016年頃〜 独学でプログラミングの勉強をスタート
(Railsでアプリを開発できるようになる)
2018年〜 SEとして勤務RailsではDBの設定はコマンドを入力すれば自動的に処理できた。
Javaでは、その設定を自分でする必要があるのでその勉強を兼ねてこの記事を書いた。開発環境
PC: Mac
OS: MacOS Mojave
言語: Java
IDE: Eclipse
DB: PostgreSQL
DB管理ツール: pgAdmin前提条件
接続先のデータベースについて
・接続先のデータベースは、ローカル環境(ポート:5432)である
・sampleデータベースにはcustomerテーブルが存在する
・customerテーブルには下記のサンプルデータが格納されているSQLSELECT * FROM customer;実行結果id | name | email | password ------+----------+---------------------+---------- 0001 | sample1 | sample1@sample.com | password 0002 | sample2 | sample2@sample.com | password 0003 | sample3 | sample3@sample.com | password 0004 | sample4 | sample4@sample.com | password 0005 | sample5 | sample5@sample.com | password 0006 | sample6 | sample6@sample.com | password 0007 | sample7 | sample7@sample.com | password 0008 | sample8 | sample8@sample.com | password 0009 | sample9 | sample9@sample.com | password 0010 | sample10 | sample10@sample.com | password (10 rows)Eclipseで開発しているWEBアプリについて
・このWEBアプリは、動的WEBプロジェクト(Dynamic WEB Project)として作成
・このWEBアプリは http://localhost:8080/sample/sample2 にアクセスすることを想定するコード例
Sampleapp2.javapackage jp.co.sample; import java.io.*; import javax.servlet.*; import javax.servlet.http.*; import java.sql.*; public class Sampleapp2 extends HttpServlet { private static final long serialVersionUID = 1L; public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException { response.setContentType("text/html"); PrintWriter out = response.getWriter(); out.println("<html>"); out.println("<style>table,th,td,tr{border: 1px solid black};</style>"); out.println("<body>"); out.println("<h1>Sampleapp by Java Servlet</h1>"); out.println("</body>"); out.println("</html>"); String url = "jdbc:postgresql://localhost:5432/sample"; String user = "USERNAME"; String password = "PASSWORD"; try{ Class.forName("org.postgresql.Driver"); System.out.println("データベースの接続に成功しました"); } catch(Exception e) { e.printStackTrace(); } try { Connection conn = DriverManager.getConnection(url, user, password); conn.setAutoCommit(false); Statement stmt = conn.createStatement(); String sql = "SELECT * FROM customer"; ResultSet rset = stmt.executeQuery(sql); out.println("<table>"); out.println("<tr><th>ID</th><th>UserName</th><th>Email</th></tr>"); while(rset.next()) { out.println("<tr><td>" + rset.getString("id") + "</td><td>" + rset.getString("name") + "</td><td>" + rset.getString("email") + "</td></tr>"); } out.println("</table>"); } catch (Exception e) { System.out.println("Exception: " + e.getMessage()); } } }ポイント
WEB-INF/libディレクトリに .jarファイル を配置する
実行結果
WEBアプリのサーバーを実行し、http://localhost:8080/sample/sample2 にアクセスする
Eclipseのコンソール5月 12, 2019 4:26:33 午後 org.apache.catalina.startup.VersionLoggerListener log 情報: Server version name: Apache Tomcat/9.0.14 (中略) 5月 12, 2019 4:26:35 午後 org.apache.catalina.startup.Catalina start 情報: サーバーの起動 [1,215]ms データベースの接続に成功しましたブラウザで画面を確認
データベースに格納したデータがブラウザに表示されていることが確認できた。今後やりたいこと
データの保存・編集・更新・削除
AWS上に置いたDBとの連携感想
Railsではコマンド数行書いて実行すれば自動的に設定できるDB.
Javaでは一つ一つ自分で設定しなければならないのが面倒。
- 投稿日:2019-05-12T16:52:53+09:00
Xcodeの設定を複数の端末で共有する
はじめに
MacBookProを買い換えたときや、複数台のMacを利用するときに、端末ごとにXcodeの設定(テンプレートとショートカットキー)をいじるのは面倒だったのでGitHubのプライベートリポジトリで共有するようにした。
1.リポジトリを作ってクローンする
GitHubでプライベートリポジトリを作って任意の場所にクローンする。
ここは別にGitHubじゃなくてDropboxとかでも良いと思う。2.コピー元の端末の設定フォルダをクローンしたレポジトリにコピペしてプッシュ
/Users/"user_name"/Library/Developer/Xcode配下にある。自分の場合は適当にTemplatesフォルダとUserDataフォルダをコピペした。3.コピー元の端末の設定ファイルを削除してシンボリックリンクを作る。
/Users/"user_name"/Library/Developer/Xcode配下にあるUserData,Templatesフォルダを削除。
そしてシンボリックリンクを作る。詳しくはこことかln -s 'リポジトリにコピーしたフォルダのパス' '/Users/"user_name"/Library/Developer/Xcode'自分の場合は
ln -s /Users/"user_name"/Git/xcode-setting/UserData /Users/"user_name"/Library/Developer/Xcode/UserDataln -s /Users/"user_name"/Git/xcode-setting/Templates /Users/"user_name"/Library/Developer/Xcode/TemplatesこうするとXcodeがリポジトリの
UserDataとTemplatesを読み込んでくれるようになる。4.設定をコピーしたい端末側でリポジトリをpullしてシンボリックリンクを作る
設定ファイルをリモートから取得した後に、3と同様にシンボリックリンクを作る。
これで、とりあえずショートカットキーの設定と、テンプレートを複数の端末で共有ができるようになったはず。
- 投稿日:2019-05-12T16:50:57+09:00
Cyberduckのブックマーク(接続先)をバックアップして復元する
MacのOSをクリーンインストールする際に Cyberduckのブックマーク(接続先)をバックアップし、復元した際の覚書です。
環境
- macOS Mojave 10.14.3
- Cyberduck 6.9.3
バックアップするファイルのディレクトリ
/Users/username/Library/Group Containers/xxx.duck/Library/Application Support/duck/BookMarks/xxx.duckのxxx部分は環境によって異なります
ブックマークをバックアップし、復元する方法
説明するまでもないですが、上記ディレクトリのBookMarksに保存した接続先の設定ファイルが接続先の数だけ保存されています。
OSのクリーンインストール等でアプリを再インストールする際にバックアップしておいたファイルを元のディレクトリに戻してあげる事でブックマークを復元できます。
/Users/username/Libraly/ ディレクトリは不可視ディレクトリになっていますので
cmd + shift + .で不可視ファイルを表示させるFinder等で
/Users/username/Library/Group Containers/xxx.duck/Library/Application Support/duck/BookMarks/の中身をコピーし、ブックマークをバックアップするブックマークを復元したい環境でバックアップしておいたBookmarks/の中身を復元先の同じディレクトリに移動する
Cyberduckを起動するとブックマークが復元されます
Bookmarksを編集する際は、Cyberduckは終了しておいた方がいいかもしれません
私はこの方法で復元できましたが、環境によって多少異なる場合がありますのであくまで自己責任でお願いします。
- 投稿日:2019-05-12T14:27:11+09:00
#zsh + #Mac でコンソールに現在入力中の行をクリップボードにコピーする例
- 投稿日:2019-05-12T14:23:16+09:00
自分用Macの設定メモ
仕事ではMacbookPro、プライベートではMacbookAirを使用している。
せっかくなので、自分が使いやすいような設定を記録しておく。
端末の初期設定
トラックパッドの設定
言語入力
- Google日本語入力のみを使用する
バッテリ残量に%表示追加
- バッテリアイコン→「割合を表示」
スクリーンセーバ調整
- バッテリアイコン→省エネルギー環境設定
- システム環境設定→デスクトップとスクリーンセーバ→スクリーンセーバ→開始までの時間
メニューバーの時計表示
- 時計アイコン→日付と時刻環境設定→時計
Dockカスタム
- システム環境設定→Dock→「Dockを自動的に表示/非表示」
- Finder以外は削除して、起動しているアプリだけが表示されている状態にする
- アプリの起動はspotlightを使う
コンピュータ名を非表示
- システム環境設定→共有→コンピュータ名
ファンクションキーの挙動変更
- システム環境設定→キーボード→「F1、F2などの~」
デスクトップに表示する項目
- Finder→環境設定→「デスクトップに表示する項目」
デスクトップアイコンの自動整列
- Finder→表示→表示順序
アイコンやテキストのサイズ変更・項目情報の表示
- Finder→表示→表示オプション
- ディスプレイの解像度設定で一括でフォントサイズ変更ができる
パスバーとタブバーを表示
- Finder→表示→「パスバーを表示」「タブバーを表示」
ログイン時のアプリ起動設定
- システム環境設定→ユーザとグループ→ログイン項目
PC再開時のパスワード要求
- システム環境設定→セキュリティとプライバシー→「スリープとスクリーンセーバー~」
備忘録
個人用Tips
通知センター
ウィジェット追加できる
アクティビティモニタ
PCのリソース状況が見える
DigitalColorMater
カーソルが当たっている個所のRGBがわかる
mac→macの買い替え
移行アシスタントが使える
バッテリ消費の激しいアプリチェック
バッテリアイコンクリック
充電時はケースを外した方がいい
熱がこもる
- 投稿日:2019-05-12T00:29:12+09:00
Macを管理する。その① USBを抹殺する(ストレージのみ)
背景
当社では、ほぼ全社員がMacを使っている。
Windowsと違い、Macでは管理する上で必要な色々な事ができない(ハードルがある)
実現までに四苦八苦したので、経緯を書き留めておきます。目次
- USBを抹殺する(ストレージのみ) ←今回はコレ
- FWを強制する
- Bluetooth共有を抹殺する
- プリンタを制御する
- パスワードポリシーを設定する
- 特定のWebサイトへのアクセスを禁止する
などなど。
やること
Macにストレージを接続できないようにし、データの流出を防ぐ
*今回のお題を実現するには、Macへプロファイルを配布できる環境が必要です。
やってみる
今回色々やりました。
- 導入しているMDMで設定を試みる(そもそもUSB制御する項目がなかった)
- Macを直接イジってできないか試みる(できた所で運用回らないから止めた)
- Mac Serverを導入(結果これでできたが、細かな制御ができなかった)
- プロファイルを手で書く ←今回はコレ
では、書く。
mobileconfig<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <dict> <key>PayloadContent</key> <array> <dict> <key>PayloadEnabled</key> <true/> <key>PayloadDisplayName</key> <string>Restrictions</string> <key>PayloadIdentifier</key> <string>com.apple.systemuiserver</string> <key>PayloadType</key> <string>com.apple.systemuiserver</string> <key>PayloadUUID</key> <string>XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX</string> <key>PayloadVersion</key> <integer>1</integer> <key>mount-controls</key> <dict> <key>harddisk-external</key> <array> <string>eject</string> <string>alert</string> </array> </dict> </dict> </array> <key>PayloadDescription</key> <string>Mac_Disable storage</string> <key>PayloadDisplayName</key> <string>Mac_Disable storage</string> <key>PayloadIdentifier</key> <string>com.apple.systemuiserver</string> <key>PayloadOrganization</key> <string>COMPANY Name</string> <key>PayloadScope</key> <string>system</string> <key>PayloadType</key> <string>Configuration</string> <key>PayloadUUID</key> <string>XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX</string> <key>PayloadVersion</key> <integer>1</integer> <key>PayloadRemovalDisallowed</key> <true/> </dict> </plist>上記プロファイルは、おおよそ3段構成になっている。
上から順に先ず、ヘッダー(お約束みたいなやつ)
mobileconfig<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0">実際に制御をかける箇所
mobileconfig<key>PayloadContent</key> <array> <dict> <key>PayloadEnabled</key> <true/> <key>PayloadDisplayName</key> <string>Restrictions</string> <key>PayloadIdentifier</key> <!-- 何の制御をかけたいかを記載。今回は下記。--> <string>com.apple.systemuiserver</string> <key>PayloadType</key> <!-- 何の制御をかけたいかを記載。今回は下記。--> <string>com.apple.systemuiserver</string> <key>PayloadUUID</key> <!-- 色々プロファイル当てる場合は一意になるUUIDを記載 --> <string>XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX</string> <key>PayloadVersion</key> <integer>1</integer> <!-- ここから下が制御をかける箇所 --> <key>mount-controls</key> <dict> <!-- 外付けストレージ禁止 --> <key>harddisk-external</key> <array> <string>eject</string> <string>alert</string> </array> </dict> </dict> </array>プロファイル自体の基本設定のような箇所
mobileconfig<key>PayloadDescription</key> <string>Mac_Disable storage</string> <key>PayloadDisplayName</key> <string>Mac_Disable storage</string> <key>PayloadIdentifier</key> <!-- 何の制御をかけたいかを記載。今回は下記。--> <string>com.apple.systemuiserver</string> <key>PayloadOrganization</key> <string>COMPANY Name </string> <key>PayloadScope</key> <!-- Windowsで言う所のユーザーポリシーかコンピューターか --> <string>system</string> <key>PayloadType</key> <string>Configuration</string> <key>PayloadUUID</key> <string>XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX</string> <key>PayloadVersion</key> <integer>1</integer>あとは、できたプロファイルを配布すれば完了です。
まとめ
調べる過程で、Macでもプロファイル書けば色々制御できる事がわかった。
これは活用できそうだ!









