Windows Server 2012 R2 读取Hyper-V VM配置文件

$XMLFiles=@()
$XMLs=@()
$XMLCSV = $PSScriptRoot + "$(Get-Date -f 'yyyyMMdd').csv"
$i=0
$j=0
OutputToLog "#INFO#:开始读取虚拟机配置文件" green
if(!(Test-Path $XMLCSV))
{
    foreach($NewCSVPath in $NewCSVPaths){
    $XMLFiles+=Get-ChildItem -Path $NewCSVPath -Recurse|? Extension -eq .xml
    }
    foreach($XMLFile in $XMLFiles){
        $i++
        $item=""|select VMName,XMLPath
        [xml]$XMLDocuments = Get-Content $($XMLFile.FullName)
        $item.VMName=$VMNameinXML=$XMLDocuments.ChildNodes.properties.name.('#text')
        $item.XMLPath=$($XMLFile.FullName)
        OutputToLog "#INFO#:$i,正在读取虚拟机$($VMNameinXML)的配置文件" green
        $XMLs+=$item
        }
        $XMLs | Export-Csv -Path $XMLCSV -Append -NoTypeInformation -Encoding UTF8
}
else
{
    $XMLs = Import-Csv -Path $XMLCSV
}
foreach($customVM in $customVMs){
    $j++
    $ImportedVM=""|select VMName,ImportStatus,FullPath,Comments
    echo $ImportedVM.FullPath
    $ImportedVM.VMName=$VMName=$customVM
    foreach($XML in $XMLs){
        #比较虚拟机名称
        $ImportedVM.FullPath=$XML.XMLPath
        if($($XML.VMName) -eq $customVM){
           try{
                Import-VM -Path $($XML.XMLPath) -ea stop
                $ImportedVM.ImportStatus="sucess"
                $ImportedVM.Comments=""
                $VMImported++
                OutputToLog "#INFO#:虚拟机$($VMName)导入成功" green
                break
                }
            catch{
                $ImportedVM.ImportStatus="failed"
                $ImportedVM.Comments=$($_.exception.tostring())
                }
            }
            else{
                $ImportedVM.ImportStatus="N/A"
                $ImportedVM.Comments="NotFound"
                }
        }
    $ImportedVM|Out-File $LogPath -Encoding utf8 -Append -Force
    #输出导入结果
    $ImportedVM|Export-Csv -Path $ImportedVMLog -NoTypeInformation -Encoding UTF8 -Append
    }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值