自动化虚拟机

时间:2011-07-07 06:30:20

标签: virtual-machine vmware powershell c# asp.net

我正在开发一个与Mircosoft虚拟实验室类似的项目。我创建了一个.aspx(C#)网页,该网页能够运行powershell脚本来启动vmware-vmrc控制台。该网页已在我自己的计算机上部署和运行。我也尝试在服务器上发布我的解决方案,网页运行良好,但控制台不会出现在我的屏幕上。我想是因为脚本在服务器而不是localhost上运行。我想知道如果我的解决方案/程序是在服务器中构建的,有没有办法启动控制台。

$hostname = "localhost:8333"
$vms = "VmName"
$vm = get-vm $vms
$vmid = $vm.id
$gvm = Get-View $vmid
$vmrc = "C:\Program Files (x86)\Common Files\VMware\VMware Remote Console Plug-in\vmware-vmrc.exe"
$vmrcargs = '-h ' + $hostname + ' -m "' + $gvm.Config.Files.VmPathName + '"'
[Diagnostics.Process]::Start($vmrc, $vmrcargs)

2 个答案:

答案 0 :(得分:0)

在您的代码中,您将主机名硬编码为localhost,理论上您可以从ASP.NET上下文的Request对象中读取此值,并将其替换为客户端的主机名。

这么说,我真的怀疑它会起作用,因为它没有被授予服务器远程访问客户端...甚至传递正确的IP地址,即使我看到有一个指定的端口(8333),也可以是...之间的防火墙......

当然在内联网上它可以工作,你必须尝试这一点。

答案 1 :(得分:0)

通过端口8333对客户端名称执行telnet以检查端口是否已打开。

如果telnet有效,则将“localhost(或dns或主机名)替换为客户端的IP”

如果telnet不起作用,则打开端口。

但是,如果端口已打开,它将起作用。

亲切的问候,

花哨