batファイルでパスワード関係のポリシーを設定する

簡単な「1234」などのパスワードをパソコンログオン時に設定しないように制限をかけることができます。

それには通常、ローカルセキュリティポリシーで設定します。が、それをbatファイルで行います。

短いパスワードを設定すると、辞書やパスワードに対するブルート フォース攻撃を行うツールで簡単に壊れる可能性があるため、セキュリティが低下します。

また、非常に長いパスワードを要求すると、パスワードが誤って入力され、アカウントのロックアウトが発生し、管理部門への呼び出し量が増える可能性があります。

パスワードポリシーには、パスワードの長さ、パスワードの文字種類、パスワードの有効期間などのルールを決めることが出来ます。

Windows上からの設定方法

「Windows」 + 「R」キーを同時に押し、「secpol.msc」と入力します。で「OK」を選択

※左下のWindowsマークを右クリックして「ファイル名を指定して実行」でもよい。


左側ペインの「セキュリティの設定」 –>「 アカウントポリシー 」–> 「パスワードのポリシー」を選択します。

パスワードのポリシー

パスワードの最小文字数の監査

以前は、存在しませんでしたが、Windows 10 2020 年 8 月 18 日にリリースされた更新プログラムから出てきた項目です。

パスワード長の監査警告イベントが発行されるパスワードの最小長を決定します。

今回のバッチには含みません。

パスワードの最小文字数の 制限を緩和する

以前は、存在しませんでしたが、Windows 10 2020 年 8 月 18 日にリリースされた更新プログラムから出てきた項目です。

パスワードの最小長の設定を、従来の制限である14を超えて増やすことができるかどうかを定義します。

今回のバッチには含みません。

パスワードの長さ

ユーザー アカウントのパスワードに使用できる最少文字数を決定します。

今回は8文字以上に設定します。

パスワードの変更禁止期間

パスワードが変更可能になるまでの期間 (日数) を決定します。

この期間内は、同じパスワードを使わなければなりません。

パスワードの変更禁止期間は、パスワード有効期間より短い値を設定しなければなりません。

今回のバッチには含みません 。(強制変更期間以外にユーザが任意にパスワードを変更できるようにします)

パスワードの有効期間

1 つのパスワードを使用できる期間 (日数) を決定します。

強制的にシステムからパスワードを変更するよう要求されます。

今回は180日(半年)で設定します。

パスワードの履歴を記録する

パスワードを変更する際、その回数に達するまでの間は以前使ったことがあるパスワードをもう一度、使用することができなくなります。

「3」を設定した場合、パスワードを3回変更したら、以前と同じパスワードを再度利用できるようになります。

今回は1回を設定します。

暗号化を元に戻せる状態でパスワードを保存する

このポリシーは、認証用にユーザーのパスワード情報が必要なプロトコルを使用するアプリケーションをサポートします。

暗号化を元に戻せる状態でパスワードを保存するということは、実質的にパスワードをプレーンテキストで保存するのと同じことです。

今回のバッチには含みません。

複雑さの要件を満たす必要があるパスワード

複雑さの要件は、パスワードの変更時または作成時に強制的に適用されます。

複雑さの要件:

  1. ユーザーのアカウント名またはフルネームに含まれる 3 文字以上連続する文字列を使用しない。
  2. 長さは 6 文字以上にする。
  3. 次の4つのカテゴリのうち3つから文字を使う:
    • 英大文字 (A から Z)
    • 英小文字 (a から z)
    • 10 進数の数字 (0 から 9)
    • アルファベット以外の文字 (!、$、#、% など)

今回のバッチには含みません。

バッチファイルの作成

@echo off

cls
echo ■■■■■■■■■ パスワードのポリシー設定 ■■■■■■■■■
echo.
echo.

::ローカル セキュリティ ポリシーのパスワードの長さの設定
echo  パスワードの長さの設定完了
net accounts /minpwlen:8 > NUL

::ローカル セキュリティ ポリシーのパスワードの有効期限の設定
echo  パスワードの有効期限設定完了
net accounts /maxpwage:180 > NUL

::ローカル セキュリティ ポリシーのパスワードの履歴を保存するの設定
echo  パスワードの履歴を保存する設定完了
net accounts /uniquepw:1 > NUL

echo.
echo.

pause
exit

アカウント ロックアカウントのポリシー

アカウントのロックアウトのしきい値

試行錯誤によってアカウント のパスワードを判断しようとしている悪意のあるユーザーを排除する設定です。

指定回数を失敗すると「ロックアウト期間」までログオンできなくなります。

今回は3回を超えて4回のパスワード間違いでロックアウトする設定とします。

ロックアアウト カウンターのリセット

パスワードが間違っていた回数を記憶している時間です。

パスワード入力を失敗した回数をいつリセットするかを設定します。

ここで設定した期間を過ぎるとパスワード失敗回数が帳消しになります。

設定した時間が経過したものからパスワード間違いの回数から削除します。

例えば、5分後と設定した場合、上記で「ロックアウトのしきい値」が「3回」なのでパスワード入力を2回連続して失敗し、3回目を6分後に入力した時、ユーザアカウントはロックされません。

5分以上の6分を経過したのでカウンターはリセットされます。その後、5分以内に2回失敗するとそのユーザーアカウントはロックアウトされるという設定になります。

今回は5分後とします。

ロックアウト期間

設定した分数を過ぎるとロックアウトが自動解除される期間の事です。

今回は5分とします。

バッチファイルの作成

@echo off

cls
echo ■■■■■■■■■ ロックアカウントのポリシー設定 ■■■■■■■■■
echo.
echo.

::ローカル セキュリティ ポリシーのアカウントのロックアウトのしきい値の設定
echo  ロックアウトのしきい値設定完了
net accounts /LOCKOUTTHRESHOLD:3 > NUL

::ローカル セキュリティ ポリシーのアカウントのロックアウト カウンターのリセット設定
echo  カウンターのリセット設定完了
net accounts /LOCKOUTWINDOW:5 > NUL

::ローカル セキュリティ ポリシーのアカウントのロックアウト期間の設定
echo  ロックアウト期間設定完了
net accounts /LOCKOUTDURATION:5 > NUL

echo.
echo.

pause
exit

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です