成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

如何使用PowerShell管理微軟Hyper-V

系統 Windows
許多管理員喜歡使用PowerShell來自動執行用戶創建和文件夾權限管理這類組件功能,但是,虛擬化技術也可以通過命令行管理,包括微軟Hyper-V。雖然有多種方法可以用PowerShell來管理Hyper-V,但本文將重點介紹如何免費使用Windows管理規范(WMI)腳本(來自CodePlex的開源工具)的方法。

許多管理員喜歡使用PowerShell來自動執行用戶創建和文件夾權限管理這類組件功能,但是,虛擬化技術也可以通過命令行管理,包括微軟Hyper-V。

 

推薦專題:Windows中的腳本技術-Windows Powershell

雖然有多種方法可以用PowerShell來管理Hyper-V,但本文將重點介紹如何免費使用Windows管理規范(WMI)腳本(來自CodePlex的開源工具)的方法。

在使用WMI腳本來管理Hyper-V之前,了解哪些類可用很重要。微軟列出了大量的類。雖然相當完整,但他們不一定易于使用,并且總是不直觀。因此,使用WMI來管理Hyper-V不適合心理承受能力弱的人。

使用PowerShell管理Hyper-V的比較流行方法之一是使用針對Hyper-V(PSHyperV)的PowerShell管理庫。這是由James O’Neil所寫的免費且開源的CodePlex項目。這是迄今為止***的選擇。它提供一個完整cmdlet集給管理員使用,可以處理從虛擬機存儲管理到網絡管理的所有事情。讓我們來了解其中的一些:

Get-VM——返回一個Hyper-V服務器上所有的虛擬機(見圖1)。

PowerShell,Hyper-V
圖1: Get-VM命令

下面的代碼展示了Get-VM命令:

Function Get-VM
{# .ExternalHelp MAML-VM.XML
   param(
       [parameter(ValueFromPipeLine = $true)] 
[ValidateNotNullOrEmpty()][Alias("VMName")]
       $Name = "%",
       [parameter()][ValidateNotNullOrEmpty()]
       $Server = ".", #May need to look for VM(s) on Multiple servers
       [Switch]$Suspended, 
       [switch]$Running, 
       [switch]$Stopped
   )
   Process {
       # In case people are used to the * as a wildcard... 
       if ($Name.count -gt 1 ) {[Void]$PSBoundParameters.Remove("Name")
; $Name | ForEach-object {Get-VM -Name $_ @PSBoundParameters}}
       if ($name -is [String]) {
          $Name = $Name.Replace("*","%")
          # Note in V1 the test was for caption like "Virtual%" which
did not work in languages other than English. 
          # Thanks to Ronald Beekelaar - we now test for a processID ,
the host has a null process ID, stopped VMs have an ID of 0. 
          $WQL = "SELECT * FROM MSVM_ComputerSystem WHERE ElementName
LIKE '$Name' AND ProcessID >= 0"
          if ($Running -or $Stopped -or $Suspended) {
            $state = ""
             if ($Running) {$State += " or enabledState = " +
[int][VMState]::Running }
             if ($Stopped) {$State += " or enabledState = " +
[int][VMState]::Stopped }
             if ($Suspended) {$State += " or enabledState = " +
[int][VMState]::Suspended }
             $state = $state.substring(4) 
             $WQL += " AND ($state)" 
          }
          Get-WmiObject -computername $Server -NameSpace $HyperVNamespace -Query $WQL | Add-Member -MemberType ALIASPROPERTY -Name "VMElementName" -Value "ElementName" -PassThru 
       }
       elseif ($name.__class) {
          Switch ($name.__class) {
             "Msvm_ComputerSystem"      {$Name}
             "Msvm_VirtualSystemSettingData"      {get-wmiobject -
computername $Name.__SERVER -namespace $HyperVNamespace -Query
"associators of {$($name.__path)} where
resultclass=Msvm_ComputerSystem"}
             Default       get-wmiobject -
computername $Name.__SERVER -namespace $HyperVNamespace -Query
"associators of {$($Name.__path)} where
resultclass=Msvm_VirtualSystemSettingData" |
                                            ForEach-Object
{$_.getRelated("Msvm_ComputerSystem")} | Select-object -unique }
          }
       }
    }
}

如您所見,這段代碼包含了WMI基本類和helper邏輯并報告了結果。

Get-VMSwitch——返回所有在Hyper-V服務器上的虛擬交換(見圖2)。

PowerShell,Hyper-V
圖2: Get-VMSwitch命令

下面的代碼展示了Get-VMSwitch的命令:

Function Get-VMSwitch
{# .ExternalHelp MAML-VMNetwork.XML
   param(
       [parameter(ValueFromPipeline = $true)][Alias("Name")]
       [String]$VirtualSwitchName="%",
       [parameter()][ValidateNotNullOrEmpty()]
       $Server = "." #Can query multiple servers for switches
       )
   process {
       $VirtualSwitchName=$VirtualSwitchName.replace("*","%")
       Get-WmiObject -computerName $server -NameSpace $HyperVNamespace
-query "Select * From MsVM_VirtualSwitch Where elementname like '$VirtualSwitchname' "
   }
}

Get-VMSnapShot——提供所有在Hyper-V服務器上的快照(見圖3)。

PowerShell,Hyper-V
圖3:Get-VMSnapShot命令

下面的語句展示了Get-VMSnapShot命令:

Function Get-VMSnapshot
{# .ExternalHelp MAML-VMSnapshot.XML
   Param(
       [parameter(Position=0 , ValueFromPipeline = $true)]
       $VM = "%",
       [String]$Name="%",
       [parameter()][ValidateNotNullOrEmpty()]
       $Server="." ,
       [Switch]$Current,
       [Switch]$Newest,
       [Switch]$Root
   ) 
   process{
          if ($VM -is [String]) {$VM=(Get-VM -Name $VM -Server $server) }
          if ($VM.count -gt 1 ) {[Void]$PSBoundParameters.Remove("VM") ; $VM |
ForEach-object { Get-VMSnapshot -VM $_ @PSBoundParameters}} 
          if ($vm.__CLASS -eq 'Msvm_ComputerSystem') {
             if ($current) {Get-wmiobject -computerNam $vm.__server -
Namespace $HyperVNamespace -q "associators of {$($vm.path)} where assocClass=MSvm_PreviousSettingData"}
             else {$Snaps=Get-WmiObject -computerName $vm.__server -NameSpace $HyperVNameSpace -Query "Select * From MsVM_VirtualSystemSettingData Where systemName='$($VM.name)' and 
instanceID <> 'Microsoft:$($VM.name)' and elementName like '$name' " 
                if ($newest) {$Snaps | sort-object -property 
creationTime | select-object -last 1 } 
                elseif ($root) {$snaps | where-object {$_.parent -eq
                $null} }
                else {$snaps}
          }
       }
    }
}

可以從CodePlex的網站上找到PSHyperV的多種附加功能來幫助管理員執行查找、操作和配置hypervisor的不同的組件等相關任務。

編寫WMI包裝器和使用PSHyperV,只是管理員用PowerShell來管理Hyper-V的一些方式。請注意,PSHyperV的***版本并不是完整的版本,因此,它不像其他軟件那么穩定。

 

【編輯推薦】

  1. PowerShell函數的基本指南與特性
  2. 利用PowerShell縮短SharePoint備份時間
  3. PowerShell與.NET框架之間的點連接
  4. WMI中的Windows PowerShell腳本使用方法
  5. 有關PowerShell腳本你必須知道的十個基本概念
責任編輯:張浩 來源: TechTarget中國
相關推薦

2014-04-24 11:02:12

Hyper-V虛擬化主機

2011-11-21 10:27:43

虛擬化PowerShellHyper-V

2009-06-30 18:05:12

Hyper-VVBScriptPowerShell

2011-01-25 10:17:24

微軟Hyper-V c

2011-04-01 11:15:19

微軟Hyper-V

2012-06-26 09:45:05

微軟

2009-09-09 08:57:39

Hyper-V

2011-01-25 10:06:42

2011-11-01 08:53:58

虛擬化Hyper-V微軟

2011-11-01 09:17:35

微軟虛擬化Hyper-V

2014-01-03 09:58:46

PowerShellHyper-V

2009-07-08 13:04:36

Hyper-V主機服務器配置

2009-03-16 19:17:40

微軟Hyper-VVmware

2011-08-02 10:13:41

Hyper-V紅帽Linux

2012-06-29 16:52:21

微軟OpenStackHyper-V

2014-04-24 10:53:01

Hyper-VHyper-V Ser

2009-05-20 19:04:07

微軟Hyper-V虛擬化

2010-06-01 11:08:39

Hyper-VVMware

2009-08-13 09:58:12

微軟Hyper-V

2013-11-20 14:46:43

PowerShellPowerShell Windows Ser
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 久久精品国产免费高清 | 免费看91| 国产永久免费 | 天天干夜夜操视频 | 日韩欧美在线免费观看视频 | 99精品国自产在线 | 久久久久亚洲精品 | 精品国产乱码久久久久久蜜退臀 | 久久激情视频 | 精品国产一区二区国模嫣然 | 91人人视频在线观看 | 国产成人自拍av | 国产视频福利 | 欧美日韩精品一区二区三区视频 | 国产成人福利 | 久久狼人天堂 | 亚洲精视频 | 91精品国产综合久久精品 | 欧美日韩久久精品 | 成人a在线观看 | 黄色在线免费网站 | 久久久久国产精品 | 成人免费视频网站在线看 | 欧美久久一区二区 | 久久精品中文字幕 | 久久精品国产一区 | 久久久新视频 | 国产精品三级 | 亚洲综合色视频在线观看 | 欧美中文字幕一区二区三区亚洲 | 天天拍天天操 | 久久久久久综合 | 色综合99| 免费一区二区 | 91精品国产自产精品男人的天堂 | 韩三级在线观看 | 成人免费福利视频 | 国产免费让你躁在线视频 | a欧美| 欧美一级免费看 | 2021狠狠干 |