chntpw (パスワード リセット)
update 2018-09-17

概要説明

Linux の chntpw コマンドで win10 のローカルアカウント パスワードをリセットする。
MBRディスク,GPTディスク(UEFI対応 64bit)環境でもリセットできる。
※win7,
win8(win8.1) でも問題なくリセットできる。
※ユーザーID: 20文字(
英数字)、パスワード: 127文字(英数字)まで試した結果は問題なくリセットできた。
※ダイナミックディスク環境でもリセットできた。
 
ここではパスワードをリセットするツールとして SystemRescueCD を使用しているが、任意のLinuxに chntpw コマンドをインストールして使用してもいい。
SystemRescueCD を使用している理由は、chntpw コマンドやマウントフォルダ(/mnt/windows)が組み込まれているので便利だからである

要点

Windowsのローカルアカウントのパスワードは下記のファイルに記録されている。
C:\Windows\System32\config\SAM
パスワードをリセットするには、このファイルを読み取ってユーザーアカウントのパスワードを消去すればいいのである。
※フォルダ、ファイルの一部のアルファベットが大文字であることに留意して作業する。

作業手順

1)
SystemRescueCD をダウンロードして CD(またはDVD)に書き込む。
SystemRescueCDサイト:http://www.sysresccd.org/SystemRescueCd_Homepage
ダウンロードサイト:http://www.sysresccd.org/Download
ダウンロードファイル:systemrescuecd-x86-9.9.9.iso ( 9.9.9 はversion番号)

2) 作成したCDをセットしてPC起動する。
起動メニューが表示されるので「directly start the graphical environment」(グラフィカル モードで開始)を選択する。
1-menu.png

3)
キーボード選択(Loading keymaps)画面になるので 22[または jp] (日本語キーボード) を入力する。
何も選択しないで Enter キーを押せば、英語キーボードを選択したことになる。
2-keymap.png

4) X-windowの端末画面(Terminal)が開く。
この例ではWindows PCの2番目のpartition(/dev/sda2)を/mnt/windowsに ntfsでマウントさせるので、
ntfs-3g /dev/sda2 /mnt/windows と入力する。
※ /dev/sdaxx 部分は、Windowsをインストールした領域を数字で指定する。
※今回は2番目のpartition(/dev/sda2にWindowsをインストールした環境であるものとする。
1番目のpartition(/dev/sda1にWindowsをインストールした環境の場合は、
ntfs-3g /dev/sda1 /mnt/windows と入力すればいい。
※要するに Windows\System32\config フォルダのある領域を指定すればいい。
※UEFIディスクに普通にインストールした場合のWindows\System32\config フォルダは /dev/sda4 にある。
Windowsをインストールした領域がわからない場合は、1、2、3、4 ・・・の数字を順番に試してみればいい。
数字が適切ではない場合は、パスワードをリセットできないだけで、システムには何の影響もないので、何度でも試してみればいい。
4-sam.png

5) \Windows\System32\config フォルダに移って作業する。
cd /mnt/windows/Windows/System32/config と入力する。
5-sam.png
6) パスワードファイル(SAM)の内容を表示する。
chntpw -l SAM と入力する。( -l 「エル」は List表示をあらわす)
6-sam.png
7) SAMファイルのユーザー名が一覧表示される。
この時点で全てのユーザー名が解読できたことになる。
※Username(ユーザー名)が日本語の場合は正しく表示されていないが、RIDをユーザー名として扱うことができる。
7-sam.png

8) 今回はユーザー名:myuser のパスワードをリセットするものとする。
chntpw -u myuser SAM と入力する。
chntpw -u 0x3eb SAM と入力してもいい。(ユーザー名としてRIDを16進として扱うことができる)
8-sam.png
9) 処理確認画面が表示される。
パスワードをリセットしたいので「
」 を入力する。
※ 「
q」を入力すればユーザー選択に戻ることができる。
9-sam.png

10) SAMファイルに書き込むかどうかの確認要求がある。
書き込むので「
y」を入力する。
10-sam.png

11) パスワードはリセットされた。
reboot と入力してPCを再起動させる。
halt と入力するとPCはシャットダウンする。
11-sam.png

12) 再起動時に SystemRescueCD を抜いておけばWindows PCが起動する。
ログオン画面で myuser を選択すれば パスワード無しでログオンできる。
※ユーザーが一つだけの場合は自動的にログオンする。


13) ログオンしたら myuser にパスワードを設定する。




参考メモ

USBメモリで起動できるようにする。

(1) Windows「ディスクの管理」で USBメモリに NTFSの領域を作成する。

(2) 作成した領域に任意のフォルダを作成する。(ここではフォルダ名: grub2 とする)

(3) ダウンロードした SystemRescueCD.iso ファイルをWindowsエクスプローラでマウントし、内容を丸ごとUSBメモリにコピーする。

(4) USBメモリだけを装着して、fedora RescueモードでPC起動し、shell で作業する。

(5) デバイスを確認する。
fdisk -l (ここでは デバイスは /dev/sda、grub2フォルダは /dev/sda1 にあるものとする)

(6) 作業フォルダを作成しマウントする。
mkdir /sda1
mount /dev/sda1 /sda1

(7) grub2フォルダをrootに指定して grub2ブートローダをMBRにインストールする。
grub2-install --root-directory=/sda1/grub2 /dev/sda

(8) vi コマンドを起動して、/grub2/boot/grub2/grub.cfg ファイルに次のような起動メニューを作成する。
set timeout=none
default=0
set color_normal=white/black
set color_highlight=yellow/blue
menuentry "SystemRescueCD : Graphical Mode" {
set root=(hd0,1)
linux /isolinux/rescuecd scandelay=1 dostartx
initrd /isolinux/initram.igz
}
menuentry "SystemRescueCD : Text Mode" {
set root=(hd0,1)
linux /isolinux/rescuecd
initrd /isolinux/initram.igz
}
menuentry "ReBoot" {
reboot
}
menuentry "Halt" {
halt
}

(9) 作業フォルダをアンマウント、削除する。
umount /sda1
rmdir sda1

(10) USBメモリ優先起動でPCを起動するとGrub2メニューが表示される。
SystemRescueCD : Graphical Mode」を選択すればグラフィカル モードで起動する。
SystemRescueCD : Text Mode」を選択すればテキスト モードで起動する。



SystemRescueCDには、多くのシステム救済ツールが組み込まれている。
※パッケージ一覧リストは下記サイト参照。
http://www.sysresccd.org/Detailed-packages-list

メニューからアプリケーションを選択することができる。
menu-button.png

ターミナル画面(端末画面)を開く。
terminal.png


end of list