Tagbangers Blog

Active Directoryのパスワードを変更するスクリプト作ってみた(Mac用)

社内でActive Directoryを使用しているんですが、パスワード変更するのが非常に面倒くさい。。。

VMでWindows起動して、パスワード変更だなんて。たったこれだけの作業のために時間使いたくないと思い、スクリプト作っちゃいました。

#!/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/

パスワードを入力して、「>」が表示されれば正常に変更されております!