Toolwiz Time Freeze をコマンドラインで利用する。

本家のサイトを見れば載っていることだけど一応。

Toolwiz Time Freeze は保護をかけた時点の情報を保持し、再起動によりシステムパーティション(Cドライブ)を保護した時の状態に復元してくれるフリーソフト。保護とその解除をパスワードでロックするすることが可能。またコマンドラインオプションも装備するので、パスワードを記述した保護・解除コマンドを管理者だけがアクセスできる場所に置くことでPCを保護できる。

なお、Dドライブなど、システムパーティション以外のドライブは保護できない。

 

入手

ToolWiz Time Freeze « ToolWiz Software
http://www.toolwiz.com/en/products/toolwiz-time-freeze/

 

インストール

インストールには管理者権限が必要。説明なければ図のとおり。

01
02
03
04
常時システムパーティションを保護するにチェック、セーフモードで保護を無効にするのチェックを外す、パスワードを有効化するにチェック。
05
パスワードを入力。
06
07
再起動必須。
10
Cドライブ直下に TOOLWIZTIMEFREEZE というフォルダができる。
08
この中にキャッシュファイル等が作成される。
09
一般ユーザには変更できない。
15
管理者アカウントにはフルコントロールあり。
16

 

GUIでの操作

タスクトレイにアイコンが表示される。
11
アイコンを右クリックし、Show Program を選ぶ。
12
インストール時にパスワードを有効化したので、パスワードを入力。
13
インストールにより保護が有効になっている。
14

  • Stop Time Freeze をクリックすると、保護が解除される。解除されると自動で再起動し、保護前の状態に復元される。
  • Enable Time Freeze automaticcally when Windows starts にチェックを入れないと再起動で復元後、保護が解除される。再起動後も保護を有効にておく場合はチェックを入れる。また、このチェックの有無にかかわらず、保護を解除した後の再起動後は、チェックなし状態になる。
  • Hide the tray icon のチェックを外すと、タスクトレイからアイコンが消えるが、スタートメニューから Toolwiz Time Freeze をクリックすれば、GUIメニューが表示される。
  • 上記の設定しにしておけば、再起動すると、自動で復元され、継続的に保護される。
  • シャットダウンでは復元されない。あくまでも再起動で復元される。

 

コマンドラインツール

 

コマンドは複数同時に投入できないみたい

(NG)ToolwizTimeFreeze.exe /freezealways /freeze /usepass=1234

 

Windows 再起動時に自動で保護を有効化する

freezealways を発行すると、再起動後、Toolwiz Time Freeze により自動で保護が有効になる。GUI で Enable Time Freeze automaticcally when Windows starts にチェックを入れた状態と同等。コマンドプロンプトが表示されたままになるが、そのまま。

CD /D "C:\Program Files\Toolwiz Time Freeze 2014"
ToolwizTimeFreeze.exe /freezealways /usepass=1234

 

保護する

freeze を発行すると、保護状態になる。GUI の Stop Time Freeze をclickしたのと同等。コマンドプロンプトが表示されたままになるが、そのまま。

CD /D "C:\Program Files\Toolwiz Time Freeze 2014"
ToolwizTimeFreeze.exe /freeze /usepass=1234

 

保護を解除する

unfreeze を発行すると再起動し、復元されたうえで保護が解除される。GUI の Stop Time Freeze をクリックと同等。再起動後は、Enable Time Freeze automaticcally when Windows starts のチェックが外れる。

CD /D "C:\Program Files\Toolwiz Time Freeze 2014"
ToolwizTimeFreeze.exe /unfreeze /usepass=1234

 

(参考)現在状態を取得する

REG QUERY "HKEY_CURRENT_USER\Software\Toolwiz\TimefreezeNew"

(結果)
HKEY_CURRENT_USER\Software\Toolwiz\TimefreezeNew
    CURRENT_PROTECT_MODE    REG_DWORD    0x1
    NEXT_BOOT_PROTECT    REG_DWORD    0x1

CURRENT_PROTECT_MODE が 0は現在保護なし、1は保護状態
NEXT_BOOT_PROTECT が 0は次回起動時に保護なし、1は次回起動時も保護状態

 

応用

IMG_2465IMG_2467
「特定のUSBメモリが挿してある状態で、かつ管理者アカウントでログインした時に、保護状態なら解除する」を実現してみる。

長い保護解除パスワードを入力するのも煩わしいので

  • 一般ユーザにはアクセスできない場所に保護解除用スクリプトを配置し、特定のUSBメモリがさしてあり、かつ管理者アカウントでログインした場合は、保護解除するかどうか?問い合わせが来て、y → Enter で保護解除する。y以外が押されたら保護解除しない。
  • USBメモリが挿していなければ何もしない。つまり保護は有効のまま。

USBCheck.cmd

TIMEOUT 30

REG QUERY "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\disk\Enum" | FIND "145151534217002C&0" && GOTO USBFOUND || GOTO :EOF

:USBFOUND
REG QUERY "HKEY_CURRENT_USER\Software\Toolwiz\TimefreezeNew" /v CURRENT_PROTECT_MODE | FIND "0x1" && GOTO SELECT || GOTO :EOF

:SELECT
SET /P PUSHKEY="保護を解除して復元しますか?(Y/N)?"
IF /i %PUSHKEY% == y (GOTO UNPROTECT) ELSE (GOTO :EOF)

:UNPROTECT
CD /D "C:\Program Files\Toolwiz Time Freeze 2014"
ToolwizTimeFreeze.exe /unfreeze /usepass=1234


TIMEOUT 30 は少しウェイトしないと REG QUERY "HKEY_CURRENT_USER\Software\Toolwiz\TimefreezeNew" /v CURRENT_PROTECT_MODE | FIND "0x1" && GOTO SELECT || GOTO :EOF の判定ができないので、30秒程度またせるようにした。最低10秒くらい待たないと判定できないので、TIMEOUT /T 30 /NOBREAK でもよかったかも。
43


タスクスケジューラで、管理者アカウントでログオンした時に上記「USBCheck.cmd」を実行する。



ログオンスクリプトから Start で「USBCheck.cmd」を呼び出してみたが、管理者として実行されてしまうため、実際の管理者アカウントに対しSET /P の問い合わせがされないので、あきらめた。



40
41
42

コメント

このブログの人気の投稿

ダブルクォーテーションで括られたCSVカ​ンマ区切りテキストファイルを SQL Server で Bulk Insert する方法

PowerShellでTSV/CSVの列を絞り込んで抽出し、(先頭/行末)からN行出力する

IKEAの鏡を壁に取り付ける