При копировании .exe на 64-битный компьютер с Windows с использованием флага -c с PsExec возникает ошибка при его выполнении, PsExec просто останавливается там.
Кто-нибудь еще испытывает это?
Является эта тема на social.msdn актуально?
У плаката были проблемы с PsExec на некоторых 64-битных машинах, но получалось сообщение «... устройство не работает ...». Однако в своем ответе он заявляет:
После еще нескольких тестов я заметил, что проблема возникла только на WES 7 64 Bit.
Подойдет любая розничная 32- или 64-разрядная версия и 32-разрядная версия WES 7.
Тут я вспомнил следующее обновление:
KB982199 - это обновление для 64-битных систем, которое устраняет следующую проблему: CreateProcess не работает для 32-битных приложений в 64-битных средах выполнения Windows Embedded Standard 7, когда перенаправление отключено
После установки этого обновления проблема была решена.
const string subkey = "Программное обеспечение \ 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);
}
}