わたし

自分の写真
おのれの そうさくで うちゅうを しはいするのが ゆめでした

【bat】勝手に再起動して勝手にログインし、自動ログインする設定を勝手に戻すbatをつくろう

 注意! レジストリエディタを編集します

何か起きた場合自己責任でお願いします。

(一応動作テストは行いましたが保証はし切れません)


実質勝手に再起動して勝手にログインするだけである。


■準備するもの

・ソースコードをコピペするテキストエディタ

 ※メモ帳でOK



■つくりかた

①以下の内容(色付きのところまで)をメモ帳にコピーする

@echo off

rem batのカレントディレクトリに移動
cd /d %~dp0

rem 実行ファイルパス
set FILEPATH=%~0
rem バックアップ レジストリファイルの名前
set BACK_UP_REGFILE1=backupautlogon.reg
rem レジストリキーの名前
set REGKEY_NAME1="HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon"
set REGKEY_NAME2="HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\RunOnce"
rem ユーザー名
set ACCOUNTUSER_NAME=%username%
rem パスワード
set USER_PASSWORD=
rem ユーザードメイン名(下の行の"rem"を削除)
rem set DOMAINUSER_NAME=%userdomain%


rem パスワード未設定チェック
if "%USER_PASSWORD%"=="" (
    echo "パスワードが設定されていません。処理を中止します。"
    pause
    exit /b
)

rem 管理者権限に昇格
whoami /priv | find "SeDebugPrivilege" > nul
if %errorlevel% neq 0 (
    powershell start-process %FILEPATH% -verb runas
    exit
)

rem ****************************************************************
rem メイン処理
rem ****************************************************************
rem バックアップファイルの有無で条件分岐
if not exist %BACK_UP_REGFILE1% (
    call :RUNTHISFILE
    call :REGKEY_EXPORT
    call :REGKEY_ADD
    echo "10秒後に再起動します"
    shutdown /r /t 10
    exit /b
) else (
    call :REG_BACKUP
)

exit /b


rem ****************************************************************
rem サブルーチン
rem ****************************************************************
:RUNTHISFILE
set /p answer="再起動後に何かするファイルだよ 実行しますか?(y/n): "
if /i not %answer%==y (
    exit
)
exit /b

:REGKEY_EXPORT
rem レジストリキーのエクスポート
reg export %REGKEY_NAME1% %BACK_UP_REGFILE1%
exit /b

:REGKEY_ADD
rem アカウント情報の登録
reg add %REGKEY_NAME1% /v AutoAdminLogon /t REG_SZ /d 1 /f
reg add %REGKEY_NAME1% /v DefaultUsername /t REG_SZ /d %ACCOUNTUSER_NAME% /f

rem 本当はここでパスワード入力&レジストリ登録したいが、確認が困難なため断念
rem set /p USERPASSWORD="パスワードを入力:"
rem reg add %REGKEY_NAME1% /v DefaultPassword /t REG_SZ /d %USERPASSWORD% /f

reg add %REGKEY_NAME1% /v DefaultPassword /t REG_SZ /d %USER_PASSWORD% /f

rem PCがドメイン参加している場合、以下の"rem"を削除
rem reg add %REGKEY_NAME1% /v DefaultDomainName /t REG_SZ /d %DOMAINUSER_NAME% /f


rem 自動起動スクリプトの登録
reg add %REGKEY_NAME2% /v RebootRun /t REG_SZ /d "%FILEPATH%" /f

exit /b

rem ******************再起動後の処理******************************
:REG_BACKUP
rem レジストリを元に戻す
reg delete %REGKEY_NAME1% /v AutoAdminLogon /f
reg delete %REGKEY_NAME1% /v DefaultUsername /f
reg delete %REGKEY_NAME1% /v DefaultPassword /f
reg import %BACK_UP_REGFILE1%
del /q %BACK_UP_REGFILE1%
exit /b



②上のほう(17・18行目)の

rem パスワード
set USER_PASSWORD=

の『USER_PASSWORD=』の後にパスワードを記入

ログイン中のアカウントのパスワードを入力する。


③保存

 ファイル名は拡張子を.batにしてくれればあとは何でも可

 ・拡張子と文字コードに注意

 ファイルの種類:すべてのファイル(*.*)を選択してファイル名の最後に「.bat」をつける ※画像.txtつけてますスイマセン

 エンコード:メモ帳の場合はANSI

  他はSHIFT_JISとかで保存してください。




 

④実行

ファイルをダブルクリック

 実行するか聞かれたらyを入力してEnter

 (yかY以外が入力されたら実行しない)

⑤勝手に再起動


◆おそらく気になるであろうこと◆

Q.  パスワードを記入しなかった場合はどうなりますか?

A.  ファイル実行時にパスワードがねーぞと怒られ、設定がされる前に処理が終わります(何も起こりません)

Q.  パスワードを間違えたら?

A. 再起動後のログインに失敗します

  パスワードを手動で入力し、ログインが成功すると再起動後の処理(見た目上は不明)が行われます。


■何をしたんですか?

レジストリの一部をいじりました

レジストリ:PCの設定内容が保存されている場所

      コマンドラインで変更できるのでスクリプトを作成して複数の設定変更を自動で行わせることができる

      ※ただしOSのバージョンが上がるにつれて複雑化し難しくなる傾向がある


今回いじったのは「ログイン後1度だけファイルを実行するレジストリ」「自動ログインの設定をするレジストリ」です。


■わからない人は飛ばしてもいい説明■

【具体的な処理】

・バックアップレジストリファイルのエクスポート

 現在のレジストリ状態をREGファイル(バックアップ)として作成

  やんわり言うと変更・削除した設定のみ戻すことができる

  (何を?と思った人はレジストリキーで調べてください)

・自動ログインするアカウントの設定

 「自動ログインの設定をするレジストリ」に①自動ログインをオン②ログイン中のアカウント名③パスワードを設定

・自動起動するスクリプトの登録

 「ログイン後1度だけファイルを実行するレジストリ」に自分自身のファイルのパスを登録

・再起動

(再起動後)

※バックアップレジストリファイルがある場合、処理の途中まで飛ばす

・レジストリの設定を元に戻す

 追加した分の削除

・バックアップレジストリファイルの実行

 ※できる人はpause入れてもらうとわかりますがエラーが出ます

 →上で説明した「変更・削除した設定のみ戻す」ため、新たに追加された値(設定)は削除されない(それで「一部の値が変更できませんでした」という内容のエラーが表示されるようです)

 なので、追加(変更)した値を削除してファイルを実行することで、追加した分は消え、変更した分は元に戻ります。

「ログイン後1度だけファイルを実行するレジストリ」の設定内容は自動的に削除されるため、削除作業は不要

・バックアップレジストリファイルを削除


上の内容をいじると、使えそうな内容のものができるかもしれません(PC名変更と再起動を挟んだキッティングスクリプトとか)。ご自由に編集ください。

レジストリについては今後も気が向いたら触れる予定。

 

【Win向け】誰もアクセスできないフォルダをつくろう!

■注意

気が向くまで作り方しか載せません。
実施する場合、必ず戻せなくてもいいフォルダを用意してください。
※調べたら出てくると思いますが正直面倒臭いです


 ■準備するもの

・どうなってもいいフォルダ
 ※なかったら「新しいフォルダ」を作成する

 ■つくりかた

①どうなってもいいフォルダを選択して右クリック→「プロパティ」


こんな画面が開く


②「セキュリティ」タブを選択し、「編集」を選択














③「追加」を押し、下の枠の中に「users」と記入、Enterまたは下の「OK」













④アクセス許可(P):Usersとなっているのを確認し、「フル コントロール」の「拒否」にチェックを入れる



⑤下の「適用」「OK」を押す


⑥完成!!!!




■戻し方

気が向いたら書きます。
ざっくり言うと、フォルダの所有権を獲得して権限の書き換えを行います。


自宅のWi-Fiを変な名前に変える

 こんな感じの

正確にはSSIDと言います。
電波の名前です。ポチとかタマみたいな。近くにある他の奴と名前が被らなければ変更できます。

【名前を変える方法】


Windowsのみ紹介。

!注意!

・Wi-Fiの名前を変えると接続がいったん途切れます。
  切断後、再接続を試みて繋がらなくなっても一切責任は負いません。
  その他、目立つ名前にすることで様々なリスクが発生しますが自己責任でお願いします。

1.デフォルトゲートウェイのIPアドレスを調べる


■ 調べ方:コマンドプロンプトを使用
     ……win10とか11とかで微妙に違っていたら面倒なので

 コントロールパネルからも調べられると思います。IPアドレスと同じところにあったと思う。


Windowsキー(窓のロゴ書いてあるやつ)とRキー同時押し


②左下に現れた入力画面に「cmd」と入力し、Enter
 
 【ちなみに】Ctrl+Shift+Enterで確定すると管理者権限で実行できる



③「ipconfig」と入力し、Enter

④「Wireless LAN adapter Wi-Fi」の「デフォルト ゲートウェイ」を確認する




2.ルーターにアクセスする


※設定画面はメーカーによりけりなので若干異なる場合がある


①Webブラウザの検索欄に調べたデフォルトゲートウェイのIPアドレスを入力

 …上の画像の例だと「192.168.0.1」


②ログイン画面でログインする

 ルーター本体の初期SSIDパスワードが書いてある辺りに載っていることが多い

 ・ID:admin
 ・パスワード:password

 のパターンが多め


SSIDの欄に「変えたい名前」を入力する

 繋がLANでも不幸中のWi-fiでも何でも


Wi-Fiが切れてもいい状態になったら適用」などを押す


⑤Wi-Fiに接続


⑥ルーターの設定画面をログアウト



【デフォルトゲートウェイって何者】


以下、小学校の理科のようなごまかしだらけの雑な説明


異なるネットワークの接続を担ってるやつ

一般家庭ではルーターが該当
・家庭内のネットワーク
・インターネット(外部のネットワーク)
の梯子をしている

 原則、機械は同じネットワークに属する機械としか通信できない
 ・外部のネットワークでの通信はルーターが代理で行い、おみやげみたいな感じでデータを家庭内に持ち帰って、PCやスマホに送られる

 ルーターはIPアドレスを2つ持っていることになる
  ・家庭内ネットワークに属する機器と通信できるIPアドレス←これが調べたデフォルトゲートウェイのIPアドレス
  ・インターネットで使用するIPアドレス