こんにちわ。みなさんお仕事は順調でしょうか?
客先の業務量減少に伴い、残業規制やらお昼時間の消灯やらでテンションだだ下がりなブログ主です。お昼の時間 12:00 になるとオフィスの照明が強制消灯されるので、最近は時間どおりに食事に出ることが多くなりました。おかげでお陰で最近、体重がいいかんじにry(関係ない
ところで、お昼の時間って、PCの電源が入ったままなので、この間にデフラグを流してる人なども多いのではないでしょうか。私は別にデフラグジャンキーじゃないのですが、職場のセキュリティポリシーに準じて導入しているツールがファイルをズタズタにしてくれるので、昼休みはデフラグすることにしようと思いました。
- 使用するデフラグツール
- スクリプトの作成とテスト
- タスクの設定
- 問題が発生……
■ 使用するデフラグツール
ほかに JkDefrag などの選択肢もあるわけですが、Auslogics Disk Defrag が最近のお気に入りなので、このスクリーンセーバーを使いたいと思います。
Auslogics Disk Defrag Screen Saver
http://www.auslogics.com/en/software/disk-defrag-screen-saver/
ただ、私は普段からデフラグスクリーンセーバーを設定するほどのデフラグジャンキーではありませんし、外出先でデフラグがかかると鬱陶しいので、時間指定でスクリーンセーバーを変更することにしました。
■ スクリプトの作成とテスト
まず、スクリーンセーバーを変更する VBScript を 2 つ書きます。
C:\hasegaw\bin\TASK_SCREENSAVER_CHANGER_DEFRAG.vbs …… スクリーンセーバをデフラグツールに
C:\hasegaw\bin\TASK_SCREENSAVER_CHANGER_LOGON.vbs …… スクリーンセーバを普段のものに
以下にスクリプトの例を示します。
C:\hasegaw\bin\TASK_SCREENSAVER_CHANGER_DEFRAG.vbs
'
' スクリーンセーバを auslogics disk defrag に設定する
'
SS_DEFRAG = "C:\Windows\aus_ddss.scr"
HKEY_CURRENT_USER = &H80000001
strComputer = "."
Set objReg = GetObject("winmgmts:\\" & strComputer & "\root\default:StdRegProv")
strKeyPath = "Control Panel\Desktop"
objReg.CreateKey HKEY_CURRENT_USER, strKeyPath
objReg.SetStringValue HKEY_CURRENT_USER, strKeyPath, "SCRNSAVE.EXE", SS_DEFRAG
C:\hasegaw\bin\TASK_SCREENSAVER_CHANGER_LOGON.vbs
'
' スクリーンセーバを login.scr に設定する
'
SS_DEFRAG = "C:\Windows\SYSTEM32\logon.scr"
HKEY_CURRENT_USER = &H80000001
strComputer = "."
Set objReg = GetObject("winmgmts:\\" & strComputer & "\root\default:StdRegProv")
strKeyPath = "Control Panel\Desktop"
objReg.CreateKey HKEY_CURRENT_USER, strKeyPath
objReg.SetStringValue HKEY_CURRENT_USER, strKeyPath, "SCRNSAVE.EXE", SS_DEFRAG
これらのスクリプトを書いたら、スクリプトが期待通りに動作するかを確認します。
- 画面のプロパティーを開き、スクリーンセーバーを なし に設定してプロパティを閉じる
- TASK_SCREENSAVER_CHANGER_DEFRAG.vbs をダブルクリックする
- 画面のプロパティーを開き、スクリーンセーバーがデフラグツールに設定されたことを確認
- TASK_SCREENSAVER_CHANGER_LOGON.vbs をダブルクリックする
- 画面のプロパティーを開き、スクリーンセーバーが普段のものに設定されたことを確認
■ タスクの設定
スクリプトが問題なく動作することを確認したら、続いて Windows のタスクとしてこれらのスクリプトを設定します。
- TASK_SCREENSAVER_CHANGER_DEFRAG
- 実行するプログラム …… TASK_SCREENSAVER_CHANGER_DEFRAG.vbs
- 実行日時/頻度 …… 毎日11:50
- その他設定 …… ログオン時以外は実行しない
- TASK_SCREENSAVER_CHANGER_LOGON
- 実行するプログラム …… TASK_SCREENSAVER_CHANGER_LOGON.vbs
- 実行日時/頻度 …… 毎日13:00
- その他設定 …… ログオン時以外は実行しない
- TASK_SCREENSAVER_CHANGER_LOGON2
- 実行するプログラム …… TASK_SCREENSAVER_CHANGER_LOGON.vbs
- 実行日時/頻度 …… ログオン時
- その他設定 …… ログオン時以外は実行しない
これで、毎日 11:50~13:00にスクリーンセーバが変わるようになりました。
■ 問題が発生……
その後、 Auglogic Disk Defrag のスクリーンセーバを実際に動かしてみて、問題が判明。
このデフラグスクリーンセーバー、実行中はデフラグ対象のファイルの名前がリアルタイムで表示されてしまいます。
(^^;;;
この状態でついうっかり「...\秘蔵エロ\...」とか「履歴書.doc」※とかのファイル名を職場の人間に見られると大変なことになってしまうのでちょっと常用はきついなぁ……。スクリーンセーバの設定をみてもこの挙動は変えられないみたい。
※ エロとか履歴書とかはネタだとしても、顧客名などの情報を含むファイル名がスクリーンセーバーにより表示されている状態というのは、普通に考えてもちょっと……。開発元はどういう神経で作ってるんでしょうね。