我需要检测我的应用程序是否在虚拟化OS实例中运行.
我发现了一篇文章,其中包含有关该主题的一些有用信息.同一篇文章出现在多个地方,我不确定原始来源.VMware实现了一个特定的无效x86指令来返回有关自身的信息,而VirtualPC使用幻数和带有IN指令的I/O端口.
这是可行的,但在两种情况下似乎都是无证件行为.我想VMWare或VirtualPC的未来版本可能会改变机制.有没有更好的办法?这两种产品都有支持的机制吗?
同样,有没有办法检测Xen或VirtualBox?
我并不担心平台故意试图隐藏自己的情况.例如,蜜罐使用虚拟化,但有时会掩盖恶意软件用来检测它的机制.我并不在乎我的应用程序会认为它在这些蜜罐中没有虚拟化,我只是在寻找"尽力而为"的解决方案.
该应用程序主要是Java,但我希望在这个特定的功能中使用本机代码和JNI.Windows XP/Vista支持是最重要的,尽管参考文章中描述的机制是x86的通用功能,并且不依赖于任何特定的OS工具.
应用程序是否有正式的方法来确定它是在VMWare还是Virtual PC(或微软现在调用它)中运行?我见过的代码通常是在特定版本的VMWare或Virtual PC中利用一些奇怪的行为副作用的黑客.
理想的Delphi代码,但如果你可以链接到官方解释,那么我相信我可以转换它.
我想在其他浏览器中测试我的网络应用程序.我已经安装了Virtual PC来做到这一点.ASP.NET开发服务器不允许远程连接,因此虚拟PC(网络上的另一台计算机)无法访问该网站.
我发现这篇帖子已经开始,但没有解决方案.
我知道使用localhost是行不通的.我听说过使用机器ip,但是如何获得正确的ip?看看我的lynksys路由器管理员?
如果我要获得我的IP,我确定asp.net开发服务器不允许远程连接.如何启用它?
我想在不同的Windows操作系统上测试我的软件.我计划使用虚拟机软件(VMWare或Microsoft Virtual PC)来实现.
我希望能够以32位和64位的方式测试Windows 7,Windows Vista,Windows XP和Windows 98,并且可能在不同的服务包级别.
我在哪里可以免费或通过购买获得图像或完整操作系统,以便在这些VM系统中运行?
更新,2015年6月:Microsoft将退出TechNet订阅服务并将其替换为TechNet评估中心.因此,罗曼达斯的答案已不再有效.我正在将接受的答案移交给Michael Burr,他的链接仍然提供了大量的操作系统映像,并且也是免费的.
我从未使用过虚拟化技术,并且正在努力加快速度.我的新桌面今天即将推出,我专门购买它以尝试在一台机器上运行我的所有需求(即vista桌面,xp桌面,vs 2005,vs20008,windows服务器,sharepoint,sql server 2000/2005/2008等).在过去,我总是在我的家庭办公室为这些应用程序购买和设置单独的物理机器.(这就是我的地下室有时与小型数据中心混淆的原因.)
我设置的这些虚拟服务器都不会负载很重,只是希望它们"在线"进行开发和测试.
所以我的问题是,哪种免费虚拟化是最容易(最快,最不痛苦)的设置?如果我的需求应该改变,是否有任何改变从一个工具到另一个工具的途径?(即确保我首先做出'正确'的决定有多重要?)
其次,因为我可能会运行64位Vista作为"基础"操作系统(除非有人说服我),你基本上没有在该操作系统上安装任何东西,而是安装在VM内部的所有内容吗?甚至是我的"主要"开发环境?(甚至我的电子邮件,办公室套件等?)从我在这里阅读的消息来看,似乎能够移动和备份整个"图像"是一个很大的优点,我不清楚这是否可能适用于直接在'主机'上运行.
该机器是一款双CPU四核处理器,配备16G内存和15K硬盘 - 所以它应该可以处理任何事情.
顺便说一句:除了Windows平台之外,我可能需要设置任何其他东西的可能性不到5%,所以虽然能够设置Unix/Linux盒子很好,但这不是必需的.
所以只是为了重新解决这个问题:哪个虚拟机将以最少的麻烦启动并运行,我应该不在"主机"操作系统上直接安装任何东西吗?关于让我的桌面虚拟机策略正确启动的任何其他建议 - 我真正想避免的任何错误会让我感到困惑吗?
2011年12月更新:在这个原始问题以及所有有用的回复之后,我最终选择了VMware工作站并且暂时没有后悔.它不是免费的,但对你得到的一切来说都很便宜.我怀疑其他产品也会起作用.
如果有人读这篇文章正在考虑虚拟化,那么坦率地说它很棒 - 你还在等什么?在我的第一个VMware设置中,我将主要开发人员保留在"主机"操作系统中,并且仅将VM用于我的测试服务器,但仅仅6个月前我购买了一台新机器,现在在主机操作系统(Windows 7)中什么也没有运行,并运行我在一个或多个VM中的所有工具/桌面.将VM用于我的主桌面会有轻微(非常轻微)的性能下降,但是能够始终提供完全可运行的备份,远远超过负面 - 我甚至可以使用我的主桌面如果/当我上路的话,我的笔记本电脑.
这基本上是这个问题的重复,但接受的答案是"不",我想保持这个问题,直到得到一个真正的答案,而不是接受"不"并放弃.
Stephen Rose通过Twitter DM告诉我使用PowerShell来启动和停止Virtual PC VM并执行诸如运行安装,自动更新和病毒扫描之类的操作,但他还没有回复我的任何链接到描述如何做的资源的请求所以.
我已经开始学习PowerShell了,但我无法弄清楚如何获取或使用虚拟PC中VM列表中的任何信息.
编辑: Windows Virtual PC(Windows 7 XP Mode)与Virtual PC 2007不同.我正在运行Windows 7作为我的主机操作系统,但我仍在使用Virtual PC 2007,因为我需要保持运行guest虚拟机的能力Vista或XP主机上没有新的Windows Virtual PC的机器.我简单地安装了Windows Virtual PC来检查它,它必须在我的虚拟映像上做一堆转换.@ x0n($vpc = new-object -com virtualpc.application)的建议在我的系统上产生以下错误:
New-Object : Cannot load COM type virtualpc.application.
At line:1 char:18
+ $vpc = new-object <<<< -com virtualpc.application
+ CategoryInfo : InvalidType: (:) [New-Object], PSArgumentException
+ FullyQualifiedErrorId : CannotLoadComObjectType,Microsoft.PowerShell.Commands.NewObjectCommand
Run Code Online (Sandbox Code Playgroud)
编辑2:我使用了这个答案的杰夫代码列出了我系统上的所有COM对象,但却找不到任何看起来像是Virtual PC的东西.所以现在我认为"这是不可能的"答案可能是正确的,但我仍然会打开这个问题以防万一有任何进一步的建议让PowerShell与Virtual PC 2007一起工作.同时,我正在考虑跳转到Windows 7中的新Windows Virtual PC,并且不要担心让我的所有虚拟机与早期版本的Windows兼容.
我在Windows 7机器上安装了Windows Virtual PC.我用它来测试我的网站以获得跨浏览器功能.
在我的Windows 7中,我正在开发asp.net 4和VS2010中的网站.在我的Virtual PC XP中,我想访问我在本地IIS或VS开发Web服务器上托管的网站.如何在Windows 7和我的Virtual PC之间进行通信?
与任何其他硬盘一样,虚拟硬盘(*.vhd)也会受到碎片的影响.
因此,为了保持良好的性能,我想我必须首先从虚拟机内部对虚拟硬盘进行碎片整理,并且还存储.vhd存储的(物理)硬盘.
首先,这些假设是否正确?第二,有没有办法同时对两个(虚拟和物理硬盘)进行碎片整理?
提前致谢!
在有了一个开发PC HD损坏之后,我正在考虑让我的开发环境完全基于Virtual PC的想法.
核心项目将是: - XP专业版32 - IIS - VS2003 - VS2008 - SQL Server 2005 - Office 2003
主要源将驻留在SVN中的服务器上,而VPC上只有一个clocal副本.这将适用于基于Windows的Web和桌面开发.
假设主机具有良好的性能并提供硬件虚拟化,是否存在任何已知的具有这种设置的问题,即主要优点和缺点.任何性能问题或其他问题都会使这个好或坏?
我想走这条路线,这样我就可以创建一个完整的备份VPC,可以放在新PC上,如果一个发生故障,并根据需要重新安装或复制到笔记本电脑上进行异地工作等.使用新的Virtual PC功能Win7这似乎也可能更好地向前发展.
在我们走这条路之前,想得到一些反馈意见......
我从microsoft的网站上下载了windows7 vhd.我从那个vhd创建了一个虚拟PC.它运行正常,但欢迎屏幕需要其中一个帐户(管理员和管理员)的密码.
我试过猜几个密码,但没有运气......
有谁知道正确的密码?
virtual-pc ×10
vmware ×3
asp.net ×2
virtualbox ×2
windows-7 ×2
delphi ×1
image ×1
powershell ×1
testing ×1
vhd ×1
vpc ×1
xen ×1