1

ソフトウェア パッケージを更新するためのバッチ スクリプトを作成しています (古いバージョンのアンインストール/新しいバージョンのインストール)。更新する PC が 500 台あるため、これはネットワーク経由で行う必要があります。アンインストール前の最初のステップの 1 つは、ソフトウェアがインストールされているかどうかを確認することです。レジストリにクエリを実行したことを確認するには:

reg query "HKLM\SOFTWARE\A.E.T Europe B.V."

このクエリは、ローカルで実行すると (テスト目的で) 適切な結果を返しますが、リモートで実行すると (実行される方法で) 間違った結果を返します。

reg query "\\I301\HKLM\SOFTWARE\A.E.T Europe B.V."

その行をローカルで実行すると、0 が返されます。しかし、I301 にログインしてローカルでクエリを実行すると 1 が返されます。これは、Windows レジストリの Wow6432Node ブランチに AET Europe BV が表示されるという事実です。

何故ですか???

前もって感謝します!

4

3 に答える 3

1

モフィによる良い答え。64ビットシステムでは、使用することも検討できます

/reg:32 & /reg:64 REG QUERY /? を参照してください。

別のアプリから CMD.exe を起動すると、問題が発生することがあります。そのアプリが 32 ビット アプリの場合、CMD.exe の 32 ビット バージョンが起動します。

于 2015-12-16T18:26:03.020 に答える
0

Mofi と RGuggisberg に感謝します。

その日の後半にモフィが言った(そしてRGuggisbergが補足した)すべてについて知りました。私はそれを機能させることができなかったので、レジストリの Uninstall エントリをチェックしようとしました。同様の結果が得られた後、もう少しグーグルで検索したところ、レジストリに 2 つのツリーがあることがわかりました。1 つは 32 ビット アプリケーション用で、もう 1 つは 64 ビット アプリケーション用です。ヒントは次のように与えられました。

最後に、RGuggisber が言及している /reg:32 と /reg:64 という 2 つのオプションが表示されます。それらを調べて、両方のレジストリの存在を発見しました。

/reg:64 を使用して同じクエリ (アンインストール済みの場合) を試してみたところ、探していたキーが見つかりました。/reg:32 で試してみましたが、実際には見つかりませんでした。スクリプトを実行していたマシンは、Windows 7 32 ビットを実行しています。リモート マシン Windows 8.1 64 ビット。

于 2015-12-17T06:44:35.697 に答える