トップ回答者
ADからのデバイスドライバ一括変更

質問
回答
-
> !!! ndv: This operation cannot be performed under Wow64.
64 ビット環境での 32 ビット プロセスは、WOW64 配下で実行されため、上記エラーは、64 ビット環境で 32 ビット バージョンの DevCon が実行されたためと考えられます。
対象 OS が 64 ビット プラットフォームの場合、64 ビット バージョンの DevCon を管理者権限で実行させる必要があります。
DevCon.exe のパスを指定せずに実行した場合、"path" 環境変数で登録されているフォルダ パスの中で、一番初めにヒットしたパスの DevCon が実行されます。
従って上記エラーは、"C:\Program Files (x86)\Windows Kits\10\Tools\x86\devcon.exe" が実行されてしまっているために発生していると考えられます。で、とりあえずは。。。。
"C:\Program Files (x86)\Windows Kits\10\Tools\x64" フォルダー内の "devcon.exe" を、テキトーなフォルダ (ex.] "c:\hoge" とか) にコピーしてください。
その上で、管理者権限でコマンド プロンプトを起動させ、カレント ディレクトリをそのフォルダに移動させ (ex.] cd c:\hoge)、そこから実行 (devcon update "C:\Windows\INF\hdaudbus.inf" "PCI\VEN_8086&DEV_A348&CC_040380") させてみてどーなるかを、確認してみてください。- 回答としてマーク negiposo 2020年5月20日 8:36
すべての返信
-
可能かと思います。
hdaudbus.infの場所はWindows10のバージョンによって変わり以下と異なる可能性があるので念のためC:\Windows\System32配下でhdaudbus.infを検索してパスが同じか確認してください。
(以下のパスはWindows10 v1903とv1909の場所になります。)
一度手動でコマンドを流して想定通りの動きをするようであれば、GPOのスタートアップスクリプトで実行させれば変更されるのではないかと思います。
pnputil.exe /add-driver "C:\Windows\System32\DriverStore\FileRepository\hdaudbus.inf_amd64_f12cafeced9b2919\hdaudbus.inf" /install
- 編集済み kaz8629 2020年5月15日 5:44
-
フォーラムにご投稿くださいましてありがとうございます。
この後の状況はいかがでしょうか。
同じ問題を持っている人々に役に立つために、参考になった投稿には「回答としてマーク」をご設定ください。
ご不明な点がございましたら、お気軽にお問い合わせください。
Fan
Please remember to mark the replies as an answers if they help. If you have feedback for TechNet Subscriber Support, contact tnmff@microsoft.com
-
ドライバのパスを確認し、コマンドを叩いてみたのですが、うまくいきませんでした。
「ドライバー パッケージが正常に追加されました。」と表示されるのですが、
再起動してデバイスマネージャを開いても何も変わっていません。
想像ですが、今回の問題は正しいドライバがインストールされていないのではなく、誤ったインテルのドライバが有効になってしまっていて、しかもそれが一見正常に動いていることが原因ではないかと。
そのため、正しいドライバをインストールするだけではなく、設定(適用されるドライバ)を変更する必要があるのでは、と思っております。
しかし、その方法が思い付かず、お知恵を拝借できないでしょうか? -
なんか動きが違うようですね。一応実機で確認してみたのですが通常であれば提示したコマンドを実行すると以下のようにインストール(変更)されてデバイスマネージャの表示がかわるのですが。。。
-------------------------------------------------------
ドライバー パッケージの追加: hdaudbus.inf
ドライバー パッケージが正常に追加されました。
公開名: hdaudbus.inf
ドライバー パッケージがインストールされました。
ドライバー パッケージの合計: 1
追加されたドライバー パッケージ: 1-------------------------------------------------------
ちなみにですが、コマンド実行後に「ドライバー パッケージが正常に追加されました。」も含めてどう表示されていますか?
- 編集済み kaz8629 2020年5月18日 6:13
-
実機でお試しいただいたのですね。本当にありがとうございます。
本当に申し訳ないのですが、挙動が異なるのは下記の理由かもしれません。コマンドをテストした本体は、一度、上記URLに記載の、デバイスマネージャから手動でドライバを変更したものです。
テストのため、手動で誤ったインテルのドライバに戻してからテストをしております。
(そのため、一度ドライバがインストールされたことになります)現在社内が完全テレワークになっており(すべてリモートでログインしています)、他のテスト機を用意するのがなかなか難しいのですが、まだ手動で直していない本体で改めてテストしたいと思います。
また、メッセージは下記の通りです。
-------------------------------------------------------
ドライバー パッケージの追加: hdaudbus.inf
ドライバー パッケージが正常に追加されました。
公開名: hdaudbus.inf
ドライバー パッケージは、該当するすべてのターゲットで最新です。
ドライバー パッケージの合計: 1
追加されたドライバー パッケージ: 0
-------------------------------------------------------
-
昨日試した本体は一度、手動で「High Definition Audio コントローラー」に設定しました(添付いただいた画像と同じ状態です)
その後、テストのために、「インテル(R) スマート・サウンド・テクノロジー・オーディオ・コントローラー」(当初のエラーの状態)に変更し音が出ない状態にしました。
画像が貼れませんでしたが、
https://support.lenovo.com/jp/ja/solutions/HT510392
の画像と同じ状況です(日本語ですが)それから、先週教えていただいたコマンドを打つと、昨日お伝えしたメッセージが出ます。しかし、デバイスマネージャには何の変化もありませんでした。再起動しても変化なしです。
これは、一度「hdaudbus.inf」を追加した後に、手動で変更してしまったためではないかと思っております。
今晩、まだ手動で変更していない本体でテストする算段が付きましたので、完了したら結果をお伝えいたします。
-
lenovo のサイトで説明されている操作を自動化したいなら、DevCon ツールの Update オプションでやればいいのでは?
-----------------------------------------------
Device Console (DevCon.exe) Examples
https://docs.microsoft.com/ja-jp/windows-hardware/drivers/devtest/devcon-examples#ddk_example_32_update_the_driver_for_communication_ports_toolsExample 32: Update the driver for communication ports
devcon update c:\windows\inf\test.inf *PNP0501
-----------------------------------------------上記例では、Hardware ID "*PNP0501" で示される通信ポート (COM ポート) デバイスのドライバを、"c:\windows\inf\test.inf" の示すドライバで更新している例ですが、"*PNP0501" 部分を "Intel(R) Smart Sound Technology (Intel(R) SST) Audio Controller" の Hardware ID、"c:\windows\inf\test.inf" 部分を "hdaudbus.inf" (完全パス) にそれぞれ置き換えて実行すれば、lenovo のサイトで説明されている操作と同等の結果が得られると思います。
なお、"*PNP0501" 部分に対応する "Intel(R) Smart Sound Technology (Intel(R) SST) Audio Controller" の Hardware ID は、このプロパティ [詳細] タブの "一致するデバイス ID" で確認することができます。ちなみに。。。。
lenovo サイトでの説明は、「"Intel(R) Smart Sound Technology (Intel(R) SST) Audio Controller" のドライバを "hdaudbus.inf" で更新しろ。」という内容だと思いますが、先に試された操作は「"hdaudbus.inf" が示すドライバ パッケージをドライバ ストアに追加しろ。」ということになると思うので、やっていることが全く異なっていると思います。- 編集済み お馬鹿 2020年5月20日 5:21 誤記訂正
-
お教えいただき、本当にありがとうございます。テスト機にDevconをインストールし、ドライバの場所とハードウェアIDを確認しました。
ドライバの場所:C:\Windows\System32\DriverStore\FileRepository\hdaudbus.inf_amd64_f12cafeced9b2919\hdaudbus.inf
ハードウェアID:PCI\VEN_8086&DEV_A348&CC_040380
コマンドプロンプトを管理者権限で開き、devcon.exeのあるフォルダで以下のコマンドを実行したところ、うまくいきました。devcon update C:\Windows\System32\DriverStore\FileRepository\hdaudbus.inf_amd64_f12cafeced9b2919\hdaudbus.inf "PCI\VEN_8086&DEV_A348&CC_040380"
なのですが、全体に展開するにあたって、もう一つ壁にぶつかっておりまして、
上記のコマンドのみを記載した.batファイルを作成し、devcom.exeと同じフォルダ(ローカル)において管理者として実行してもうまく動作しないのです。C:\Windows\INF にある setupapi.dev.logを見ると、以下のようになっております。
>>> [Device Install (UpdateDriverForPlugAndPlayDevices) - PCI\VEN_8086]
>>> Section start 2020/05/20 13:57:33.823
cmd: devcon update C:\Windows\System32\DriverStore\FileRepository\hdaudbus.inf_amd64_f12cafeced9b2919\hdaudbus.inf PCI\VEN_8086
!!! ndv: This operation cannot be performed under Wow64.
<<< Section end 2020/05/20 13:57:33.854
<<< [Exit status: FAILURE(0xe0000235)]x64 / x86 あたりの仕様が原因ではないかと思っているのですが、何か解決方法をご存知でしたら教えていただけないでしょうか?
※全体への展開ですが、Lanscope Catという資産管理ソフトで、全体にファイルの展開と実行が可能のため、devcom.exeとバッチファイルを展開し実行しようと考えています。
-
うまくいかないようです。。。エラーも同様です。
>>> [Device Install (UpdateDriverForPlugAndPlayDevices) - PCI\VEN_8086&DEV_A348&CC_040380]
>>> Section start 2020/05/20 14:19:54.681
cmd: devcon update "C:\Windows\INF\hdaudbus.inf" "PCI\VEN_8086&DEV_A348&CC_040380"
!!! ndv: This operation cannot be performed under Wow64.
<<< Section end 2020/05/20 14:19:54.722
<<< [Exit status: FAILURE(0xe0000235)] -
あーwwww
64 ビット環境で 32 ビット DevCon を使ってるからかも。
64 ビット環境では 64 ビット DevCon、32 ビット環境では 32 ビット DevCon を使用する必要があります。
さらに先にも説明したように、Driver Store に保持されているドライバ パッケージは x86/x64 でフォルダが異なるので、inf ファイルのパスは "C:\Windows\INF\hdaudbus.inf" にする必要があります。
(hdaudbus のドライバ パッケージは既に登録されているので、わざわざレポジトリのフォルダを指定する必要はないと思います。)
-
ご指摘ありがとうございます。対象となる本体のWindowsのバージョンが1903ですので、WDKは下記からダウンロードしたものです。
https://go.microsoft.com/fwlink/?linkid=2085767
コマンドは.batでもコマンドプロンプトでも下記の通りです。いずれも管理者権限を利用。
devcon update "C:\Windows\INF\hdaudbus.inf" "PCI\VEN_8086&DEV_A348&CC_040380"
1)Devcon.exeについては、下記フォルダに入っていたものを使用しました。
C:\Program Files (x86)\Windows Kits\10\Tools\x64\devcon.exe
こちらの場合、.batファイルから起動するとsetupapi.dev.logにエラーが出ます。
しかし、管理者権限で立ち上げたコマンドプロンプトにコマンドを打つと成功します。
2)また、念のため、下記フォルダのものでも試してみました。
C:\Program Files (x86)\Windows Kits\10\Tools\x86\devcon.exe
こちらの場合、.batファイルから起動すると、setupapi.dev.logに同様のエラーが記録されます。
一方、コマンドプロンプトから打つと
devcon failed
とエラーがでます。
1)のdevcon.exeに向けて手動でコマンドプロンプトから打つと成功するので、devcon自体は64bit用なのではないかと思っています。ただ、.batファイルの実行の際に何かうまくいっていないような感じがするのですが、何かお分かりになりますでしょうか?
-
追加です。なんとなく原因らしきものが見えてきた気がします。。。
コマンドプロンプトですが、
1) C:\Windows\System32\cmd.exe を立ち上げてコマンドを打つと失敗しますが、(setupapi.dev.logにエラー)
2) C:\Windows\SysWOW64\cmd.exe を立ち上げてコマンドを打つと成功します。
なので、バッチファイルを実行したときに、1)のcmd.exeが立ち上がり、devcon.exeを呼び出してしまっているため失敗しているようです。
実際、バッチファイルの2行目にPauseを入れてみたところ、1)のcmd.exeが立ち上がっていることが確認できました。
そこで、実行したときに、2)のcmd.exeを立ち上げて実行するようなバッチファイルを作れればいいのではないか、と思うのですが、方法が判りません。どなたか、手立てがありましたらお教えいただけないでしょうか?
-
> !!! ndv: This operation cannot be performed under Wow64.
64 ビット環境での 32 ビット プロセスは、WOW64 配下で実行されため、上記エラーは、64 ビット環境で 32 ビット バージョンの DevCon が実行されたためと考えられます。
対象 OS が 64 ビット プラットフォームの場合、64 ビット バージョンの DevCon を管理者権限で実行させる必要があります。
DevCon.exe のパスを指定せずに実行した場合、"path" 環境変数で登録されているフォルダ パスの中で、一番初めにヒットしたパスの DevCon が実行されます。
従って上記エラーは、"C:\Program Files (x86)\Windows Kits\10\Tools\x86\devcon.exe" が実行されてしまっているために発生していると考えられます。で、とりあえずは。。。。
"C:\Program Files (x86)\Windows Kits\10\Tools\x64" フォルダー内の "devcon.exe" を、テキトーなフォルダ (ex.] "c:\hoge" とか) にコピーしてください。
その上で、管理者権限でコマンド プロンプトを起動させ、カレント ディレクトリをそのフォルダに移動させ (ex.] cd c:\hoge)、そこから実行 (devcon update "C:\Windows\INF\hdaudbus.inf" "PCI\VEN_8086&DEV_A348&CC_040380") させてみてどーなるかを、確認してみてください。- 回答としてマーク negiposo 2020年5月20日 8:36
-
返信ありがとうございます。
"c:\hoge"にC:\Program Files (x86)\Windows Kits\10\Tools\x64\devcon.exeをコピーし、コマンドプロンプトで"c:\hoge"に異動して(CD からコマンドを打つ (devcon update "C:\Windows\INF\hdaudbus.inf" "PCI\VEN_8086&DEV_A348&CC_040380")と成功します。
しかし、コマンドの内容を.batファイルに書き、"c:\hoge"に置いて管理者として実行しても失敗します。。。
が、.batの中身を
CD C:\hoge
devcon update "C:\Windows\INF\hdaudbus.inf" "PCI\VEN_8086&DEV_A348&CC_040380"とすると、成功しました!
ありがとうございます。本当に助かりました。