2016年1月19日火曜日

Windows標準コマンドでheadやtailする

残念ながらコマンドプロンプトでは簡単に実現できないが、PowerShellを使えばできる、という小ネタ。コマンドは以下の通り。

・head
Get-Content "<ログファイル名>" | Select-Object -first 100

・tail
Get-Content "<ログファイル名>" | Select-Object -last 100

中間を取り出したい場合は、2通り方法がある。例えば、以下のようなテキストファイル(test.txt)があるとして、3行目~5行目を取り出したい場合のコマンドを考える。

-------例ここから
1 a
2 b
3 c
4 d
5 e
6 f
7 g
-------例ここまで

①firstとlastを組み合わせる

Get-Content "test.txt" | Select-Object -first 5 | Select-Object -last 3

-------結果ここから
3 c
4 d
5 e
-------結果ここまで

②skipを使う

Get-Content "test.txt" | Select-Object -skip 2 -first 3

※以下のようにオプションの順番を変えても結果は同じ。どうやらskipはfirstよりも先に処理される模様
Get-Content "test.txt" | Select-Object -first 3 -skip 2

-------結果ここから
3 c
4 d
5 e
-------結果ここまで

感覚的には①の方法が、実際に抜き出したい行の番号と、オプションの指定が一致するのでわかりやすいと思う。処理的にはおそらくパイプが1回で済む②が速いと思われる(未検証)。

2015年11月20日金曜日

WindowsでTelnetを使わずにポート番号を指定して接続確認を実施する方法

最近のWindowsではTelnetクライアントは標準ではインストールされなくなった。普段はTelnetを使う用途はないので問題にはならないが、クライアントからサーバへ特定のポートで接続できるか確認する際に困ることがある。

Windowsでできる別の方法

というわけで、今まではいちいちTelnetクライアントを追加インストールしていたが、意外なコマンドで手軽に実施する方法があった。FTPコマンドを使うのだ。

使い方は以下の通り。

   ftp
   open <HOST名 or IPアドレス> <ポート番号>
   
    →接続OK:「www.google.com に接続しました。」が表示
    →接続NG:何も表示されない

実行例を示す。www.google.comに対して、80番ポートで接続可能か確認しており、接続OKのパターンとなる。なお、接続してからプロンプトが戻るまでは時間を要するが、「Ctrl+C」にて接続を閉じることができる。

   C:\>ftp
   ftp> open www.google.com 80
   www.google.com に接続しました。
   接続がリモート ホストによって閉じられました。
   ftp>

以下は接続NGのパターン。何も表示されずしばらく経過したのち、タイムアウトの出力がされる。タイムアウトまでは「Ctrl+C」などを押してもキャンセルできないため、待たねばならなくなる。Windows 10のPCで時間測定したところ、105秒(1分45秒)でタイムアウトするようだ(ただし、タイミングによっては21秒となる場合があり、法則がよくわからなかった)。

C:\>ftp
   ftp> open www.google.com 81
   > ftp: connect :接続がタイムアウトしました
   ftp>

2015年11月15日日曜日

Windows Updateが「現在サービスが実行されていない」というエラーが発生して実行できなくなった件

エラー事象について

ある日Windows 7 SP1のPCのコントロールパネルからWindows Updateを確認すると×印が表示されていた。


さらに、「更新プログラムの確認」ボタンを押すと以下エラーのポップアップが表示された。


<エラーメッセージ>
"現在サービスが実行されていないため、Windows Update で更新プログラムを確認できません。このコンピューターの再起動が必要な可能性があります。"

しかし、サービスを確認するとWindows Updateはしっかり起動している。ということで、微妙に試行錯誤したので解決までの顛末を記載する。

マイクロソフトのKBのFix itを試す

このメッセージで調べると以下KBがヒットした。

"Windows Update で更新プログラムを確認できません" エラー メッセージが更新プログラムをインストールしようとすると表示される
https://support.microsoft.com/ja-jp/kb/2730071

Fix itが用意されていたのでダウンロードして実行してみた。なにやら問題が見つかって解決済みと表示されたので、問題は修復されたのかと期待したが、結果的にエラーは解消されなかった。


別の技術情報の回避策を試す

原因不明で困っていると、「Windows Update サポート チーム (日本)」のブログに情報を見つけることができた。

[C8000247] 「現在サービスが実行されていないため ~」 のエラーについて
http://blogs.technet.com/b/wuj/archive/2013/07/26/c8000247.aspx

この中に以下記載がある。
多くの場合、この状態は HDD を交換したコンピューターで発生しています。これは Windows Update 自体に直接的な原因があるわけではなく、HDD の適切なドライバーが適用できていないことが要因です。

要因となっているのは  Advanced Format Disk と呼ばれる新しい HDD のフォーマットです。このフォーマットに対応した HDD を使っている場合、適切なドライバーが適用されていないと一部のデータに正常にアクセスできないことがあります。この場合、適切なドライバーを入手してインストールしてください
Windows UpdateにHDDのドライバーが関係するとはなかなか思いつかず、この情報は目から鱗だった。そして、このPCは先日SSDに換装したばかりだったので、このブログに記載の以下回避手順を試してみることにした。
多くの場合 Intel Rapid Storage Technology をインストールすることでも回避できるようです。このあたりはご利用環境にもよるので参考としてご認識ください。

https://downloadcenter.intel.com/Detail_Desc.aspx?agr=Y&ProdId=3409&DwnldID=22036&lang=jpn
- ファイル名: iata_cd.exe
- バージョン: 11.6.0.1030
- 言語: マルチ・ランゲージ
該当のドライバをインストールして、正常にドライバがインストールされた。再起動してWindows Updateを実施すると、エラーは解消されていた。


まとめ

結局、問題はHDDのドライバー問題で、「Advanced Format Disk 」という比較的新しいディスクフォーマットに対応したドライバーが必要だったということだった。後で調べて見つけた以下KBにも詳しく記載がされていた。

Windows 7 および Windows Server 2008 R2 と Advanced Format Disk の互換性を向上させる更新プログラムを入手できます
https://support.microsoft.com/ja-jp/kb/982018


2015年10月12日月曜日

QNAPのQTS(OS)を4.2にバージョンアップしてみた

先日QNAPのOSであるQTSの最新バージョン4.2.0がリリースされたようだ。現在、バージョン4.1.4を利用しており、特にこれといって不満はなかったのだが、インターフェースが新しくなり操作が軽くなったとの情報もあったので、バージョンアップしてみることにした。

なお、QTS 4.2の詳細な情報は以下URLに記載されている。
https://www.qnap.com/qts/4.2/jp/

バージョンアップの流れ

バージョンアップはいたってシンプルで、すべてQTSのWeb画面からGUI操作にて完了する。

1. 「システム設定」→「ファームウェア更新」→「ライブ更新」画面にて、現在のバージョンを確認しgておく。


2. 「更新を確認」ボタンを押すと4.2.0の更新情報が出てくるので、「OK」を押す。


2. わざわざ「新機能」のページが表示されるので「続行」を押せばバージョンアップのプロセスが開始される。再起動の時間も含めて15分もあればバージョンアップは終了する。


3. ログインして、バージョンを確認。問題なく4.2.0にあがっていた。


4. バージョンアップ後、App Centerで個別にバージョンアップが必要なアプリがないか確認しておくこと。

バージョンアップで変わった点

少しだけ管理画面を操作した中で見つけた変更点を記載しておく。

①画面デザインが一新した。コントロールパネルのアイコンもすべて今風のアイコンデザインになっている。操作性もよくなっており、バージョンアップ前よりサクサク動くような気もする。


②ダッシュボードから、リソースモニター等をドラッグアンドドロップで画面上に配置できるようになった(前バージョンでそもそもそのような操作をしたことがなかったので、もともとできていたかもしれない)。


③画面の表示モードが選択可能になった。タブモードにすると、各ウィンドウは画面いっぱいに表示されるようになる。ウィンドウモードは今までの表示方式と同じ。フレームレスモードはウィンドウにマウスオーバーすると、最小化や閉じるボタンが表示されるというモードになった。私はスマートフォンからも操作することがあるので、タブモードで運用することにした。



④「システム設定」→「ハードウェア」→「一般」タブに謎のオプション「高パフォーマンスモードを有効にする」が増えていた。「ネットワーク環境が不安定な場合は有効にするな」とのことだが、自宅のLANで使っているのだから安定しているだろうということで、チェックをONにして転送速度を計測してみたが、特に変化がなかったのでオフに戻した。


まとめ

というわけで、バージョンアップは短い時間で簡単に実施できるし、ただのファイルサーバーとしてQNAPを使っているようなユーザーにおいては特に不具合もなく使えそうだ。個人的には画面表示が洗練されることや操作性が改善されることもあるので、特に理由がなければバージョンアップをお勧めする。

2015年8月8日土曜日

Windows 7 Proの仮想マシンをWindows 10 Proにアップグレードしてみた

Windows 10はWindows 7やWindows 8のユーザーであれば1年間に限り無償アップロード権がもらえる。先日7/29にとうとうアップグレードの開始日となった。

とはいっても、私のWindows 7とWindows 8.1のPCはどちらもアップグレードの予約用のアイコンが表示されなかったため、何もせず期日を迎えてしまった。アップグレードは予約をしたPCに対し順次開始されるような雰囲気があったが、実際は手動であればいつでも好きなときにアップグレードすることができたので、その手順を記載する。

Windows 10のメディア作成ツールを入手

以下サイトからメディア作成ツールを入手する。32bitと64bitがあるので、現在使っているOSに合わせてダウンロードすればよい。

https://www.microsoft.com/ja-jp/software-download/windows10

アップグレードの開始

メディア作成ツールという名前なので、Windows 10のISOファイルも作成することはできるのだが、このツールが直接OSのアップグレードを実行する機能もある。今回はその機能を使ってみた。

なお、今回自分がアップグレード対象としたのは、Windows 7上のVMware Workstation 11で稼動しているWindows 7。さすがにリリース直後のOSをメインPCにインストールする勇気はでなかった。

さて、メディア作成ツールを起動すると以下画面が出る。ここで「このPCを今すぐアップグレードする」を選択する。
※インストールメディア(ISOも作成可能)を作りたければ、下を選ぶ。


そうすると以下のような遷移で処理が動く。

 ①Windows 10をダウンロードしています (6分)
 ②ダウンロードを検証しています (2分)
 ③Windows 10のメディアを作成しています (14分)
 ④更新プログラムをダウンロードしています (1分)

ちなみに、これはよくない仕様だが、Windows 10にアップグレードできない条件と合致すると、④で止まる。④に到達するまでそこそこ時間を要するので、条件チェックは一番最初にして欲しい。最初1GBのメモリの仮想マシンをアップグレードしようとしたら、以下メッセージで失敗してしましまった。


その後は、ライセンス条項の同意など一般的な内容なので、次へ進んでいけばよく、最終的に「インストールする準備ができました」の画面になる。


インストール

以下のような画面が出てインストールが進んでいく。時間は45分要した。





初回起動

アップグレードが終了すると、初回起動時だけに表示される画面に遷移する。面倒だったので「簡単設定を使う」を選択し終わらせてしまった。




Windows 10の起動とVMware Toolsの再インストール

最終処理が終わると、Windows 10のデスクトップが表示される。



これで通常のPCでのアップグレードは終了だが、VMware仮想環境の場合は、以下を実施する。

 ①仮想マシンをシャットダウン
 ②仮想マシンの設定画面にて「ゲストOS」の項目を「Windows 10 x64」に変更
 ③仮想マシンを起動
 ④VMware Toolsを再インストール

VMware Toolsは、OSのバージョンが変わると、微妙にインストールされるドライバや変更される設定が異なることがあるので、上記を実施している。

なお、上記②の手順について補足だが、VMware Workstation 11には「Windows 10 x64」の選択肢が用意されていた。しかし、ESXiの場合はバージョンによっては表示されないと思うので、アップデートがVMware社から用意されるようであればアップデートする。そうでない場合は、一番近いOS(Windows 8やWindows Server 2012)などを選んで起動することを期待してみるのが良い。
※今回の場合であれば、Windows 7の設定状態でも起動もするし、VMware Toolsも動作した

最後に

これでインストールが完了したので、Windows 10の使い勝手を確認しようと思う。常用できそうであれば、メインPCをWindows 10にアップグレードするつもり。

人気の投稿