他社が作った環境と同一の環境を作れと手渡されたレジストリ
ある会社さんが元々立てたWindows7環境と同じ環境を作れと言われました。見たことも触ったこともありません。問い合わせると調整が面倒だからなんとかしろと言われました(ブラック)。
与えられたのはレジストリファイルだけ。
もはやパワハラやモラハラで訴えてもいいような無茶ぶり。机の上で微笑んでくれている下野由貴ちゃんのカレンダー見ながら泣きました(キモ)。
それでも、どうにかこうにかなったので、備忘として、適用しているセキュリティパッチの特定と、登録されているユーザの調べ方を紹介したいと思います。
適用しているセキュリティパッチや修正パッチ
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Component Based Servicing\Packagesの配下のうち、「KB」という文字列を含んでいるものを抜粋します。
サクラエディタの正規表現で言うならば、こんな具合です。
HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Component Based Servicing\\Packages.*KB.*
するとこのようなキーがヒットします
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Component Based Servicing\Packages\Package_15_for_KB2604115~31bf3856ad364e35~x86~~6.1.1.3\Owners]
あとはこれらだけを抜き出して、加工してエクセルに張り付け、重複するデータを削除すれば、適用済みのパッチの一覧が出来上がります。意外とカンタン。
登録されているユーザーの情報
参考文献:レジストリキーのSIDからユーザアカウントを識別する方法 | Tipstour
あたりさわりのないところでDefaultAppPoolユーザの復元例です。
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList[SID]にあるProfileImagePathの値を参照します。
ProfileImagePathだけで検索をかけちゃっても大丈夫かと思います。
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList\S-X-X-XX-*******]
ProfileImagePath=hex(2):43,00,3a,00,5c,00,55,00,73,00,65,00,72,00,73,00,5c,\
00,44,00,65,00,66,00,61,00,75,00,6c,00,74,00,41,00,70,00,70,00,50,00,6f,00,\
6f,00,6c,00,00,00
…日本語でOK
ProfileImagePathの値は16進数になっているので、これを文字列に変換します。
C��:��\��U��s��e��r��s��\��D��e��f��a��u��l��t��A��p��p��P��o��o��l�����
□がちょっとウザいですが、これにより、DefaultAppPoolユーザがいることがわかりました(ということは普通に考えて、IISもインストールしないといけないことに気づきます)。
まとめ
今回は、パッチとユーザに絞った紹介をさせていただきましたが、今さらですが、Windowsはレジストリが全てなんだと再認識しました。
USBメモリの接続履歴なんかも拾おうと思えば拾えますし、普段、何げなく設定している値(例えば、フォルダオプションで拡張子を表示する)もレジストリに存在します。
プライベートではLinuxやMacを触る機会が多くて(最近、Windowsタブレットにハマってますが)、あまりWindowsのコアな部分は知らない私ですが、レジストリの奥深さを知るいい機会になりました。
追伸
モラハラとかパワハラとか言ってごめんなさいw