Intel NUC (NUC6i5SYH) に Windows Server 2016 を入れた際にネットワークに接続できない問題を直す

新しくサーバー用に NUC6I5SYH を購入し、Windows Server 2016 をインストールしたのですが、素の Windows Server には最小限のドライバーしか入っていないため、イーサネットを使用しての通信ができません。

通常この場合はハードウェアを提供しているメーカーのサイトからドライバーをダウンロードしてインストールするのですが、Windows Server 2016 が出たばかりというのと、そもそも Intel NUC はサーバー向けではなくコンシューマ向けのハードなので、Windows Server 2016 用のドライバーは現時点では提供されていません。代わりに Windows 10 用のドライバーを入れることはできるのですが、インストールできないドライバーもあり、今回のイーサネットのドライバーもインストールできない部類に入るため、ネットワークに接続することができません。

ドライバーをインストールするためにいろいろ調べたところ、以下のサイトに載っている手順でインストールすることができました。どのサイトも手順は同じなので、おそらく大丈夫だと思います。一応リンク先の情報では Windows Server がプレビュー版であったり、NUC が前の世代だったりしていますが、問題なくインストールして通信できるようになりました。今回購入した「NUC6I5SYH」のイーサネットデバイスの番号は「DEV_1570」でしたが、手順の一覧には含まれているようです。(※日本語のサイトは最後の手順が端折られているので、英語のサイトも参考にして下さい)

ちなみに無線 LAN を使うには、Windows Server の機能で「ワイヤレス LAN サービス」をインストールする必要があります。これをインストールしないとどうあがいても Windows Server が通信させてくれません。インストール後は無線 LAN のドライバーを更新して再起動すれば OK です。


Windows 8.1 への UA-1G ドライバのインストール方法

環境

  • Windows 8.1 64bit

ドライバのインストールについて

Windows 8.1 がようやく一般向けにもリリースされましたが、USBオーディオ・インターフェース「UA-1G」の Windows 8.1 用のドライバはまだ配布されていません。(今後配布されるかどうかもわかりません)

Windows 8 のときは公式サイトのダウンロードページより「UA-1G Driver Ver.1.0.0 for Windows 8」をダウンロードして使用していましたが、Windows 8.1 にアップデートしたところ、このドライバでは正常に動作しませんでした新たに入れなおしてもインストール画面が途中から進みません。

そこで代わりに「UA-1G Driver Ver.1.0.0 for Windows 7 64ビット版」をダウンロードし、インストーラーは直接実行しないで、私が以前書いた記事をもとにインストールしてみたところ、正常に音声が再生されるようになりました。もちろん公式のインストール方法ではないのでなんらかの障害が発生した場合は自己責任になりますのでご注意ください。


[SSIS] Excel から型情報を意識せずに確実に読み込む方法

環境

SQL Server 2005, 2008, 2008 R2

発生する問題

SSIS (SQL Server Integration Services) の データクローから「Excel ソース」を使用すると Excel ファイルからデータを取り込むことができます。Excel の中身がヘッダ1行と2行目以降がデータという一般的なテーブルレイアウトであれば、そのままデータベースに取り込めるので結構便利です。

しかし、実際に使ったことがある方は経験されていることが多いと思いますが、Excel のデータの中身が変わると、SSIS デザイナ上でなぜか型が一致しないという警告が出ることがあります。一度詳細を開いて更新すればもとに戻りますが、Excel の中のデータが変わるとまた警告がでる、の繰り返しになります。

また、場合によっては Excel の中にはきちんとデータがあるにも関わらず、実際に読み込んでみると null で読み込まれる場合があります。

これらの現象は SSIS の問題ではなく、SSIS が Excel の読み込みコンポーネントとして使用している「Excel ISAM ドライバ」の仕様の問題で発生します。これは「Microsoft Jet 4.0 OLE DB Provider」でも「Microsoft Office 12.0 Access Database Engine OLE DB Provider」でも同様です。

このドライバが何をしているかというと、データを読み込む際にわざわざ型指定して読み込まなくても、Excel の中身を見て自動的に型を判別してくれるという便利そうな処理をしていますが、その代り、データの中身の型がころころ変わると読み込む際の型情報も変わってしまいます。そのため、SSIS 上のデザイナでも、事前に型を決定しているにもかかわらず、Excel の中身の型が変わってしまうことによって型が不一致であるという警告が表示されるのです。

このあたりの使用は下記のサイトをみるとわかりやすいかと思います。

簡単にまとめると、Excel の上位8行を読み込み、その列で最も多い型を読み込む型として使用するようになっています。例えば8行内に、文字列が3つ、数値が5つあればその列は「数値型」になります。逆に文字列が6つ、数値が2つであればその列は「テキスト型」になります。同じ個数の場合は「数値型」が優先されます。

ちなみに SSIS で説明していますが、ISAM ドライバーの問題なので、これを使うプログラムはすべて同じ問題を抱えています。

対応方法

ではこれを確実に回避するにはどうすればいいかというと、少し手を込んだことをしなければいけません。

まず、今回の対応方法としては前提条件としてすべての列を文字列として読み込みます。もともと数値の列も文字列として読み込むので、読み込んだ後は数値に変換する必要があります。これは臨機応変に対応してください。

ISAMドライバーで読み込む際、「IMEX」というパラメータを指定することができます。これに「1」を指定すると「インポート モード」になり、読み込むすべてのデータがテキストになります。ただし、Excel 内の指定した列のデータがすべて数値の場合は数値になってしまうので注意してください。一つでも文字列があれば読み込む型は文字列になります。

IMEX パラメータは「接続文字列」で指定します。SSIS デザイナで接続文字列を編集する場合は、接続マネージャーで作成した Exce ソースを右クリックし、プロパティを開きます。プロパティエリアに「ConnectionString」という項目がありますので、その文字列を直接編集します。GUI で設定するパターンもありますが、こちらは IMEX が設定できないので注意してください。

IMEX パラメータは下記のように設定します。一番後ろにある「Extended Properties」内にセミコロン区切りで「IMEX=1」を追加します。

  • Provider=Microsoft.ACE.OLEDB.12.0; Data Source=C:Test.xlsx; Extended Properties="Excel 12.0; HDR=YES; IMEX=1;”

接続文字列については以前まとめましたのでこちらのページを参照してください。

さて、これですべての列は文字列として読み込める「はず」なのですが、前述したとおり、Excel にすべて数値が入力されていた場合、または何も入力されていない場合はどうしても列の型が数値として読み込まれてしまいます。ですので、Excel の1行目か2行目に「1行すべて文字列だけを入力した行」を入れるようにします。こうすればほぼ間違いなく文字列として読み込めるようになります。読み込みもとの Excel ファイルにもよりますが、テキスト行を作ってその行だけ非表示にすれば編集上は問題ないかと思います。

 

まあ、個人的には Excel で読み込むのではなく、型を意識しない CSV ファイルのほうがよかったりもするんですけどね。Excel 上で編集すると「0000」とテキストとして貼り付けたつもりが数値として 0 になってしまってて気づかなかったりとかあるので。実は CSV も CSV でダブルクォーテーションのエスケープが考慮されてなかったりとかいろいろ問題はありますが (^^;)


TVTest, HDUCを使用してWindows 8で地上波テレビを見る

注意

ここに記載しているのはメモ書きです。

説明している手順は途中で必要なものがぬけていたりしていますので、不足分は各自補完してください。また、機材やソフトウェアも限定しているのでご注意ください。

ここで説明した手順を実施してPCに不具合等が発生した場合でも責任は負えませんので自己責任で行ってください。また、不正な扱い等も行わないようにしてください。ここでは視聴が可能になるまでの手順を説明しています。今後の法改正でこれらの操作が違法行為になる可能性も捨てきれませんので、それらを認識したうえでの参考資料としてください。

環境

  • Windows 8 x64 Enterprise

使用するもの

  • TVTest
  • MonsterTV HDUC (HDUSでもほぼ同じ)

手順

まず、Windows 8 でドライバの署名チェックをしないように設定します。詳しい説明は以下のサイトでも説明されているのでそちらをご覧ください。

コマンドプロンプトを「管理者権限」で起動し、以下のコマンドを実行、Windows 8 をテストモードにします。

image

bcdedit /set TESTSIGNING ON

※戻すときはOFFにしてください。

Windowsを再起動してドライバーの署名の強制を無効にします。この時通常の手順で再起動するのではなく、以下の手順で再起動します。

[チャーム] > [設定] > [PCの設定変更] > [全般] > [PCの起動をカスタマイズする] > [今すぐ再起動する] > [トラブルシューティング] > [詳細オプション] > [スタートアップ設定]

※チャームはマウスポインタをデスクトップの右上や右下に移動したときにでてくるアレです。

image

再起動すると、スタートアップ設定の画面が表示されるので「7)ドライバー署名の強制を無効にする」を選択します。(キーボードの7を押す)

デスクトップ右下にテストモードが表示されているか確認します。

image

 

さて、ここからはTV視聴用のデバイスを接続する手順になるため、持っているものによって方法が異なったりします。ここでは「MonsterTV HDUC」について説明していますが、ドライバーの事前準備などについては説明していません。 (よく説明されているのは HDUS なのですが、同じ系列なので問題なく使えると思います)

Webで調べるといくつかサイトがありますのでそちらを参照してください。(参考サイトですが、以前参照していたサイトがなくなったりと浮き沈みが激しい界隈なので自力で探してください。おそらくここら辺が一番面倒だったりします)

関連のありそうなサイト (あまりみてない)

 

ここではドライバーがすでに用意してあるものとして説明しています。一応 Windows Vista (x64), Windows 7 (x64) 用で使用したドライバーでも問題なく動作しています。

ドライバーの準備ができたら HDUC を USB で接続します。自動的にドライバーがインストールされますが、有効なドライバーではないので終わるまでそのまま待ちます。

デバイスマネージャーを開き、ドライバーが正常に認識されていないデバイスを右クリックして「デバイスの更新」を選択します(ここではAUSBDTV)。ここからの手順は環境によって異なるかもしれません。一例として見ておいてください。

image

「コンピューターを参照してドライバー ソフトウェアを検索します」を選択。

image

パス指定で用意したドライバーのあるフォルダを選択します。選択したら「次へ」をクリック。

image

正常にドライバーがインストールされればOKです。もう一度デバイスマネージャーを参照すると下のように「SKNET」が表示されます。これらに対しても同じようにドライバーをインストールしてください。

image

下のようなダイアログが出た場合はそのままインストールを続行してください。

image

これでドライバーのインストールは完了です。

 

続いてMPEG-2コーデックをインストールします。Windows 8 は動作再生のコーデックは基本的なものしか入っておらず、利用料金のかかる MPEG-2 コーデックは入っていません。

ここではフリーで配布されているコーデック「ffdshow」をインストールします。下記のサイトからダウンロードしてください。

ダウンロードしたらインストールしてください。途中 MPEG-2 コーデックをインストールするように設定を忘れないでください。デフォルトでは選択されていません。

 

ここまで完了したら「TVTest.exe」を起動して地上波テレビが見れるか確認してください。TVTest についてはいろんなサイトに説明が載っているのでそちらを参照してください。