質問者
64bitのインストールソフトの一覧が取得できない

質問
-
お世話になります。
リモートからシステム権限でバッチファイルを実行させて、
端末のsysteminfo等の情報を取得しています。
その際に、インストールソフトのバージョンを取得するため、
reg query "HKLM\Software\Microsoft\Windows\CurrentVersion\Uninstall" /s /v Display*
reg query "HKLM\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall" /s /v Display*
を実行しているのですが、上の64bitの結果も、下の32bitの結果も、32bitの結果
(実際にレジストリで確認すると、"HKLM\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall"にあるもの)
が返ってきて、同じログが二つ続きます。
結果がおかしかったため、powershellで試したのですが、
Get-ChildItem -Path(
'HKLM:SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall',
'HKLM:SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall') |
% { Get-ItemProperty $_.PsPath | Select-Object DisplayName, DisplayVersion, Publisher }の結果も、32bitのものしか取得できませんでした。
各端末側でコマンドプロンプトで実行すると、64bitも取得できます。
リモートでは取得できないのでしょうか?
すべての返信
-
結果からすると、32bit としてプロセスが実行されているように見えます。
たとえば、reg ではなく、C:\Windows\SysNative\reg.exe を使うと 64bit の情報を取得できる…ということはないですかね?
あるいは、reg query のオプションにある /reg:64 を指定するとか。
/reg:64 64 ビット レジストリ ビューを使用して
キーにアクセスする必要があることを指定します。- 編集済み AzuleanMVP 2017年10月13日 15:04
- 回答の候補に設定 栗下 望Microsoft employee, Moderator 2017年10月16日 2:31
-
チャブーンです。
reg.exeですが、「レジストリビュー」という概念があり、32|64ビットのアクセス範囲は、これを指定して対応するようですね。直接64bitプログラムを指定するのではなく、レジストリビューの指定(/reg:64)で指定してみたらどうでしょうか?
詳しくは、reg query /?コマンドラインヘルプで確認できます。
フォーラムは有償サポートとは異なる「コミュニティ」です。フォーラムでご質問頂くにあたっての注意点 をご一読のうえ、お楽しみください。
- 回答の候補に設定 栗下 望Microsoft employee, Moderator 2017年10月16日 2:31
-
フォーラムオペレーターの栗下 望です。
k.awa さん、こんにちは。Azulean さんとチャブーンさんから回答をお寄せいただいておりますが、
確認はお済みでしょうか?既に問題が解決されておりましたら、
参考になった回答へ[回答としてマーク]をご設定くださいね。どうぞよろしくお願いいたします。
MSDN/TechNet Community Support 栗下 望