物理の駅 Physics station by 現役研究者

テクノロジーは共有されてこそ栄える

Windows Server 2019にIntel LAN Adapter I219-Vのドライバをインストールする

Intelのコンシューマー用のネットワークアダプターは、いろんな思惑から、Windows Server用のドライバを提供していないことがある。しかし、Windows10とServer2019は同じものなのでドライバが使えないわけではない。使うためには、やや専門的な知識を必要とする。

I219-V Windows Server 2019用のドライバーをダウンロード

downloadcenter.intel.com

PROWinx64.exe を起動し次のエラーが出るまで進む

ドライバーをインストールできません。このコンピューターにはインテル(R)アダプターがありません。

その状態で、%LOCALAPPDATA%/Temp を開く。更新日時の新しいフォルダで、WZSE0.TMP的なのを開く。微妙に名前は違うらしい。フォルダ内にPRO1000が入っている。このPRO1000をデスクトップ等にコピーする。

バイスマネージャーで認識していないネットワークアダプターのDEV IDを確認する。今回は0D55だった。

Winx64NDIS68e1d68x64.infを開く。名前は微妙に違うかもしれない。

0D55で検索する。

[Intel.NTamd64.10.0.1]のセクションに

%E0D55NC.DeviceDesc%            = E0D55.10.0.1,       PCI\VEN_8086&DEV_0D55
%E0D55NC.DeviceDesc%            = E0D55.10.0.1,       PCI\VEN_8086&DEV_0D55&SUBSYS_00008086

[Intel.NTamd64.10.0.1..18362]のセクションに

%E0D55NC.DeviceDesc%            = E0D55.10.0.1.19H1,       PCI\VEN_8086&DEV_0D55
%E0D55NC.DeviceDesc%            = E0D55.10.0.1.19H1,       PCI\VEN_8086&DEV_0D55&SUBSYS_00008086

みたいなのが見つかるはず。このどちらか(当方で試したのは19H1の方)を

[Intel.NTamd64.10.0]
[Intel.NTamd64.10.0...18362]

のセクションの最後に追加し保存する。書き換えた未署名のinfファイルはインストールできないので、次の操作を行う。

管理者権限のコマンドプロンプトで以下のコマンドを実行する。

bcdedit /set LOADOPTIONS DISABLE_INTEGRITY_CHECKS
bcdedit /set TESTSIGNING ON
bcdedit /set NOINTEGRITYCHECKS ON

再起動

e1d68x64.infを右クリックしてインストール

これでネットワークアダプターが認識されるはずである。

未署名のinfファイルを使えなくするため、管理者権限のコマンドプロンプトで以下のコマンドを実行しておく。

bcdedit /set LOADOPTIONS ENABLE_INTEGRITY_CHECKS
bcdedit /set TESTSIGNING OFF
bcdedit /set NOINTEGRITYCHECKS OFF

環境変数を設定したコマンドプロンプトの簡単な作成方法

バッチファイル(拡張子がbat)のファイル作っておき、それを起動するのが簡単な作成方法である

ファイル名は例えば setenv.bat とし、中身には以下のように記述する。この例では、C:\ をPATHに追加している。

@echo off
PATH=C:\;%PATH%
cmd /k

作成後、 setenv.bat をダブルクリックするだけで、必要な環境のコマンドプロンプトが立ち上がる。

calibreのアンインストール時に拡張子への関連付けが消えない問題の解決

Bug #1856268 “File Associations Not Removed On Uninstall” : Bugs : calibre

ここで報告されてる通り、アンインストール時に関連付けの登録が消えないのは仕様通りだそうだ。

例えば、64bit版をインストールし、起動時に(無意識に)関連付けをしてしまうと、PDFなどのファイルに

"C:\Program Files\Calibre2\calibre.exe" "%1"
"C:\Program Files\Calibre2\ebook-viewer.exe" "%1"

で開くという選択肢が残ったままになる。レジストリからも削除できるが、手動でレジストリを操作するのはトラブルの元だからやめよう。

公式に削除する方法が提供されている。calibre-debug.exe が必要なので、再度calibreをインストールする。calibreは起動しない。通常はPATHが通っているので、コマンドプロンプトなどで

calibre-debug --default-programs=unregister

を実行すると、関連付けの登録を解除してくれる。インストールだけでは関連付け登録はされないのでそのままcalibreをアンインストールすれば作業完了である。

Pythonで動画ファイル (形式.mp4)から画像を切り出す

note.nkmk.me

OpenCVを使うとすぐに実装できる。ほぼ上記URLのサンプル通り。

import cv2
import os

def save_all_frames(video_path, ext='jpg'):
    if not os.path.exists(video_path):
        return

    cap = cv2.VideoCapture(video_path)

    if not cap.isOpened():
        return

    dir_path = os.path.dirname(video_path)
    digit = len(str(int(cap.get(cv2.CAP_PROP_FRAME_COUNT))))

    n = 0

    while True:
        ret, frame = cap.read()
        if ret:
            filename = '{}_{}.{}'.format(os.path.splitext(os.path.basename(video_path))[0], str(n).zfill(digit), ext)
            cv2.imwrite(os.path.join(dir_path,filename), frame)
            n += 1
        else:
            return

save_all_frames(r"C:\Users\Masahiro\Downloads\file.mp4")
save_all_frames(r"C:\Users\Masahiro\Downloads\file.mp4","png")