当使用带有 PsExec 的 -c 标志将 .exe 复制到 64 位 Windows 计算机时,执行时出现错误,PsExec 就停在那里。
还有其他人遇到过这种情况吗?
答案1
是此主题与 social.msdn 相关吗?
发帖者在某些 64 位机器上使用 PsExec 时遇到问题,但收到“...设备无法正常工作...”消息。然而,他在自己的回复中表示:
经过更多测试后,我注意到该问题仅发生在 WES 7 64 位上。
任何零售版本 32 位或 64 位以及 WES 7 32 位都可以正常工作。
然后我想起了以下更新:
KB982199是针对 64 位系统的更新,它修复了以下问题:当禁用重定向时,Windows Embedded Standard 7 64 位运行时上的 32 位应用程序的 CreateProcess 会失败。
安装此更新后,问题得到解决。
答案2
const 字符串子键 = “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);
}
}