IPアドレスからホスト名を調べたい~BATファイルを実行してもらう

遠隔地の拠点でネットワークトラブルがあり、ログを収集したところIPアドレスは記録されている事が分かった。しかしIPアドレスの割当はDHCPで行っており、また複数の会社で共同利用しているネットワークなので、接続されているPCを把握出来ていない。

ログの収集と同じタイミングで、NBTSTATコマンドを実行して調査をすれば当該IPアドレスのホスト名を突き止めることが出来るが、拠点のユーザーにはあまり手間をかけさせたくないので、BATファイルを作ることにした。

実行するコマンドを記したBATファイル

対象とするIPアドレスをリスト

この2つのファイルを、デスクトップに置いて、BATファイル(load-list.bat)を実行してもらう。するとデスクトップに「logfile.txt」というコマンドの実行結果が得られる。

BATファイルの置き場所(PATH)を自動的に認識させる方法もあったと思うが、面倒なので「デスクトップ」に置いて実行という条件のもとに簡単に作成した。

処理的には一切複雑な事をせず、洗練されていないのでコマンドを実行した結果がログファイルに記されるだけ。それでも遠隔地で(リモート操作は制限されているので不可)実行したいコマンドを簡単に処理させてもらえるので、ユーザーにも指示(依頼)しやすく、こちらとしても知りたい結果が得られる。

実行(収集)結果は電子メールに添付して送り返して貰った。

BATファイルで別ファイル(リスト)を読み込む手法は、応用が利くので利便性は高いと思われる。カンマ区切りにも対応出来るので、詳しくはbatファイル内でfor文を使う事例を検索すると良いでしょう。

私はプログラマーでは無いので複雑な事よりも、手早く結果がえられるシンプルさを優先します。リストからIPアドレスを一行ずつ読み込んで変数に取り込んで実行するだけのループ処理でも十分使えると思っています。

Windows 7のリカバリー後にWindows Updateが全然進まない件で備忘録

長期間使用されてPC環境が汚れていると思われるPC、しばらく予備機としてストックしているので、この機会にシステムリカバリーを行って、すぐに使用出来る様に備えることにした。

メーカーのリカバリーディスクを使用してハードディスクを消去後、Windows 7 Professionalをリカバリー。真っ新なOS環境が手に入った。今までならこの後に必要なアプリ(Office等)をインストールするだけで良かったが、最近は、Windows Updateが進まないという不具合があるのでこの課題をクリアして置く必要がある。

結果的には下記の順番で修正パッチを適用してやれば、無事にWindows Updateが進むようになった。れっきとした「トラブル」だと思うがマイクロソフトはそう認識していない様なので、無用な労力(スキル)を要求される。

KB976932 (windows7 SP1)※7無印の場合のみ必要
IE9の場合はIE11にアップデートする
KB3020369 (Rollupパッケージの事前必須パッケージ)
KB3125574 (Rollupパッケージ)
KB3145739 (2016年4月アップデート時短効果確認済み)
KB3161664 (2016年6月アップデート時短効果確認済み)
KB3102433 (.Net Framework 4.6.1)
KB3172605 (Rollupパッケージ)

ImageMagickがVer.6からVer.7に変わりコマンドも変更されていた

ImageMagickはマルチプラットフォームで使えるオープンソースの画像変換アプリで、非常に便利なので時々使用しています。Linuxではもちろん、Windows環境でも使用しています。

複数枚の画像を一括してPDFに変換する等、コマンド一発で処理してくれるので手がかからず便利なのです。

また、PDFを1ページずつ画像化することも出来るのは何気に便利だったりします。

今回、ImageMagickを使ってPNG形式の画像をPDF化しようとした時にエラーが出てどうしようもなくなったので、最新版のImageMagickにバージョンアップしたところ、CONVERTコマンドが使用出来なくなりました。正確に記すとCONVERTコマンドでNTFSの変換(これもCONVERTコマンドだった)が起動します。

コマンド名が変わった?

調べてみたらMAGICKというコマンドに変更になっていました。どうやらVer.7からmagickコマンドに変更になったとか。

更にオプションの-geometryも使えなくなってエラーが表示されます。調べたら-sizeコマンドに変わってしまった様です。ネットで検索してもImageMagick Ver.6の頃の情報ばかりで、この辺りのことは公式サイトを確認するしか有りません。英語で記述されていますがコマンドのサンプルを見ると概ね想像がつくので大丈夫でしょう。

ImageMagick: Command-line Processing

続きを読む

IO DATA Landiskのリペア~HDL-A2.0のHDDを交換する

当方では、IO DATAのNASアプライアンス(LANDISK)を使用していますが、この製品はシステム的には冗長性を持たせられない仕様の為、内蔵ハードディスクが故障するとゴミに成り下がる脆さを持っています。データに関してはバックアップ機能で冗長性を確保出来るので、当然の事ですがデータ領域のバックアップの仕組み(外付けUSB-HDDへ定期的にコピー)は必ず利用すべきです。

しかしながら、バックアップでデータは保護出来たとしても、本体(NAS)のHDDが壊れるとどうしようもありません。今回運悪く、そのケースに遭遇してしまいましたが、もう一台のLANDISK(サイズ違い)から領域をコピーしてリペアに成功したので記録します。

まず当方の環境です。

  • HDL-A1.0
  • HDL-A2.0(こちらのHDDが壊れた)

両方ともケースを開けて内臓HDDを確認してみたのですが、Seagate製のハードディスクが使用されていました。HDL-A1.0には1TBのHDDが入っていましたが薄型のHDDで、HDL-A2.0には標準の厚みのHDDが使用されていました。

DSC_1898

リペア計画

HDL-A2.0の内臓ディスク(2TB)を別途調達し、HDL-A1.0のHDDをクローニングしてまるごとコピーします。その後、GParted等でパーティションを目一杯まで拡張する計画です。

HDDtoHDD

HDDのクローニング

今回は手っ取り早くクローニング装置を使用することにしました。いわゆる「裸族のお立ち台」っぽく剥き出しの状態でHDDを装着できる構造になっています。USB変換アダプター製品にクローン機能がついたものです。私はnovacの製品(NV-HSC374U3)を使用しています。

自分で購入して使ってみて分かったのは、エラースキップ機能がついている機種を買った方が後々なにかと便利です。だいたいクローンを取る必要に迫られる場面はHDDに何かしらのトラブルを抱えている場合が多いですから、異常のあるHDDでも無視して強制的にクローンを取ってくれる機種が役立ちます。

DSC_1888

さて部屋の片隅でクローニングです。2.5インチ用のスペーサーは付属していますが、スリム3.5インチの事は考慮されていないので隙間があいており、しっかり固定されないので動かさないように注意してクローン化されるのを待ちます。

DSC_1896

つきっきりで見ていた訳ではないのでざっくりとした時間ですが、クローン処理には4時間位かかった様です。ディスク容量によって時間が当然かかるようです。

とりあえず動作確認

クローニングが終わった2TB HDDをNAS装置に「仮固定」して動作させてみます。まだ作業は完了していないので完全には組み立てません。

DSC_1899

当然の事ですが、この段階では領域をフルに使用していないので1TB相当のNASで動作するはずです。先のステップに進む前に段階的に動作確認を進めることは大切だと私は思っています。NASとして正常起動を確認できてから次のステップ(領域の拡大)に進みます。

Ubuntu(Linux)でパーティションを拡張する

LandiskはLinux系のシステムを利用しており、ファイルシステムにXFSを使用しているらしいので、最初からUbuntu環境で作業することにします。Ubuntuパソコンを起動して、USBケーブルで外付けしたNASのHDDにアクセスします。

Gpartedを起動します。GPartedはオープンソースで開発されており無料で使えて本当に便利です。

参考)
Linux環境を持っていない人は、GPartedのISOファイルをダウンロードしてUSBメモリー等から起動するとパーティション操作専用で起動するので便利です。debianベースで作られているみたいです。

Screenshot from 2016-08-20 18_38_58

パーティション(スライス)分割されていて一見すると面倒くさい事になっていますが、要点としてはXFS(一番領域が広い(大きい)パーティション)が作業のターゲットです。

上図で言うとsdb6がターゲットです。927GBしか割り当てられていないことと、未割り当てが931GBあるのがポイントです。2TBのHDDを使うので無駄が出ない様にsdb6をめいっぱい拡張します。sdb6を指定してパーティションのリサイズ処理を行います。

Screenshot from 2016-08-20 18_40_11

最小サイズと最大サイズが表示されているので、新しいサイズの数値に「最大サイズ」の数値を入力して目一杯広げます。上下ボタンで数値をアップさせても良いですが私は数値入力派です。

Screenshot from 2016-08-20 18_41_23

これで後方の空き領域が0になったので可能な限り(目一杯)拡張する指定をした状態です。右下にある「リサイズ/移動」ボタンをクリックすると処理の指定は完了です。

Screenshot from 2016-08-20 18_41_43

狙い通り、sdb6が残りの領域を全て使うイメージになりました。緑色のレ点ボタンをクリックすると適用開始です。他にもやりたい作業があるならレ点をクリックする前に済ませます。パーティション操作は結構複雑な処理をしているので最小限の処理に留めることを推奨しておきます。

Screenshot from 2016-08-20 18_42_03

確認画面が出ましたので「適用」をクリックします。

Screenshot from 2016-08-20 18_42_28

「/dev/sdb6を927.39GiBから1.82 TiBへ拡大」する処理が行わわている事が分かります。処理中はオレンジ色のバーが左右に動いて処理中であることが分かるようになっています。

Screenshot from 2016-08-20 18_42_47

無事にパーティション(スライス)の拡張が完了しました。ホッと一息です。

Screenshot from 2016-08-20 18_43_25

うまく拡張できていることが見て取れると思います。

NASに装着して動作確認

完了したHDDを再びNAS(Landisk)本体に装着して動作確認を行います。

ステータス表示領域にディスクの状況が表示されています。

Screenshot from 2016-08-20 18_58_40

無事に、1949.06GBまで拡張されているので、約2TBのNASとして動作する様になったという訳です。作業は無事に成功しました。

今回のリペアをもう一度振り返ると、

  1. 2TBのNASが壊れた
  2. 1TBのNASのHDDから2TBのNASのHDDにクローン(1TBの領域しか使えない)
  3. クローン側の空き領域をUbuntu(gparted)で調整して2TBの領域を使えるようにする

というシンプルな作業でした。手間は大したことありませんが処理時間はそこそこかかります。

2TBのNASが壊れた時にただのガラクタに成り下がったのを悲観しそうになりましたが、同一シリーズの1TBを持っていたので行けるんじゃないかと考えて実行したところ、無事に成功して良かったです。

クローニング機能付きのUSB HDDアダプターを持っていると手軽にクローンを作成出来るのでシステムの早期復旧の備えなど、冗長性をもたせられないシステムの保護手段としても使えて便利だと思います。バルクで安いHDDを買って来て、時々まるごとバックアップを取る等の目的にも使用出来ますね。単純な変換アダプタもそこそこの価格ですので、個人的にはクローニング機能付きアダプターはオススメしておきたいアイテムの一つです。

追記

2TBの方のリペアが終了したと思いきや、翌日になんと1TBの方のHDDもダメになってしまいました(なんという絶妙なタイミング)。ハードディスクがシーク音でギュイーン、カツーン、カツーンと繰り返し鳴る様になってしまい、USBアダプタで接続してWindowsでもLinuxでも認識出来なくなりました。

ちょっと怪しい挙動は出ていたのですが立て続けにHDDがダメになるとは・・・Seagate製は耐久性が低くてダメかも知れませんね。個人的にはSeagate製はハズレを引く確率が高いので信用しないことにしています。人によってはSeagateが良いと言いますので運の要素が多いと思いますけどね。

Windows 7のプリンターテストページのドライバ情報をテキストデータで欲しい

法人環境でネットワークプリンターへの印刷時にトラブル発生。

印刷データが消失するPCと、そういう不具合が起きないPCとに分かれてしまった。印刷したハズなのにプリンターから出てこないPCは複数台あり、決まったPCでこの不具合が起きていることまで突き止めている。

そこでプリンタードライバの差異で、不具合が出る or 出ないの違いがあるのではないか?と言う推測をした。手っ取り早くドライバ情報を比較したいが遠隔地のPCでかつ台数も多い事がネックである。

プリンターテストを行うと紙に印刷される事は分かっているが、紙に印刷したものは比較しづらい(DIFFとか使えない)のでチェックするのが面倒だ。50台以上を目でチェックとなると本当に嫌になる。

そこで、バッチ処理でプリンター情報を取り出せないかなと言う発想になったが、そういえばプリンタードライバ情報を出力するVBSがWindowsに標準でついていた様な覚えがある。vbsのファイル名は覚えてないが、確かにvbsだったと記憶している。

エクスプローラで検索してみるとそれらしいファイルが入っているフォルダが見つかった。C:\windows\System32\Printing_Admin_Scripts\ja-JP

  • prncnfg.vbs
  • prndrvr.vbs
  • prnjobs.vbs
  • prnmngr.vbs
  • prnport.vbs
  • prnqctl.vbs
  • pubprn.vbs

ファイル名から容易に”prndrvr.vbs”がプリンタドライバ情報を出力してくれるであろう事は推測出来る。コマンドプロンプトから

これでドライバ情報を全て出力出来るので、別名ファイルへリダイレクトすれば目的は達成出来た。後はAWKでチェックしたい部分を抜き出してDIFFで比較チェックすれば差異を見つけられる。

幸いWindows 7にはこのVBSファイルが標準で入っているので、バッチファイルで叩いてデスクトップ等に情報を保存させれば、メールで送って貰う事も可能だろう。

ちなみにこのコマンドで使えるオプションの詳細を見たければヘルプコマンドで

たったこれだけの事だが知っていると知らないとでは大違い。出来たハズという記憶だけでも残しておくといざという時に横着出来るので、やっぱり覚えておきたい。次に使うのはいつになるか分からないけれど。