web-dev-qa-db-ja.com

PsExecが64ビットコンピューターで動作しない

PsExecで-cフラグを使用して.exeを64ビットWindowsコンピューターにコピーすると、実行中にエラーが発生し、PsExecはそこで停止します。

他にこれを経験している人はいますか?

1
Luca Matteis

このスレッド social.msdnに関連していますか?

ポスターは、一部の64ビットマシンでPsExecに問題が発生していましたが、「...デバイスが機能していません...」というメッセージが表示されていました。しかし、彼自身の返答の中で彼は次のように述べています。

さらにテストを行った後、問題がWES 764ビットでのみ発生していることに気付きました。
小売バージョンの32ビットまたは64ビットとWES732ビットは問題なく動作します。
それから私は次の更新を思い出しました:
KB982199は、次の問題を修正する64ビットシステムのアップデートです。WindowsEmbeddedStandard764上の32ビットアプリケーションでCreateProcessが失敗する-リダイレクトが無効になっている場合のビットランタイム
このアップデートをインストールした後、問題は解決しました。

1
ChrisF

const string subkey = "Software\Sysinternals\PsExec";

        if (Environment.Is64BitOperatingSystem)
        {
            // For 64 Bit PC
            RegistryKey registryKey64 = RegistryKey.OpenBaseKey(RegistryHive.CurrentUser, RegistryView.Registry64);
            RegistryKey NDPKey64 = registryKey64.OpenSubKey(subkey);
            if (NDPKey64 != null)
            {
                Registry.CurrentUser.OpenSubKey(subkey, true).SetValue("EulaAccepted", 1, RegistryValueKind.DWord);
            }
            else
            {
                RegistryKey regKey64 = registryKey64.OpenSubKey("Software", true);
                regKey64.CreateSubKey("Sysinternals\\PsExec", RegistryKeyPermissionCheck.ReadWriteSubTree);
                Registry.CurrentUser.OpenSubKey(subkey, true).SetValue("EulaAccepted", 1, RegistryValueKind.DWord);
            }
        }
        else
        {
            //For 32 bit PC
            RegistryKey registryKey32 = Registry.CurrentUser.OpenSubKey(subkey);
            if (registryKey32 != null)
            {
                Registry.CurrentUser.OpenSubKey(subkey, true).SetValue("EulaAccepted", 1, RegistryValueKind.DWord);
            }
            else
            {
                RegistryKey regKey32 = Registry.CurrentUser.OpenSubKey("Software", true);
                regKey32.CreateSubKey("Sysinternals\\PsExec", RegistryKeyPermissionCheck.ReadWriteSubTree);
                Registry.CurrentUser.OpenSubKey(subkey, true).SetValue("EulaAccepted", 1, RegistryValueKind.DWord);
            }
        }
0
Shyam