Windows Server 2012 R2 Datacenter(64位)是否支持32位?

我想使用AppVeyor为Windows构build一个应用程序。 编译器是用于Windows x86的GNAT GPL 2016 (Ada)。

我收到以下消息:

程序'gnat-gpl-2016-x86-windows-bin.exe'运行失败:指定的可执行文件不是该OS平台的有效应用程序。

问题:

  • Windows Server 2012 R2 Datacenter是否不支持32位应用程序?
  • Wow64失踪了吗?
  • DataExecutionPrevention_32BitApplications : True是什么意思?

Get-CimInstance Win32_OperatingSystem | FL * Get-CimInstance Win32_OperatingSystem | FL *打印出(缩短):

 Status : OK Name : Microsoft Windows Server 2012 R2 Datacenter|C:\windows|\Device\Harddisk0\Partition5 Caption : Microsoft Windows Server 2012 R2 Datacenter InstallDate : 3/9/2016 2:16:51 AM CreationClassName : Win32_OperatingSystem CSCreationClassName : Win32_ComputerSystem CSName : APPVYR-WIN LastBootUpTime : 10/21/2016 1:10:27 AM LocalDateTime : 10/21/2016 1:11:59 AM OSType : 18 Version : 6.3.9600 BootDevice : \Device\HarddiskVolume3 BuildNumber : 9600 BuildType : Multiprocessor Free DataExecutionPrevention_32BitApplications : True DataExecutionPrevention_Available : True DataExecutionPrevention_Drivers : True DataExecutionPrevention_SupportPolicy : 3 Debug : False EncryptionLevel : 256 OSArchitecture : 64-bit OSLanguage : 1033 OSProductSuite : 400 RegisteredUser : Windows User SystemDevice : \Device\HarddiskVolume5 SystemDirectory : C:\windows\system32 SystemDrive : C: WindowsDirectory : C:\windows 

此问题已从StackOverflow移到ServerFault。
Windows Server 2012 R2 Datacenter(64位)是否支持32位?

编辑:

它看起来像DataExecutionPrevention_32BitApplications阻碍我运行安装程序。 如何从PowerShell以32位兼容模式运行安装程序? 我没有select这样的选项的GUI。

服务器2012 R2是不是在一个32位版本的操作系统(所有版本),但他们能够运行32位应用程序,所有其他的64位Windows操作系统和WOW64是存在的,所以我不认为这是问题。 这是除非你是在安腾处理器上运行的less数几个人之一?

DataExecutionPrevention_32BitApplications:True表示针对32位应用程序启用Data Execution Prevent。 DEP是OS内置的一个进程,用于检查内存以防止恶意代码的运行。 已知DEP会导致旧应用程序出现问题,所以您可以select将其禁用,但对于关键系统或特定应用程序。

Windows Server 2012 R2支持x86的模型应用程序,但另一方面,您的.exe所需的依赖性肯定没有安装。 (如vcruntime x86等)。

我在另一个线程上看到了对.exe从powershell调用的其他线程的评论,请使用x86的powershell控制台执行此类任务。

的%SystemRoot%\ SysWow64资料\ WindowsPowerShell \ V1.0 \ powershell.exe