Hebikuzure's Tech Memo

2013年5月28日

Microsoft の外部公開仕様

Filed under: Windows Info — hebikuzure @ 8:54 AM

Microsoft Open Specifications
http://www.microsoft.com/openspecifications/en/us/

先日の「ネットワーク パケットを読む会(仮)」でちょっと話題になったので、自分のメモも兼ねて。

Microsoft では他のベンダーやオープンソース プロジェクトの製品との相互運用性や互換性が確保されるよう、さまざまな外部仕様のドキュメントを公開しています。これらの仕様については Microsoft Open Specifications (http://www.microsoft.com/openspecifications/en/us/) というポータルサイトが置かれていて、ここからドキュメントや技術情報、フォーラムなどにアクセスできます。ここで取り上げている分野は以下の4つです。

Protocols
Microsoft 製品間のコミュニケーションで利用される、プロプライエタリな (標準化されていない) プロトコルの仕様
Computer Languages
Microsoft 製品に実装されているプログラミング言語の仕様
Standards
Microsoft Exchange Server, Microsoft Outlook, Word, Excel, PowerPoint, Windows WordPad, SQL Server, Internet Explorer などの Microsoft 製品に実装されている標準技術の仕様
Data Portability
Microsoft Office や Microsoft SQL Server でユーザーが作成したデータのポータビリティに関する仕様

すべて英文で、かつボリュームも大きい資料が多いのですが、いずれも Microsoft の公式文書ですから製品の挙動について正しい動作を確認したい場合や、明確なエビデンスが必要な場合などにはぜひ活用してください。

2013年1月12日

Windows の TCP ウィンドウ スケーリング ヒューリスティック

Filed under: Windows Info — hebikuzure @ 10:56 PM

Hotfix improves TCP window scaling in Windows Vista, Windows Server 2008, Windows 7, or Windows Server 2008 R2
http://support.microsoft.com/kb/2780879/en-us

興味深いマイクロソフト サポート技術情報を見つけたので紹介します。

TCP プロトコルではコネクションを確立するために 3 Way ハンドシェイク (SYN –> SYN ACK –> ACK) を行います。クライアントからの SYN にサーバーが応答できなかった場合、クライアントは SYN パケットを再送して再接続を試みますが、Windows 7 以前のバージョンの実装では 2 回目の SYN  再送でサーバーと接続できた場合、このコネクションではウィンドウ スケーリングが無効になります。この動作と、この動作を変更できる修正プログラム (hotfix) について説明しているのが、サポート技術情報 2780879 です。

ウィンドウ スケーリングとは RFC 1323 で定義されている TCP の広帯域ネットワークへの最適化手法で、元々の TCP で設定できるウィンドウ サイズ (送信先からの応答なしに連続して送信できるサイズ) の最大値である65,535 バイトを、1 ギガバイトまで拡張できる方法です。

参考
Windows 2000 および Windows Server 2003 の TCP 機能について
http://support.microsoft.com/kb/224829/JA

なお、Windows Vista / Windows Server 2003 移行のバージョンでは、ウィンドウ サイズは自動調整されるので、上記サポート技術情報に記載されている TCPWindowSize レジストリ値は利用されません。(TCP 受信ウィンドウ自動チューニング http://technet.microsoft.com/ja-jp/magazine/2007.01.cableguy.aspx)

このウィンドウ スケーリングの通知が SYN パケット内で設定されているのですが、上記のように SYN パケットの再送が2回行われると、ウィンドウ スケーリングは無効になり、TCP ウィンドウの最大サイズは 65,535 バイトに制限されます。

この動作を緩和し、より多くのネットワーク環境でウィンドウ スケーリングが機能するよう動作を変更するのが、サポート技術情報 2780879 で提供されているhotfix です。この hotfix を適用すると、netsh コマンドにサブ コマンドが追加され、SYN パケット再送時のウィンドウ スケーリングの動作を指定できます。

  • netsh int tcp set heuristics enabled : SYN パケット再送時のウィンドウ スケーリングを有効にします
  • netsh int tcp set heuristics disabled : SYN パケット再送時のウィンドウ スケーリングを無効にします (既定の動作)

さて、このサポート技術情報と hotfix は対象が「Windows Vista, Windows Server 2008, Windows 7, or Windows Server 2008 R2」となっているので、Windows 8 / Windows Server 2012 ではどうなっているのかと思って確認したら、これらの新しい Windows では、既定で上記のコマンドが有効になっており、この機能の事を「ウィンドウ スケーリング ヒューリスティック」と呼んでいました。つまりこの hotfix は Windows 8 / Windows Server 2012 で搭載された TCP の新機能のバックポートだったのです。

この手のバックポートは他にもありそうですし、これからもちょこちょこ出てくるかもしれませんね。

2012年3月3日

Windows 8 Consumer Preview のインストール

Filed under: Windows Info — hebikuzure @ 2:35 PM


Windows 8 Consumer Preview
http://windows.microsoft.com/ja-JP/windows-8/consumer-preview

以前の記事で Windows 8 Developer Preview のインストールを試した事を書きましたが、Windows 8 Consumer Preview が公開されたので同じマシンにインストールしてみました。操作などは Developer Preview を使って慣れてきていたのですが、細かな部分がよりチューニングされて使いやすくなっています。また全体的な動作速度も Developer Preview に比べると早くなっていて、さらに最適化が進む製品版には期待ができそうです。各機能や使い方の解説は多くの方が記事やブログで書かれていますので、そちらに譲ります。

ちなみに Windows 8 Consumer Preview のインストールに使ったマシンは以前の記事にも書いたように HP Business Desktop dx5150 SF という、元々は Windows XP SP2 がプリインストールされていたマシンです。これでエクスペリエンス インデックスが「2.2」で最低の項目が「Aero のグラフィック」 (Developer Preview の時より 0.2 向上) という事なので、日常的な Web ブラウジングやメール、SNS、Office アプリケーションの利用では普通に使えるレベルなのですから、恐れ入ります。(Windows 7 や Developer Preview の時と同様、ディスプレイ ドライバーはベンダーのサイトから Windows Vista 用ドライバをダウンロードして適用しています)

一つになるのは、Metro スタイルのアプリケーションとして提供されているメール アプリケーションで、一般的な POP/SMTP や IMAP のアカウントが作れない事です。このアプリでアカウントとして設定できるのは Hotmail と Gmail、Exchange のアカウントに限られています。そのためプロバイダーのメールや Exchange ではない企業内メールなどはそのままでは利用できません。Hotmail、Gmail、Exchange のいずれも外部の POP/SMTP アカウントを接続して送受信する事ができますから、そちらの設定で回避する事は可能ですが、ちょっと面倒ですね。いずれは Store POP/SMTP にも対応したメール クライアントを公開するベンダーも出てきそうですが、ちょっと注意が必要です。

2011年11月26日

Windows 8 へのアップグレード(補足)

Filed under: Windows Info — hebikuzure @ 3:57 PM

昨日の記事について少し追加の説明をします。

Windows 7 までの場合、いわゆるインプレース アップグレード インストールの場合にはWindows の設定やインストール済みアプリケーション、ユーザー アカウントやユーザーのファイルははべて新しい環境に引き継がれますが、インプレース アップグレードができない場合は何も引き継がれず、必要に応じて「Windows 転送ツール」や USMT を利用して移行する必要がありました。

Blog 記事によると、Windows 8 ではこの動作が改善され、Windows 7 Upgrade AdvisorWindows 転送ツールが Windows 8 のインストーラーに統合されます。古い Windows 上で Windows 8 のインストーラーを起動すると、自動的にアップグレード チェックが行われ問題が確認されていたり対処が必要だったりするデバイスやソフトウェアがリストアップされます。これらについてクリアできるとインストールが開始されますが、その途中で Windows 8 に移行したい内容を選択する画面が表示されます。


互換性の確認画面


Windows 8 に移行する内容の選択

古い Windows のバージョンによっては、昨日の記事で書いたように移行できない物もありますが、ここで移行したい物を選択できます。

この後で再起動が求められ、インストールのためのWindows PE 環境が起動します。Windows 転送ツールでは古い Windows が稼働している状態で移行する情報やファイルを収集していましたが、Windows 8 ではこの Windows PE 環境で古い Windows 環境は Winodows.old フォルダーに移動され、Windows 8 のインストール後に上の画面での設定に応じて Windows.old フォルダーから移行すべき情報・ファイルが取り出され適用されます。この動作により、移行したい情報の収集がオフラインで行われるので、より安全に移行する事が可能になるようです。(また Windows.old フォルダーは既定ではインストール後4週間で自動的に削除されるようにするとの事です。)

オンライン インストール

もう一つ Windows 8 のインストールでの変更点として大きいのは、オンライン インストールが行えるようになる点でしょう。現在でも Windows 製品のダウンロード販売はありますが、これを進化させ、小サイズのインストーラーを起動すると自動的にインターネットからインストール パッケージのダウンロードとインストールが行われるようにするとの事です。またこの場合はダウンロードされるイメージに予めプロダクト キーを埋め込んで、ユーザーがプロダクト キーを入力しなくとも良いようにすると書かれています。具体的な販売方法や価格、再インストールやライセンスの別コンピュータへの移管方法など不明な点もありますが、インストール手段も大きく変わる事は間違いないようです。


インストール イメージのダウンロード

なおこの方法でダウンロードしたイメージも、DVD / USB メディアに書き込み、そこからインストールを行う事も可能と説明されています。

2011年11月25日

Windows 8 へのアップグレード

Filed under: Windows Info — hebikuzure @ 8:10 PM

Improving the setup experience
http://blogs.msdn.com/b/b8/archive/2011/11/21/improving-the-setup-experience.aspx

Building Windows 8 ブログに Windows 8 のインストール、特に以前のバージョンの Windows からのアップグレード インストールについての記事が掲載されています。かなり長文で内容も多義に渡りますが、多くの人の興味のあるだろう Windows 8 へのアップグレード パスについて記事から簡単に紹介します。

Windows 8 へのアップグレードがサポートされるのは(現在の予定では)Windows XP、Windows Vista、Windows 7 からで、Windows 7 のへのアップグレードと同様に Windows XP からのアップグレードが(三世代前のシステムであるにもかかわらず)サポートされるのが注目です。Windows 8 のリリース予定時点でも Windows XP のサポートが終了していないと考えられるためでしょうし、また現実問題として依然として多数利用されている Windows XP からのアップグレードをサポートしない訳にもいかないのでしょう。

ただしアップグレードが可能と言っても、いわゆる「インプレース アップグレード」、つまりアプリケーションや Windows の各種設定・構成を維持したままでのアップグレードが可能なのは Windows 7 からのアップグレードの場合だけで、Windows XP からのアップグレードではユーザー アカウントとファイルだけが移行の対象になります。

ブログでも書かれていますが、既存のコンピュータへの Windows 8 のインストールでは、以前のバージョンのシステムやユーザーファイル(Windows・Program files・Program files (x86)・Users・Program data)はオフラインの状態で(Windows PE で起動されている状態で) Windows.old フォルダーに移動され、Windows 8 のインストール中に必要な内容(設定や構成、ファイル)だけが Windows.old フォルダー内のデータから取り出され、新しい Windows 8 に適用される動作になるようです。また移行されるファイルは「移動(move)」されるのではなく、ハードリンクの作成が行われるとのことです。これらの動作により、アップグレード インストールの所要時間が(特に移行する情報が多い場合)劇的に低減されるとブログでは書かれています。


Windows 8 でのアップグレード インストール所要時間の高速化

こうした動作により Windows XP からのアップグレードも可能ですが、前述のようにアップグレード元の Windows に応じて移行できる内容は下表の通りとなります。アプリケーションを含む元の環境のすべてを移行できるのは Windows 7 からのアップグレードだけになる点に注意してください。

 

元の Windows

移行される内容 Windows 7 Windows Vista Windows XP
アプリケーション

×

×

Windows の設定

×

ユーザー アカウントと
ファイル

このブログ記事の内容は確定ではなく、製品としてリリースされる際には変更があるかもしれませんが、新しい PC であっても現時点ではダウングレード権などを利用して Windows XP を使い、リリース後に Windows 8 にアップグレードするというシナリオは可能と考えられます。もし今導入する PC の Windows をどうするか検討している方がいらっしゃれば、参考にしてください。

2011年10月9日

Windows 8 Developer Preview のインストール

Filed under: Windows Info — hebikuzure @ 12:25 PM

Windows 8 Developer Preview downloads
http://msdn.microsoft.com/en-us/windows/apps/br229516

先日から Windows 8 Developers Preview のインストールと環境づくりを試しています。インストールしたのは実機で、この Blog でも Windows 7 の RC 版をインストールして報告したのと同じ HP Business Desktop dx5150 SF というだいぶ古い非力なマシン。とは言え Windows 8 のインストール要件は満たしているのでダウンロードした ISO イメージを DVD に焼いて、それでブートすれば難なくインストールは完了しました。

ただし Windows 7 の時と同様に ATI RADEON XPRESS 200 チップセット内蔵グラフィックのドライバが入らなかったので、これも Windows 7 の時と同様にベンダーのサイトから Windows Vista 用ドライバをダウンロードして適用しています。問題なく動作しているので、Windows 8 用のディスプレイ ドライバが見つからない場合は Windows Vista / 7 用を試すと良いようですね。

さて肝心の動作ですが、流石にグラフィックが弱いので全体に画面の切り替えや描画が遅い感じですが、機能としては (開発途上版なのでところどころ動作に怪しい所はありますが) 一通りちゃんとつかえています。また Windows 7 RC の時に 2.3 だったエクスペリエンス インデックスは「2.0」ですが、これも Aero のグラフィックが 2.0 と遅いためで、その他の項目は Windows 7の時とほぼ同じでした。チューニングがすすんでいないと思われる現段階でこれですから、Microsoft は「Windows 7 が動作する PC であれば Windows 8 は動く」と説明していますが、それは本当のようです。

2010年12月17日

windows ログオン パスワードの LM ハッシュの保存についてのメモ

Filed under: Windows Info — hebikuzure @ 12:03 AM

MSKB 299656
Windows でパスワードの LAN Manager ハッシュが Active Directory とローカル SAM データベースに保存されないようにする方法
http://support.microsoft.com/kb/299656/ja
MSKB 946405
Windows Server 2008 ベースのドメイン コントローラーを Windows Server 2008 より前の既存のドメインに追加すると、クライアント コンピューターが正常に動作しないことがある
http://support.microsoft.com/kb/946405/ja

先日の「まっちゃ445勉強会」とその関連の Twitter TL でちょっと話題になった、Windows のログオン パスワードの LM ハッシュの保存に関してちょっとメモ。
まず上記の KB 299656 の内容をまとめると
  • Windows XP / Windows Server 2003 以前の Windows では、15 文字より少ない文字数のパスワードでは LAN Manager ハッシュ (LM ハッシュ) が保存される
  • LM ハッシュは下位互換性のために機能している LAN Manager (LM) 認証で利用される
  • 下位互換性が必要ない場合、LM ハッシュが保存できないように構成できる
    • 構成方法1 : グループ ポリシーで「ネットワーク セキュリティ : 次のパスワードの変更で LAN マネージャのハッシュの値を保存しない」 (NoLMHash ポリシー) を有効にする
    • 構成方法2 : レジストリに NoLMHash キー (Windows 2000) または NoLMHash 値 (XP / 2003) を作成する
    • 構成方法3 : 15 文字以上の長さのパスワードを使用する

さてこの技術情報 299656 は Windows XP / 2003 用で、それ以降の Windows での動作については書かれていない。技術情報 946405 を見ると Windows Server 2008 では既定で NoLMHash ポリシーが有効になっていると書かれている。それではクライアント Windows (Vista / 7) ではどうなっているのか実際に確認してみた。

以下、手元にある環境で確認した結果である。

  • Windows Server 2003 R2 : NoLMHash ポリシーが有効
  • Windows Server 2008 : NoLMHash ポリシーが有効
  • Windows Server 2008 R2 : NoLMHash ポリシーが有効
  • Windows Vista : NoLMHash ポリシーが有効
  • Windows 7 : NoLMHash ポリシーが有効

予想通りというか当たり前というか、どの Windows でも NoLMHash ポリシーが有効になっていて、LM ハッシュは保存されない動作が既定になっていた。
という事で、現在新規入手可能な Windows を使っている限りは脆弱な LM ハッシュの問題で心配する必要は無さそうだ。もっともまだ Windows XP を使っている人は技術情報 299656 を参照して LM ハッシュを無効にした方が良いですね。

2010年11月29日

MSE が「更新プログラム」として提供されるようになった

Filed under: Windows Info — hebikuzure @ 7:27 PM

MSKB 2267621
Microsoft Security Essentials はオプションの更新プログラムとして提供されます
http://support.microsoft.com/kb/2267621/ja

Microsoft Security Essentials (MSE) は Microsoft がリリースしている無償利用できる個人・小企業向けのマルウェア対策ソフトだが、最近になって MSE が Windows Update や自動更新でインストールできる「更新プログラム」として提供されるようになった。これについて上記のサポート技術情報で解説されている。具体的には、Windows XP、Windows Vista、Windows 7 でセキュリティ センター (アクション センター) でウイルス対策ソフトウェアが未インストールと検知されている場合、Windows Update と自動更新で更新プログラムとして MSE が提供される。

もちろんカスタム インストールを選択して MSE をインストールしない事は可能だが、既定の設定のまま進めれば自動的にインストールされ、マルウェアに対する保護が有効になる。単純に無理解や無意識でアンチ マルウェア ソフトをインストールしていないような人に対して、この方法は有効だろう。ただし日本市場について見ると、マルウェアに対する保護が十分でないパターンで一番多いのは「プリインストールされていたウイルス対策ソフトの有効期限が切れている」ではないかと思う。こうしたコンピューターに対して MSE が提供される事は無いので、この手の危険なクライアントが救われる訳では無い。
既にウイルス対策ソフトがインストールされている以上、それを勝手にアンインストールして MSE をインストールするような動作にはできないのだけれど、そうかと言ってこの手の状況が放置されるのも感心しない。プリインストールしたメーカー、あるいはプリインストールしてもらった製品のベンダーが責任を持ってユーザーに告知する方法を考えてほしい物だ。

2010年8月25日

Tech Ed Japan 2010

Filed under: Windows Info — hebikuzure @ 1:42 PM

こちらにも書きましたが、Microsoft Tech Ed Japan 2010 でライトニング トークをさせていただきました。
お世話になった皆さん、励ましや感想の声をおかけいただいた皆さん、ありがとうございました。

2010年4月2日

標準ユーザーでログオンすると RunOnce / RunOnceEX キーのコマンドが実行されない

Filed under: Windows Info — hebikuzure @ 8:10 AM

Standard user: RunOnce and RunOnceEx are not being executed
http://support.microsoft.com/kb/2021405

Windows には起動時に自動実行するプログラムを制御するためのレジストリ キーが用意されている。このキーについては以下のサポート技術情報で解説されている。

レジストリの RunOnce キーの定義
http://support.microsoft.com/kb/137367

このうち RunOnce と RunOnceEx は次回ログオン時に 1 回だけ実行されるよう設定するキーで、キーの値として設定されているコマンドの実行前に削除される動作になっている (この動作については この記事この技術情報に詳しい)。

さて Windows Vista / Windows 7 ではレジストリ アクセス権の仕様変更により、以下のように HKEY_LOCAL_MACHINE 配下に記述された RunOnce と RunOnceEx の設定は、標準ユーザー (Users グループのユーザー) でログオンすると実行されない。サポート技術情報 2021405 はこの現象について解説している。

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnceEx

実際に以下の手順で検証してみた。

  1. Windows 7 に管理者ユーザーとしてログオン
  2. 以下のスクリプト (VBS) ファイルを作成
     Wscript.Echo “Done!”
  3. レジストリに以下を設定
    [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce]
    “TEST”=”C:\Users\Public\Documents\TEST.vbs”
  4. ログオフし、標準ユーザーとしてログオン ⇒ スクリプトは実行されない。RunOnce キーの値は削除されない
  5. ログオフし、管理者ユーザーとしてログオン ⇒ スクリプトが実行される。RunOnce キーの値は削除される

なお HKEY_CURRENT_USER 配下に記述した RunOnce と RunOnceEx は実行されるし、HKEY_LOCAL_MACHINE 配下でも Run キーの設定はユーザーの権限にかかわらず実行される。 おそらくコマンドの実行前に値を削除する動作で標準ユーザーには削除する権限が無いため失敗し、その時点でエラーになってコマンドの実行自体も行われないと推測される。

RunOnce や RunOnceEx キーはソフトウェアのインストールなどで再起動やログオフ/再ログオンが必要になる場合に初期設定を走らせるのに使われることがあるキーだが、その場合は再起動/再ログオン後に管理者権限の無いユーザーでログオンすると必要な初期設定が行われない事になってしまう。そのため Windows Vista / Windows 7 に対応したインストーラの動作を作りこむ場合には十分な注意が必要だろう。

参考資料

« Newer PostsOlder Posts »

WordPress.com Blog.

%d人のブロガーが「いいね」をつけました。