1. 程式人生 > >Hyper-V配置(三)

Hyper-V配置(三)

貼一份建立Hyper-V虛擬機器的程式碼:

function CreateVM
{
	param
	  (
		[string]$vmName = $(throw "param -vmName is required."),
                [long]$vmRAMSize = $(throw "param -vmRAMSize is required."),
                [long]$vmDiskSize = $(throw "param -vmDiskSize is required."),
		[string]$storePath = $(throw "param -storePath is required."),
		[string]$isoPath = $(throw "param -isoPath is required."),
		[string]$internalLan = $(throw "param -internalLan is required."),
		[string]$externalLan = $(throw "param -externalLan is required."),
	        [int]$cpuCount = $(throw "param -cpuCount is required."),
		[string]$eth2ip = $(throw "param -eth2ip is required."),
		[string]$eth2Netmask = $(throw "param -eth2Netmask is required."),
		[string]$eth2GW = $(throw "param -eth2GW is required.")
	  )
	  $eth0="Eth0"
	 
	  ##delete existing VM and VM file which has same VMname    
	  foreach($existingVMItem in Get-VM)
	  {
	      if($existingVMItem.Name -eq $vmName)
	      {
	          Remove-VM -Name $vmName -Force
	      }
	  }
	  $existingVMLoc=Test-Path $storePath
	  if(-not $existingVMLoc)
	  {
	      MD $storePath
	  }else
	  {
	      rmdir $storePath -Recurse -Force
	  }      
	  new-vm $vmName -path $storePath
	
	  ##delete existing VM switch by same switch name and 
	  foreach($existingVMSwitch in Get-VMSwitch)
	  {
	      if(($existingVMSwitch.NetAdapterInterfaceDescription) -or ($existingVMSwitch.Name -eq $eth0) -or ($existingVMSwitch.Name -eq $eth1) -or ($existingVMSwitch.Name -eq $eth2))
	      {
	          Remove-VMSwitch -Name $existingVMSwitch.Name -Force
	      }
	  }
	
	  ##add new VM switch
	  New-VMSwitch $eth0 -NetAdapterName $internalLan
	  
	  ##Define disk size
	  $vmDiskSize = $vmDiskSize*1024*1024*1024
	  New-VHD -Path $storePath\$vmName.vhdx -size $vmDiskSize
	  Add-VMHardDiskDrive -VMName $vmName -ControllerType ide -ControllerNumber 0 -path $storePath\$vmName.vhdx
	
	  ##define ram size
	  $vmRAMSize = $vmRAMSize*1024*1024
	  get-vm $vmName | Set-VMMemory -DynamicMemoryEnabled $True -MinimumBytes $vmRAMSize  -StartupBytes $vmRAMSize  -MaximumBytes 4GB -Priority 80 -Buffer 25 
	
	  ##add DVD driver (iso) 
	  Add-VMDvdDrive -VMName $vmName -Path $isoPath
	  
	  ##set CPU processor
	  Set-VMProcessor $vmName -Count $cpuCount -Reserve 10 -Maximum 90
	
	  ##remove default VMNetworkAdapter which named Network Adapter
	  foreach($existingVMNetworkAdapter in Get-VMNetworkAdapter -VMName $vmName)
	  {
	      Remove-VMNetworkAdapter -VMName $vmName -Name $existingVMNetworkAdapter.Name
	  }
	
	  ##add new VMNetworkAdapter
	  Add-VMNetworkAdapter -VMName $vmName -Name $eth0
	  Get-VMNetworkAdapter -VMName $vmName -Name $eth0   | Connect-VMNetworkAdapter -SwitchName $eth0
}

下一篇再說C#下的呼叫

相關推薦

Hyper-V配置

貼一份建立Hyper-V虛擬機器的程式碼: function CreateVM { param ( [string]$vmName = $(throw "param -vmName is required."), [long]$

Hyper-V配置

上一篇貼了建立的指令碼,這篇說一下怎麼在C#下呼叫: 此部分程式碼包含兩種方法: Invoke 和 BeginInvoke ,兩者的區別就是後者導致工作執行緒等待,前者不會。因為關機要等到他關機結束以後虛擬機器的狀態顯示才是off,所以要用BeginInvoke等待他關機結束;而開機的話不需

Android studio第一次使用配置gradle項目構建

令行 技術分享 簽名 aries rar 工具 img 引入 文章 1、gradle的概念 2、gradle配置jar包。和libs目錄導入jar包的差別 3、簽名打包: (1)Studio (2)命令行 (3)gradle wrap

關於wamp的HTML, PHP, mysql 三者的操作與聯系 - mysql簡單配置

長度 -1 logs 建議 用戶 不用 自帶 .com upd   上一章講完HTML與PHP之間的傳值方法,這一章將wamp中mysql的使用,為下一章PHP調用數據準備。 再次說明作者的wamp版本是3.0.6 64bit   打開wamp自帶的mysql試圖數據庫

第一次使用Android Studio時你應該知道的一切配置:gradle項目構建

gen 官方 配置文件 conf 什麽 學習 package ack 處的 ?【聲明】 歡迎轉載,但請保留文章原始出處→_→ 生命壹號:http://www.cnblogs.com/smyhvae/ 文章來源:http://www.cnblogs.com/smyhvae

Git配置使用gitolite控制權限

gitolite1、切換git用戶 su - git 2、獲取gitolite,不能到github下載tar或zip包解壓,缺少.git目錄,安裝時獲取不到版本 git clone https://github.com/sitaramc/gitolite 可能會現如下錯誤Unable to find remo

Ansible基礎安裝與配置

回滾 user lin 系統服務管理 oot 備份 cut htm 遠程主機 常用模塊使用(1)、setup## 用來查看遠程主機的一些基本信息# ansible storm_cluster -m setup (2)、ping## 用來測試遠程主機的運行狀態# ansibl

華為路由器OSPF虛鏈路配置

我們知道在OSPF配置當中,非骨幹區域必須和骨幹區域直接相連,若不與骨幹區域直接相連,則需要配置虛鏈路,本篇文章主要介紹OSPF虛鏈路配置命令。 實驗配置如下圖: 實驗說明如下: 1.路由器R1、R2在0區域,路由器R2、R3、R4在234區域,路由器R4、R5在45區域。2.45區域沒有與

GoldenGate配置之DDL複製配置

環境: Item Source System Target System Platform Red H

WebLogic叢集配置

WebLogic叢集配置 weblogic建立代理伺服器 代理伺服器僅僅用來轉發請求,但是其本身也受主伺服器的控制和管理,啟動需要主伺服器來啟動 建立Proxy伺服器(代理伺服器本身不需要部署專案,它僅僅用來轉發使用者請求) 所以直接建立並啟動

配置中心 Apollo 原始碼解析 —— 客戶端 API 配置之 ConfigFile

������關注微信公眾號:【芋道原始碼】有福利: 1. RocketMQ / MyCAT / Sharding-JDBC 所有原始碼分析文章列表 2. RocketMQ / MyCAT / Sharding-JDBC 中文註釋

Zookeeper叢集部署與配置

在上一篇部落格中我們講解了《Zookeeper的單機配置》,此篇部落格將繼續介紹Zookeeper的叢集部署與配置。 環境 叢集配置的環境與單機配置的環境相同,唯一不同的就是叢集是在多臺伺服器之間配置,當然也有偽叢集的配置,也就是在同一臺機器上配置多臺服

SpringCloud微服務之動態自動更新配置

先看一張動態自動更新原理圖: SpringCloud Bus 負責管理訊息佇列,實現配置傳輸給各個服務 WebHook 實現更新配置時自動傳送 /bus-refresh 請求

C# BS訊息推送 負載均衡-SignalR&Redis的配置

原文: C# BS訊息推送 負載均衡-SignalR&Redis的配置(三) 1. 前言 本文是根據網上前人的總結得出的。 環境: SignalR2.x,VS2015,Win10   2. 負載均衡配置 配置很簡單,只要在startup類中新增Redis的連線就OK。 1)首先

Myeclipse6.5 + Maven 開發web工程詳細配置

      前面咱們說了 maven環境變數的配置以及myeclipse中maven外掛的安裝,那麼下面就說一下myeclipse + maven 搭 建web project工程!那就一步一步來看吧:      1、使用Maven建立webapp工程----原因是使用Maven時一般需要遵循一定的目錄結構,

PostgreSQL 主從非同步、同步流複製配置

同步、非同步多從庫複製 在master上連線pocdb 資料庫 ,基於配置二的節點狀態 pocdb=# SELECT client_addr,application_name,sync_state FROM pg_stat_replication; c

工程配置 vs2015+Caffe配置自己的工程

Win10+vs2015+Caffe 動(靜)態庫配置自己的工程轉載請註明原出處:http://blog.csdn.net/ouyangfushu/article/details/79546566作者:SyGoingQQ:  2446799425一、  工程目錄預覽動態庫版本

linux服務安裝與配置配置安裝telnet服務

# netstat -tpa Active Internet connections (servers and established) Proto Recv-Q Send-Q Local Address Foreign Address State

windows 2008 NLB 配置

4)點選“下一步”,彈出“新群集:群集IP地址”視窗,為叢集新增IP地址192.168.1.157 5) 新增完之後,點選下一步,,定義Internet名稱為“NBL-Test”,選擇“群集操作模式” 6)“下一步”,彈出“埠規則”視窗,取消“全部”,指定埠範

MULE ESB 配置

目錄[-] mule號稱開源ESB的最好實現,研究mule也有段時間了, 在“浩如煙海”的xml配置中,保持清醒的頭腦確實不容易。  作為學習筆記之一,記錄一下一個mule簡單應用的實現。 需求:給指定的email地址傳送郵件.  一: