none
64bitのインストールソフトの一覧が取得できない RRS feed

  • 質問

  • お世話になります。

    リモートからシステム権限でバッチファイルを実行させて、

    端末の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も取得できます。

    リモートでは取得できないのでしょうか?

    2017年10月12日 4:46

すべての返信

  • 結果からすると、32bit としてプロセスが実行されているように見えます。
    たとえば、reg ではなく、C:\Windows\SysNative\reg.exe を使うと 64bit の情報を取得できる…ということはないですかね?

    あるいは、reg query のオプションにある /reg:64 を指定するとか。

      /reg:64  64 ビット レジストリ ビューを使用して
               キーにアクセスする必要があることを指定します。

    2017年10月13日 15:03
  • チャブーンです。

    reg.exeですが、「レジストリビュー」という概念があり、32|64ビットのアクセス範囲は、これを指定して対応するようですね。直接64bitプログラムを指定するのではなく、レジストリビューの指定(/reg:64)で指定してみたらどうでしょうか?

    詳しくは、reg query /?コマンドラインヘルプで確認できます。


    フォーラムは有償サポートとは異なる「コミュニティ」です。フォーラムでご質問頂くにあたっての注意点 をご一読のうえ、お楽しみください。

    2017年10月14日 7:00
  • フォーラムオペレーターの栗下 望です。
    k.awa さん、こんにちは。

    Azulean さんとチャブーンさんから回答をお寄せいただいておりますが、
    確認はお済みでしょうか?

    既に問題が解決されておりましたら、
    参考になった回答へ[回答としてマーク]をご設定くださいね。

    どうぞよろしくお願いいたします。


    MSDN/TechNet Community Support 栗下 望

    2017年10月30日 7:51
    モデレータ