ログインしてさらにmixiを楽しもう

コメントを投稿して情報交換!
更新通知を受け取って、最新情報をゲット!

Apple Remote Desktop in DepthコミュのSend UNIX Command Template

  • mixiチェック
  • このエントリーをはてなブックマークに追加
ARDの強力な機能のひとつにUNIXコマンドを送信する機能をあげることができます。
このUNIXコマンドの送信機能にはテンプレート保存する機能もあり、使い回しが効くという点も見逃せません。

このトピックで自作のテンプレートを共有してみましょう。ということで、自作 UNIX コマンドテンプレート大募集です。
お手軽にコピー&ペーストで持ち出せるように願います。

フォーマット:
# 簡単な説明

command hoge hoge.

# コマンドを実行するときのユーザ名
対象コンピュータの現在のコンソールユーザ あるいは 特定のアカウント

コメント(52)

# ファイルのロック。-R は再帰的に実行させるためのスイッチ。
# chflags [ -R ] [no]uchg /path/to/items

# ファイルをロックする
chflags uchg /path/to/items

# ファイルのロックを解除する
chflags nouchg /path/to/items

# rootで実行すれば確実
#12 の訂正。 Thanks :).

# システム環境設定の省エネルギーのスケジュール設定に同じ。
# 時刻は24時制。年月日時分秒はそれぞれ二桁。
# 指定した日時に終了
pmset schedule shutdown "Month/ Day/Year HH:mm:ss"

# 指定した日時に電源ON
pmset schedule poweron "Month/Day/Year HH:mm:ss"

# rootで実行
#ローカルユーザのパスワード設定

dscl -u admin_name -P admin_password /Local/Default -passwd /Users/username new_password

#rootで実行
Follow-up to #16

この時、ユーザのkey chain をどうするかが悩みどころですね。消しちゃう?
# 指定したNetbootサーバから起動。サーバのIPv4アドレスが10.1.2.3の場合。
# セグメント越えでbootさせる場合に有効。
bless --netboot --server bsdp://10.1.2.3

# Rootで実行。
# サーバアドレスを 255.255.255.255 にすると利用可能なサーバから起動する。
# ただしこの場合は同一セグメント内でサーバを探す。
# NetBoot システムイメージを伸長する。
# 例えば50GBを60GBに伸張し、空き領域を10GB以上にする。
# For only 10.5 or later

NBDMG="/Library/NetBoot/NetBootSP0/your_nbsys/Netboot.dmg"
NewSize=60g

hdiutil resize -size ${NewSize} "${NBDMG}" 2> /dev/null
hdiutil resize -size max -partitiononly "${NBDMG}"

# rootで実行
# リストア
# ソースとターゲットを以下の2行で定義
# dmg ファイルはimagescan済みであること。
SRC="http://www.yourserver.com/asr/build/system.dmg"
TGT="/Volumes/untitled"

/usr/sbin/asr restore --verbose --erase --noprompt --target "$TGT" --source "$SRC"

# Rootで実行
# 機種IDを取得

system_profiler SPHardwareDataType | grep "Model Identifier" | awk -F ": " '{print $2}'

# root またはログインユーザで実行
# ネットワークホームを作成
# ネットワークホームをホストしているサーバで実施。

createhomedir -a

# Rootで実行
# SSHアクセスを有効/無効にする
# Built-inされているテンプレートでは有効にはできるが、無効にはできない。

# 有効
service ssh start

# 無効
service ssh stop

# root で実行
# Input Menuをログインパネルに出す
defaults write /Library/Preferences/com.apple.loginwindow showInputMenu true
# Input Menuをログインパネルに出さない
defaults write /Library/Preferences/com.apple.loginwindow showInputMenu false

# root で実行
# WindowServerの再起動が必要です
# Server のシリアル番号を取得
if [ -x /System/Library/ServerSetup/serversetup ]; then
/System/Library/ServerSetup/serversetup -getServerSerialNumber
else
echo "False!"
fi

# rootで実行。
#機種IDを取得(古い機材が混じっている場合に対応)

# G5以降
system_profiler SPHardwareDataType | grep "Model Identifier" | awk -F ": " '{print $2}'
# G4以前
system_profiler SPHardwareDataType | grep "Machine Model" | awk -F ": " '{print $2}'

# Rootで実行
# ファームウェアパスワードを解除

nvram -d security-mode
nvram -d security-password

#rootで実行
#ファームウェアパスワードを設定

nvram security-mode="command"
nvram security-password="ハッシュ化されたパスワード文字列"

# rootで実行
# "ハッシュ化されたパスワード文字列" は手元の端末で設定して、nvram -pで表示された文字列を使うなどする。
二つ上のだけど、

system_profiler SPHardwareDataType | egrep "(Model Identifier|Machine Model)" | awk '{print $3}'

でG4前,G5後どっちも対応できるかなっと。ああ、awk は -F ": " でいいと思いますが( $3 は手抜きです(^^;
# いわゆる、伝統的歴史的に「PRAMクリア」と呼ばれているもの(笑

nvram -c

# rootで実行。
# Mac OS X 10.5 以降のみ有効。10.4以前には c スイッチがないのです。
#現在のFinder Windowをいったん全部閉じて、ホームを改めて表示する。
osascript <<EndOfMyScript
tell application "Finder"
activate
close every window
open home

-- set current view of Finder window 1 to flow view
-- set current view of Finder window 1 to list view
-- set current view of Finder window 1 to column view
set current view of Finder window 1 to icon view

set bounds of Finder window 1 to {70, 96, 896, 596}

end tell
EndOfMyScript

# 現在のログインユーザで実行。
# DHCPで取得したIPアドレスを解放し新たに取得する。

ipconfig set en0 DHCP

# rootで実行
# プリンタのすべてのJobをキャンセルする

cancel -a

# rootで実行
# プリンタ設定を全削除

# Leopard or later
PRINTERS_CONF="/etc/cups/printers.conf"
CUPS_PLIST="/System/Library/LaunchDaemons/org.cups.cupsd.plist"

launchctl unload "${CUPS_PLIST}"
rm ${PRINTERS_CONF}
launchctl load "${CUPS_PLIST}"


# Tiger or earlier
# See more info; http://www.macosxhints.com/article.php?story=20061203221317612
lpstat -p | awk '{print $2}' | while read printer
do
lpadmin -x $printer
done

# 共にrootで実行
# Check EFI mode, 32bit or 64bit
ioreg -l -p IODeviceTree | grep firmware-abi

# Root or Current user
# Starting up with the 64bit kernel (for Mac OS X 10.6 or later)
# http://support.apple.com/kb/HT3773

EFI=`ioreg -l -p IODeviceTree | grep firmware-abi |grep -c EFI64`
if [ $EFI -eq 1 ]; then
systemsetup -setkernelbootarchitecture x86_64
fi

# root で実行
# Starting up with the 32bit kernel (for Mac OS X 10.6 or later)
# http://support.apple.com/kb/HT3773

systemsetup -setkernelbootarchitecture i386

# root で実行
#ローカルにあるMac OS X Server 10.6 のソフトウエアアップデートサービスに向ける
SVRNAME=swup.pretendco.jp
CATALOG=index-leopard-snowleopard.merged-1.sucatalog
PORT=8088

isTiger=`sw_vers|grep ProductVersion|grep -c 10.4`
if [ $isTiger -eq 1 ]; then
CATALOG=index.sucatalog
fi

MySWUPSvr="http://${SVRNAME}:${PORT}/${CATALOG}"
defaults write /Library/Preferences/com.apple.SoftwareUpdate CatalogURL ${MySWUPSvr}
defaults read /Library/Preferences/com.apple.SoftwareUpdate

# rootで実行
# kickstart のシンボリックリンクを作成

KICKSTART="/System/Library/CoreServices/RemoteManagement/ARDAgent.app/Contents/Resources/kickstart"
if [ -x "$KICKSTART" ]; then
ln -s "$KICKSTART" /usr/sbin/kickstart
fi
ls -l /usr/sbin/kickstart

# rootで実行
#ユニバーサルアクセスで、補助装置にアクセスできるようにする

touch /var/db/.AccessibilityAPIEnabled
chmod 444 /var/db/.AccessibilityAPIEnabled

# rootで実行。
#ユニバーサルアクセスで、補助装置にアクセスできないようにする

rm -f /var/db/.AccessibilityAPIEnabled

# rootで実行。
# NetBootサーバと異なるセグメントでNetbootする。
# クライアントがDHCPサービスを利用できるネットワークであること。
# サーバのアドレスは、IPv4で記述すること。FQDNなどは解決できない。
# 最初の4行を適宜修正して使う。
# Mac OS X 10.6.2 で動作を確認済み

NBSVR=192.168.21.11
NBSYS=NBSys.nbi
TFTPSHARE=NetBoot/NetBootSP0
NBDIR=Volumes/BootImages/Library/${TFTPSHARE}

bless --netboot --booter tftp://${NBSVR}/${TFTPSHARE}/${NBSYS}/i386/booter --kernel tftp://${NBSVR}/${TFTPSHARE}/${NBSYS}/i386/mach.macosx --options "rp=nfs:${NBSVR}:/${NBDIR}:${NBSYS}/NetBoot.dmg" --verbose

# rootで実行
# ポータブルMacでAC電源が接続されているときだけTime Machineバックアップを行う。バッテリ駆動時はバックアップしない。

defaults write /Library/Preferences/com.apple.TimeMachine RequiresACPower -bool true

# rootで実行
# 起動ディスクの名前を今起動しているシステムのビルド番号にする。
# 例: Mac OS X 10.6.4, 10F569 の場合、 10F569HD とします。

BV=`sw_vers|grep Build|awk '{print $2}'`
diskutil rename / ${BV}HD

# rootで実行
# Mac OS X Server のシリアルナンバーを設定する。
# Mac OS X Server 10.6 以降であること。
# リモートがDesktop OSかServer OSであるかの判断はしないので、実行者が確認すること。

UCM="/System/Library/ServerSetup/serverserialnumberutil"
SN="XSVR-106-123-X-ABC-DEF-GHI-JKL-MNO-PQR-S"
REG=""
ORG=""

if [ -x "$UCM" ]; then
"$UCM" -set "$SN" "$REG" "$ORG"
"$UCM" -get
else
echo "$UCM is not found. Is this Mac OS X Server 10.6 or later?"
fi

# rootで実行
そのうち時間がある時に確認しようと思いますが、
/etc/systemserialnumbers/xsvr
に直接書き込むのはどうなんでしょうか。
1. Send UNIX Command であればログインしなくていい。
2. serverserialnumberutilで実行すると、間違ったシリアルナンバーの場合を検出するので、xsvrファイルを手でいじるより安全。
# AirMacの電源を落とす。
# リモート端末が無線でのみ接続している時にはやってはいけない。わかるね。
# MacBook Air の場合device fileがen0のはず。Mac Proは多分、en3。ifconfigなどで確認。

dev=en1
networksetup -setairportpower $dev off
networksetup -getairportpower $dev

# rootで実行。
# Mobile Accountがログインできなくなった場合の対処。
# http://support.apple.com/kb/TS3117?viewlocale=ja_JP
# 事前にOpen Directory Masterでアカウントを有効にしておくこと。このスクリプトはそれを確認しません。
# \マークはバックスラッシュに書き換えて実行する必要があります。

# ログインできなくなったユーザアカウント
DISABLEDUSER="you"

dscl . -read /Users/${DISABLEDUSER} AuthenticationAuthority
cp /private/var/db/dslocal/nodes/Default/users/${DISABLEDUSER}.plist /private/var/db/dslocal/nodes/Default/users/${DISABLEDUSER}.plist.backup
sed 's/\;DisabledUser\;// ' /private/var/db/dslocal/nodes/Default/users/${DISABLEDUSER}.plist > /private/var/db/dslocal/nodes/Default/users/${DISABLEDUSER}.plist.new
mv /private/var/db/dslocal/nodes/Default/users/${DISABLEDUSER}.plist.new /private/var/db/dslocal/nodes/Default/users/${DISABLEDUSER}.plist
dscl . -read /Users/${DISABLEDUSER} AuthenticationAuthority


# rootで実行

ログインすると、残り15件のコメントが見れるよ

mixiユーザー
ログインしてコメントしよう!

Apple Remote Desktop in Depth 更新情報

Apple Remote Desktop in Depthのメンバーはこんなコミュニティにも参加しています

星印の数は、共通して参加しているメンバーが多いほど増えます。

人気コミュニティランキング