BullよりElk

洋服と食をこよなく愛するWebプログラマ。

Mac用のActive Directoryのパスワード変更スクリプト作ってみた!

会社でActive Directoryを使用しているんですが、パスワード変更するのが非常に面倒くさい。。。
VMWindows起動して、パスワード変更だなんて。たったこれだけの作業のために時間使いたくないと思い、スクリプト作っちゃいました。

#!/bin/bash

echo -n "ユーザ名を入力してください。 > ";
read NAME;
read -sp "古いパスワードを入力してください。 > " OLD_PASSWD;
echo
read -sp "新しいパスワードを入力してください。 > " NEW_PASSWD;
echo
read -sp "新しいパスワードを入力してください。(確認用) > " NEW_PASSWD_RE;
echo

if [ ${NEW_PASSWD} != ${NEW_PASSWD_RE} ]; then
	echo "### 新しいパスワードが一致しません。 ###";
	exit 1;
fi

sudo dscl /Active\ Directory/[ドメイン名]/All\ Domains/ -passwd /Users/${NAME} ${OLD_PASSWD} ${NEW_PASSWD} 1>/dev/null 2>/dev/null;
RESULT=$?;
if [ ${RESULT} = 0 ]; then
	echo "### パスワードが変更されました。 ###";
elif [ ${RESULT} = 11 ]; then
	echo "### パスワードの変更に失敗しました。 ###";
	exit 11;
elif [ ${RESULT} = 185 ]; then
	echo "### ユーザが存在しません。###";
	exit 185;
else
	echo "### パスワードの変更に失敗しました。 ###";
	exit 1;
fi

※[ドメイン名]のところはよしなに変更してください!
スクリプト起動してユーザ名、旧パスワード、新パスワード、新パスワード(再)を順に入力するだけです!

以下のコマンドで確認できます。パスワードを入力して「>」が表示されれば成功です。

sudo dscl -u [ユーザ名] /Active\ Directory/[ドメイン名]/All\ Domains/